自由気ままに書いちゃおう

好きなことをつらつらと・・・

【RHEL8】.bash_profile と.bashrcと/etc/bashrcについて

ユーザ作成時のひな型が格納されている/etc/skel内の各ファイルについてです。
/etc/skelについては下記でも取り上げております。

www.guri2o1667.work

 

■前提

まず、/etc/skelディレクトリ自体は、
全ユーザで共通となるファイル/ディレクトリが格納されております。

■/etc/skelディレクトリの内容

※.mozillaは気にしなくて良いです。

f:id:guri2o1667:20201025113326p:plain


一つ一つ見ていく前に、各ファイルの関連性を記載致します。

■各ファイルの関連性について

.bash_profile が読み込まれ、そのあとに.bashrcが実行されます。
.bashrcが読み込まれた際に、/etc/bashrcも読み込まれます。

つまり、以下の流れでファイルが読み込まれます。
.bash_profile > .bashrc > /etc/bashrc

■.bash_profile

デフォルトの.bash_profileは以下の通りです。

f:id:guri2o1667:20201025114314p:plain


.bashrcが読み込まれていることがわかります。
( . ~/.bashrc の部分です。)

.bash_profileでは、
ユーザ特有の環境変数やログイン時に起動するプログラム(bashシェルなど)を記載します。

■.bashrc

デフォルトの.bashrcは以下の通りです。

f:id:guri2o1667:20201025114511p:plain


/etc/bashrcが読み込まれていることがわかります。
( . /etc/bashrc の部分です。)

.bashrcでは、
ユーザ特有のコマンドエイリアスや関数を記載致します。

■/etc/bashrc

全ユーザ共通で利用するファイルです。
詳細は割愛しますが、ユーザ単位での設定は本ファイルに記載しません。

■各ファイルの使い分けについて

上記で色々書いていますが、
使い分けは以下を基準に考えてもらうと分かりやすいです。

.bash_profile ・・・ ログインしようとしているユーザで、シェル上で一回だけ実行する内容
.bashrc ・・・ シェルを起動するたびに実行したい内容

試しに、rootユーザにて、testuserの.bash_profileと.bashrcを以下の通り修正してみます。

【.bash_profile】

※2行目と6行目のechoコマンドの部分が追記箇所です。
f:id:guri2o1667:20201025121509p:plain

【.bashrc】

※2行目のechoコマンドの部分が追記箇所です。

f:id:guri2o1667:20201025123539p:plain


では、testuserでログインしてみます。

f:id:guri2o1667:20201025120759p:plain

f:id:guri2o1667:20201025123613p:plain

上記のように、.bash_profile > .bashrc が実行されたのがわかります。

続けて、同じシェル上でbashコマンドを実行します。

f:id:guri2o1667:20201025123902p:plain


.bashrcが実行されたことがわかりました。
尚、この時点では/dev/pts/7としてシェルが起動しています。

では、新しいSSHログインを実施してみます。

f:id:guri2o1667:20201025123957p:plain

/dev/pts/8として実行されている為、. bash_profile > .bashrc が起動していることがわかります。

以上です。