読者です 読者をやめる 読者になる 読者になる

標準出力

新しいもの、変わらないこと 自分の頭を通して考えてみました (stdout)

設定ファイルロードプライオリティ

自分は、主にUbuntuでcシェル派だったが仕事でRHELの環境でbashを使わざるをえない機会があって今回意識させられた。




まずは、Ubuntuの場合、


bash(ログインシェル)の設定ファイルは以下の順序で読み込まれる。
1) /etc/profile  
    ↓
2) /etc/bash.bashrc
    ↓
3) ~/.bash_profile (ある場合)
    ↓
4)~/.bashrc (ある場合)
    ↓
5)~/.bash_login (ある場合)
    ↓
6)~/.profile (ある場合) 


bash(ログインシェルではない場合)
1)/etc/bash.bashrc
    ↓
2)~/.bashrc

Ubuntuの場合ログインシェルにしろログインシェルでないにしろ~/.bashrcは読み込まれる。
しかし、RHELは違った。むしろ、Ubuntuがいろいろ調べると"異端"な感想を持った。

ログインシェルの場合~/.bashrcは読み込まれないということである。
つまり、一般的なUNIX互換な環境では、
ログインシェルの場合

1) /etc/profile  
    ↓
2) ~/.bash_profile (ある場合)

    ↓
3)~/.bash_login (ある場合)
    ↓
4)~/.profile (ある場合)


であり、
ログインシェルでない場合。
1)~/.bashrc


となるらしい。
つまり、RHELの場合、ユーザー固有のシェルの設定は、~/.bash_profileに書くこととなる。