bashの環境設定ファイルの種類と読み込みタイミング

bashの環境設定ファイルの種類と読み込みタイミング

Linuxで一般的なシェル「bash」には、環境変数やエイリアスなどを定義するための環境設定ファイルが用意されていますが、読み込まれるタイミングや適用されるユーザーに応じて、どのファイルに記述するのかが決まっています。

そこでここでは、bashで利用される環境設定ファイルの種類と用途を解説します。

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
CentOS Linux7.4.1708

/etc/profile

ログイン時に読み込む全ユーザ共通の設定を記述します。

「/etc/profile.d」ディレクトリ配下のスクリプトファイルを読み込むよう書かれています。

~/.bash_profile

ユーザーログイン時に一回だけ読み込む設定を記述します。

「~/.bashrc」があれば、読み込むように書かれています。

~/.bashrc

対話シェル起動時に読み込む設定を記述し、ユーザー用の設定はこのファイルに記述するとよいでしょう。

「/etc/bashrc」があれば読み込むように書かれています。

参考:「.bash_profileと.bashrcなんて使い分けなくてよかったんや!」

/etc/bashrc

システム全体の関数とエイリアスに関する設定を記述します。

デフォルトプロンプト「PS1」の設定などが書かれています。

~/.bash_logout

ログアウト時に読み込まれる設定を記述します。

CentOS 7では、なにも記述されていないようです。

あとがき

読み込み順や対象ユーザーをまとめると、以下のようになります。

タイミング全ユーザーユーザーごと
ログイン時/etc/profile ①~/.bash_profile ②
bash起動時/etc/bashrc ④~/.bashrc ③
ログアウト時-~/.bash_logout

※丸付き数字は読み込み順です。