48
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

bashrcとbash_profile

ホームディレクトリに「.bashrc」や「.bash_profile」というファイルがあるが、、これは何?

と疑問を持った。
一言で、シェルが起動するときに実行される初期化ファイル。

シェルの役割として大きく二つ

  1. ユーザーがコマンドを実行するためのコマンドライン環境を提供。ユーザーとOSの中枢であるカーネルとのインタフェースの役割を果たすこと。
  2. ユーザーがログインを行った際に、環境を整えるためにさまざまなファイルを実行し、初期化を行うこと。今回疑問に思ったファイルはbash(Bourne Again SHell)が起動されるときに実行される。

2番目の役割の際に初期化で使われるファイルが、bashrcとbash_profileらしい。

bash起動時の初期化フロー

  1. /etc/profileを実行
  2. /etc/profileによって、/etc/profile.dディレクトリ配下のすべてのファイルを実行
  3. ログインユーザーのホームディレクトリにある .bash_profileを実行
  4. .bash_profileによって、.bashrcを実行
  5. .bashrcによって、/etc/bashrcを実行

bashrcとbash_profileの違い

.bash_profileはbashがログインシェルとして起動されたときにのみ実行されるが、
.bashrcはログイン時も含めbashが起動するたびに実行される点が違う。
なので、

.bash_profileにはユーザーがログイン時にのみ行う処理(設定)を記述する。

.bashrcにはシェル変数や環境変数、エイリアスなどユーザー環境の基本となる設定を記述する。

sourceコマンド

上記テキストファイルは内容を変更しただけでは変更が反映されないので、ログアウトしなおすか、sourceコマンドを打つ。
$ source .bash_profile
これで変更が反映される。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
48
Help us understand the problem. What are the problem?