次のページ
前のページ
目次へ
ユーザープロセスは/etc/passwd で書かれているシェルの子プロセスです。
シェルの初期ファイルはパスを修正することがあります。
ログインではシェルの名前は-を前置きします。例えばbashは-bashのよう
にして呼ばれます。これはシェル(つまりloginシェル)にシグナルを送ります。
この場合、シェルはlogin初期化ファイルを実行します。そうでなければ
ある 初期化が実行されます。
加えてシェルはそれがインタラクティブかどうかチェックします - ファイルや
インタラクティブなttyからのコマンドです。これはシェルの初期化を修正して、
その結果インタラクティブではない(non-interactive)non-loginシェルが
初期化されます。bashはここではなんの初期化ファイルも実行しません。
通常のloginシェルとして、bashはシステム広範(system-wide)のファイル
/etc/profile を使い(sources)ます。このファイルはシステム環境と
パスをbashユーザー用にセットします。しかしシステムがnon-interactiveとして
実施された時はこれは実行されません。もっとも重要なケースは、隣りのマシンで
実行されるリモートコマンドがrshで行われた場合です。/etc/profile は
実行されずパスはrshデーモンから継承されています。
bashはコマンドライン引数-login と-i を受け取ります。この
引数はそれぞれloginシェルあるはインタラクティブ(interactive)シェルとして
シェルをセットするのに使われます。
ユーザーは~/.bash_profile, ~/.bash_login、~/.profile
ファイルを作ることで/etc/profile でセットされている値を上書きする
ことができます(つまりユーザーの設定)。
これらのファイルのひとつめ(~/.bash_profile )はcsh初期化の
ロジックと違うことに注意して下さい。~/.bash_login は
loginシェルに関しては特に何も実行せず、また.bash_profile があると
きは全く実行されません!
もしbashが"bash"という名前の代わりにshとう名前として使用されて
いると、オリジナルのBourne shell初期化をエミュレートします:その際のファイル
は/etc/profile 、~/.profile そしてloginシェル用の
ものです。
loginシェルとしてtcshは以下のファイルをこの順に実行します:
/etc/csh.cshrc
/etc/csh.login
~/.tcshrc
~/.cshrc (もし.tcshrc が見つからない時)
~/.history
~/.login
~/.cshdirs
tcshはcshrcスクリプトの前にloginスクリプトを実行するように組み込めること
にも注意して下さい!
インタラクティブでないシェルは*cshrc スクリプトを実行します。*login
スクリプトはloginで一回だけパスをセットするのに使われます。
次のページ
前のページ
目次へ
|