Note to Self

公開する緊張感で、読み返した時に??にならない自分用メモです

bash 初期化ファイルの読み込まれる順番と、使い分けを調べてみた

ログインシェルをbashにしている場合、ログイン時以下の順番で設定ファイルが読み込まれ、

PATHを通す、エイリアスを定義する、プログラムを実行するなどの設定が自動で設定される。

 

■全ユーザに適用される

1./etc/profile  ※

 全ユーザーに適用されるデフォルトの設定ファイル。
 ユーザー単位では編集しない。

 

■以下、ユーザ単位で適用される

 

2.~/bash_profile ※

 存在していれば読込まれる設定ファイル。 
 ログイン時に一度設定すればいいもの。余計なものは極力書かない
 bashでしか使わないものを記述する
 環境変数を設定する (export する変数)

  

3. ~/.bash_login

 ~/.bash_profileが存在しない場合にのみ、存在していれば読込まれる設定ファイル。

 

4.~/.profile

 .bash_profile ・ ~/.bash_loginが存在しない場合にのみ、存在していれば読み込まれる設定ファイル
 シェルの種類に依存しないものを記述する
 環境変数を設定する (export する変数)
 GUIアプリで使うものやbin/shで使うものはここに置く(必須)
 ログインシェルで使うものはここに置くべき

 

5.~/.bashrc ※

 対話モードで使うものはすべてここに書く
 対話モードの bash を起動する時に毎回実行される
 bashを起動するたびに設定する必要のあるもの
 *標準出力・エラー出力に出力が出るものを書いてはいけない。
 bashでしか使わないものを記述する
 環境変数でない変数を設定する (export しない変数)
 エイリアスを定義する
 シェル関数を定義する
 コマンドライン補完の設定をする

*環境変数を記述すると、ターミナル以外から起動するプログラム(GUI起動など)に環境変数が渡らなくなってしまう

 

とりあえず※がついているファイルを設定しておけば良さそう