Linux で bash(Bourne Shell) の設定をする際に知っておくとよい読み込み順についての備忘録です。
0. 前提条件
- CentOS などの Redhat 系 Linux ディストリビューションを想定。(Debian 系は多少異なる。また、バージョンによって異なることもある)
- 以下の説明はデフォルト設定での読み込み順を想定。
1. bash 設定ファイル
各種 bash 設定ファイルの読み込み順と簡単な説明。(Redhat 系の場合。Debian 系は若干異なる)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
|
- /etc/profile
システム共通の設定ファイルで、ログイン時にのみ読み込まれる。
デフォルトの設定では “/etc/profile.d” ディレクトリ配下の “.sh” 拡張子のファイルも実行する。 - ~/.bash_profile
ユーザ個別の設定ファイルで、存在すればログイン時に読み込まれる。 - ~/.bash_login
ユーザ個別の設定ファイルで、存在すればログイン時に “~/.bash_profile” が存在しない場合に読み込まれる。 - ~/.profile
ユーザ個別の設定ファイルで、ログイン時に “~/.bash_profile”, “~/.bash_login” がともに存在しない場合に読み込まれる。 - ~/.bashrc
ユーザ個別の設定ファイルで、bash 起動時に読み込まれる。
(デフォルトでは ~/.bash_profile から読み込まれるようになっている) - /etc/bashrc
システム共通の設定ファイル(function や alias の設定)で、bash 起動時に ~/.bashrc から読み込まれる。
デフォルト設定では “/etc/bashrc.d” ディレクトリ配下の “.sh” 拡張子のファイルも実行する。 - ~/.bash_logout
ユーザ個別の設定ファイルで、ログアウト時にのみ読み込まれる。
2. まとめ
“~/.bashrc” に全て記載して “~/.bash_profile” から読み込ませるとという使い方の人もいるだろう。
当方は、環境変数の設定は “~/.bash_profile” に記載し、その他 bash 起動時にのみ設定したいものを “~/.bashrc” に記載するようにしている。
そして、システム共通で設定したいものがあれば “/etc/profile” に記載する。(ただ、使用者が自分一人の場合はあまり意味がない)
その他のファイルは今のところ使い道がないので使用していない。
また、各ファイル内をカスタマイズして読み込み順を変更する方法を考えてもよいだろう。
有事の際に確認できるようにと記録しておいた次第です。
以上。