助け合いフォーラム

LPIC

LPIC Lv1-102(Ver5.0)
問題ID : 4936
問題を開く
対話型シェルを起動した際に読み込まれるファイルはどれか(2つ選択)

この問題はプレミアムコンテンツです。

上に戻る

設定ファイルの読み込む順番に疑問があります

公開日 2022/12/05

どのOSでもDebian系の/etc/bash.bashrc設定ファイルを読み込む必要があるのでしょうか?
最初はまず/etc/profileを読み込んだ後~/.bash_profile、その後に/etc/bash.bashrc/etc/bashrcを読み込む流れと認識していました。
(解説のフローを見るとそう思ってしまったのですが、実際はどうなのでしょうか?)

2022/12/18 22:18

どのOSでもDebian系の/etc/bash.bashrc設定ファイルを読み込む必要があるのでしょうか?

いいえ.
たとえばDebian系のLinux Mintでは,/etc/profileに次のようなコードがあり/etc/bash.bashrcを読み込んでいますが,Red Hat系のCentOSにはそのような行はありません.

if [ "${PS1-}" ]; then
  if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
    # The file bash.bashrc already sets the default PS1.
    # PS1='\h:\w\$ '
    if [ -f /etc/bash.bashrc ]; then
      . /etc/bash.bashrc
    fi
  else
    if [ "`id -u`" -eq 0 ]; then
      PS1='# '
    else
      PS1='$ '
    fi
  fi
fi

最初はまず/etc/profileを読み込んだ後~/.bash_profile、その後に/etc/bash.bashrcか/etc/bashrcを読み込む流れと認識していました。
(解説のフローを見るとそう思ってしまったのですが、実際はどうなのでしょうか?)

実際の読み込み順序として,Linux Mintの場合は,

  • /etc/profileの読み込み
    • その中で/etc/bash.bashrcの読み込み
  • ~/.profileの読み込み
    • その中で~/.bashrcの読み込み
  • /etc/bashrcの読み込みは無し)

CentOSの場合は,

  • /etc/profileの読み込み
  • ~/.bash_profileの読み込み
    • その中で~/.bashrcの読み込み
      • その中で/etc/bashrcの読み込み
  • /etc/bash.bashrcの読み込みは無し)

bash自体がどの条件でどのファイルを読み込むかは,man bashのINVOCATIONセクションを見るとわかります.


コメント

t tsuyumi_s

2022/12/19 17:42

どのOSかによって読み込むものが変わる、ということですね。 ありがとうございます!

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?