#ホームディレクトリに「.bashrc」や「.bash_profile」というファイルがあるが、、これは何?
と疑問を持った。
一言で、シェルが起動するときに実行される初期化ファイル。
シェルの役割として大きく二つ
- ユーザーがコマンドを実行するためのコマンドライン環境を提供。ユーザーとOSの中枢であるカーネルとのインタフェースの役割を果たすこと。
- ユーザーがログインを行った際に、環境を整えるためにさまざまなファイルを実行し、初期化を行うこと。今回疑問に思ったファイルはbash(Bourne Again SHell)が起動されるときに実行される。
###2番目の役割の際に初期化で使われるファイルが、bashrcとbash_profileらしい。
#bash起動時の初期化フロー
- /etc/profileを実行
- /etc/profileによって、/etc/profile.dディレクトリ配下のすべてのファイルを実行
- ログインユーザーのホームディレクトリにある .bash_profileを実行
- .bash_profileによって、.bashrcを実行
- .bashrcによって、/etc/bashrcを実行
#bashrcとbash_profileの違い
.bash_profileはbashがログインシェルとして起動されたときにのみ実行されるが、
.bashrcはログイン時も含めbashが起動するたびに実行される点が違う。
なので、
###.bash_profileにはユーザーがログイン時にのみ行う処理(設定)を記述する。
###.bashrcにはシェル変数や環境変数、エイリアスなどユーザー環境の基本となる設定を記述する。
#sourceコマンド
上記テキストファイルは内容を変更しただけでは変更が反映されないので、ログアウトしなおすか、sourceコマンドを打つ。
$ source .bash_profile
これで変更が反映される。