UNIX: The Complete Reference, Second Edition, 作成者: Kenneth H. Rosen et al.
ログイン後、シェル名をコマンドとして使用して別のシェルを起動できます。たとえば、Korn シェルを起動するには、コマンド プロンプトで ksh と入力します。このタイプのシェルはログインシェルではなく、使用するために再度ログインする必要はありませんが、それでも対話型シェルです。つまり、シェルを使用して対話するのではなく、コマンドを入力してシェルと対話します。 )。第20章の説明に従ってスクリプトを実行します。グラフィカルインターフェイスを使用する場合、ターミナルウィンドウで実行されるシェルインスタンスも対話型の非ログインシェルです。非ログインシェルを起動すると、.profile、.bash_profile、または.loginファイル(または.logoutファイル)は読み取られませんが、まだ2番目のシェル構成ファイル(.bashrcなど)は読み取られます。つまり、別のシェルインスタンスを起動して.bashrcへの変更をテストできますが、.profileまたは.loginへの変更をテストするには、ログアウトして再度ログインして結果を表示できます。
上記を見ていますが、インタラクティブシェルが何を意味するのか理解できません。ターミナルを使用すると.profileが読み込まれませんか?
さらに、Bourneはインタラクティブシェルではありませんが、bash / cshはシェルと言うことはどういう意味ですか?
答え1
対話型シェルは、単にコマンドを入力し、そのコマンドの出力を取得するために使用するシェルプロセスです。つまり、対話するシェルです。
したがって、質問に引用した抜粋に記載されているように、ログインシェルは手動で実行する他のシェルと同様に対話型です。逆に、シェルスクリプトを実行すると、非対話型シェルが起動し、スクリプトのコマンドを実行し、スクリプトが完了すると終了します。
bash
Bourneシェルはまたは同様にインタラクティブシェルとして使用できますtcsh
。実際、FreeBSD などの多くのシステムでは、シェルをデフォルトのsh
ユーザーシェルとして使用します。bash
、、、などのzsh
最新のシェルにはtcsh
Bourneシェルにはない多くの機能があり、インタラクティブに使用する方が快適で便利です(コマンド履歴、完成など)。
ログインではなく対話型シェル(つまり、他のシェルから手動で起動したり、ターミナルウィンドウを開いて起動したシェル)はファイルを.login
読み取っ.profile
たりしません。これには、ログインシェル(login
システムプロセスまたはXディスプレイマネージャによって起動されるシェル)からのみ読み取って実行できるため、ログインセッションの開始時に一度だけ適用されるコマンドと設定が含まれています。したがって、端末の起動時に作成されるシェルはログインファイル(.login
cスタイルシェル、このスタイルシェルの場合)を読みませんが、他のファイルは.profile
読み込みます。.cshrc
.bashrc