.bash_profileと.bashrc の違いについて

2021-06-22

概要

ユーザー環境のカスタマイズで「パス」、「エリアス」など追加などする場合は、「.bash_profile」や「.bashrc」に追加します。

「.bash_profile」や「.bashrc」は、用途によって使い方を分けて書いたりします。その違いなどを説明します

「.bash_profile」と「.bashrc」の実行されるタイミング

「.bash_profile」や「.bashrc」が実行されるタイミングですが、どちらもユーザーがログインしたタイミングです。読み込まれる順番は、「.bash_profile」>「.bashrc」で、「.bash_profile」が読み込まれてから、「.bashrc」が読み込まれます。

「.bash_profile」と「.bashrc」の違い

「.bash_profile」と「.bashrc」の違いは、以下のようになります。
「.bash_profile」はログインした時に実行され、「.bashrc」はシェル(bash)を起動した時に実行されます。

.bash_profile ログイン時に実行される
.bashrc シェル(bash)起動時に実行される

GUI環境のX Window の場合で、ターミナルを起動する場合は、「.bashrc」のみ実行されます。X Windowでは、ログインして状態となるので、ターミナルを起動しても「.bash_profile」は実行されません

ユーザーを切り替える「su」コマンドでは「su」と「su -」で読み込まれるファイルの違いがあり、以下の表になります。「su -」では、ログインシェルを切り替えてユーザーを切り替えるので、.bash_profileが実行されます

コマンド .bash_profile .bashrc
su ×
su –

 

「.bash_profile」と「.bashrc」の使い分け

私の場合ですが、以下の様な感じで使い分けています。

  • .bashrcには、「カスタムプロンプト」、「エリアス」を設定する
  • .bash_profileには、「パス」を設定する

カスタムプロンプトは、PS1をカスタマイズしたものです。
下記では、任意の名前(この場合どこのサーバーかを明記:DTI) ユーザー名 ホスト名としています。

また、操作ログなどに時間を表示する場合などで、PS1で時間を表示する場合も多いようです。以前勤めていた会社のサーバーはその設定でした

PS1="[DTI \u@\h \W]\\$ "
# 表示すると下記になります
[DTI admin@www01 ~] $

 

Linux

Posted by admin