Help us understand the problem. What is going on with this article?

bashrcとbash_profile

More than 3 years have passed since last update.

ホームディレクトリに「.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
これで変更が反映される。

OTAGRAMER
備忘録として会社で学んだことを記録します。 あやふやな箇所が多いかもしれませんが、そんなときはビシッと指摘くださると幸いです。
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