Linuxユーザ関連スクリプトの読み込み順



メモ:profileだとか、cshrcとかの読み込み順です。


manpageベースの情報なので、実動作確認はしてないです。環境はLinux RHEL5
csh関連はコンパイルしだいでログイン時の読み込み順の1と3が入れ替わるとのこと。
一部括弧書きしてあるのはその一つ上のファイル内でインクルードしている項目です。
なので実際に()部分が動作するかは、その一行上のファイル内容を確認。


それぞれのファイルは存在しなくてもエラーを出すことなくスキップされて処理が進む。
ファイルが無かったら読まれないだけ。()の定義ファイル以外はシェルごとの固定っぽいので
一時的にMoveでもしてやれば、簡易的にスキップは出来る模様。
また.cshrcは.tcshrcが存在する場合、読み込みスキップされるようなので注意。


チルダ(~)が先頭にあるファイルは、各ユーザのホームディレクトリ配下のファイルです。


bashログイン時
1 /etc/profile
2 ( /etc/profile.d/*.sh)
3 ~/.bash_profile
4 ~/.bash_login
5 ~./profile


bashログインシェルではない対話シェル時
1 ~/.bashrc
2 (/etc/bashrc)


bashログアウト時
1 ~/.bash_logout


cshログイン時
1 /etc/csh.cshrc
2 (/etc/profile.d/*.csh)
3 /etc/csh.login
4 (/etc/profile.d/*.csh ($prompt未定義の場合に動作))
5 ~/.tcshrc (見つからない場合 ~/.cshrc)
6 ~/.histroy
7 ~/.login


cshログインシェルではない対話シェル時
1 /etc/csh.cshrc
2 ~/.tcshrc (見つからない場合は ~/.cshrc)


cshログアウト時
1 /etc/csh.logout
2 ~/.logout


構成管理が面倒になったら、~/.bash_profileで適当なディレクトリインクルードしといて
そこに全部放り込んでおけば楽チンだとか思ってないですよ?


○その他気になったこと
・hostnameコマンドの結果をそれぞれのシェルが環境変数で持つ。promptなんかに使われてる。
bashの場合は$HOSTNAME、cshの場合は$HOST。suなんかで環境変数維持したままにすると両方が定義されている。


HULFTは集信した受信サーバの環境変数$HOSTに配信した送信サーバのホスト名放り込んでるけど
cshで動かして大丈夫なのかこれは。とりあえずホスト名判定するようなスクリプト入れてないからいいけど・・・。