起動時のbashファイルの読み込み順
Ubuntu起動時に、~/.bashrcが読み込まれるため、カスタマイズしたい場合は、基本的に、~/.bashrcを触ればいいことになる。
環境変数を追加したい場合は、~/.bashrcに書いてもいのだが、~/.profileに書くのが慣例となっているので、~/.profileに書くことになる。個人の環境であれば、どこに書いてもいいだろうが。
~/.profileの中身を見ると分かるのだが、~/.bashrcは、~/.profileの中から読み込まれている。
そして~/.profileは、/etc/profileから読み込まれる。これのファイルが存在している場所は、ホームディレクトリではないので、ログインした全ユーザーに対して、共通で実行されることになる。一番最初に、読み込まれるファイルがこれになる。
/etc/profileから読み込まれるファイルは、~/.profileだけでなく、読み込まれる順番がある。その順番が、
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
上記3ファイルのうち、1つしか存在してはいけないことになる。Debian系には、~/.profileしか存在していないが、RedHat系には、~/.bash_profileが存在している。~/.bash_loginはどうでもいいだろう。
/etc/profileのどこから、~/.profileを読み込んでいるのか、確認が取れなかった。ファイルの中身を見ると、/etc/bash.bashrcを読み込んでいのは分かる。これも全ユーザー共通で実行される。
そして、次に、/etc/profile.d配下にある、拡張子がshになっているファイルをfor文で回して全て読んでいる。ls -l /etc/profile.dで中身を見ると、複雑な名前のスクリプトファイルが、6個程存在している。このファイルの中で何をやっているかはぱっと見は複雑だ。この6ファイル全て実行されていることになる。流したいスクリプトファイルを追加したい場合は、/etc/profileを触らなくても、このディレクトリ配下に新規ファイルをおくだけで、自動で流してくれることになる。