Hatena::ブログ(Diary)

rderaログ Twitter



2008-08-06

.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とかにしている場合は使うよ〜ってことで良いのかな。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証