.bash_profileとか.bash_loginとか.profileとか.bashrcとか.bash_logoutとか多すぎる

bashの設定ファイルが多すぎて、混乱しました。
でも、ちょっと調べたら分かった(つもり)。
試しにアウトプットしてみます。

bashの設定ファイル

こんなにあるみたいなんです。

/etc/profile
~/.bash_profile
~/.bash_login
~/.profile
~/.bashrc
~/.bash_logout
/etc/profile

ログインしたときに読み込まれます。
デフォルトの設定ファイルですね。

~/.bash_profile

ログインして/etc/profileの次に読み込まれる設定ファイル。
結構、大事なファイルみたいです。

~/.bash_login

ログインして~/.bash_profileが存在しない場合に読み込まれる。
Cシェルの.loginに由来します。

~/.profile

ログインして~/.bash_loginが存在しない場合に読み込まれる。

~/.bashrc

コマンドラインで"bash"と入力して、新しいシェルを起動したときに読み込まれる。

~/.bash_logout

ログインしたシェルを終了するときに読み込まれる。
コマンドラインで"bash"と入力して起動したサブシェルを"exit"などで終了するときには読み込まれない。

で、結局

ログイン時に設定したいものは~/.bash_profileに、bashを起動するたびに設定したいものは~/.bashrcに、ログインシェルを終了するときに設定したいものは~/.bash_logoutに書けば良いよね。

"bashを起動するたびに設定したいもの"が思い浮かばない。~/.bashrcどう使おう。
~/.bashrcに以下のようにパス追加の指定をしたら、

export PATH=/opt/local/bin:/opt/local/sbin/:$PATH

サブシェルを起動するたびにパスが増えていって、楽しいけど。
意味はない。

$ bash
$ echo $PATH | tr ":" "\n"
/opt/local/bin
/opt/local/sbin/
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/usr/X11/bin
$ bash
$ echo $PATH | tr ":" "\n"
/opt/local/bin
/opt/local/sbin/
/opt/local/bin
/opt/local/sbin/
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
/usr/X11/bin

まとめ

追記

ログインシェルがbashのときは、~/.bashrcをそんなに使わないかもしれないけど、ログインシェルをtcshとかにしている場合は使うよ〜ってことで良いのかな。