GNU/Linux >> Linux の 問題 >  >> Linux

BASH シェルが Linux で構成ファイルをロードする方法

BASH シェルは、初期化中にいくつかの構成ファイルを読み込もうとします。ログイン シェルか非ログイン シェルかに応じて、2 セットの構成ファイルがあります。

  • ベア メタル モニター、SSH、または # su – [ユーザー名] を使用してサーバーにログインすると、ログイン シェルが表示されます。
  • 既存のセッション (gnome-terminal、別のシェル内のシェル、または # su [username]… を使用) のターミナルでシェルを開始すると、非ログイン シェルが取得されます。シェル スクリプトは、非ログイン シェルでも実行されます。

以下では、これらの構成ファイルにデバッグを追加して違いを説明します。

ログイン シェル

デフォルトでは、ログイン シェルは次のファイルを読み込みます:

# su - test
this is /etc/profile
this is ~/.bash_profile
this is ~/.bashrc
this is /etc/bashrc

~/.bash_profile に注意してください ファイル、デフォルトのファイルは ~/.bashrc を呼び出します 、および ~/.bashrc 呼び出し /etc/bashrc .

何らかの理由で BASH がファイル ~/.bash_profile を見つけられない場合、~/.bash_login を探します。 代わりは。 ~/.bash_login が見つからない場合、BASH は ~/.profile を探します。

また、2 つのケースでは、~/.bash_login または ~/.profile で明示的に呼び出されない限り、~/.bashrc と /etc/bashrc は読み込まれません。

~/.bash_profile が存在しない場合の例:

– ~/.bash_login が存在する場合、~/.profile が存在するかどうかに関係なく:

$ su - test
Password: 
this is /etc/profile
This is ~/.bash_login

– ~/.profile のみ:

# su - test
this is /etc/profile
this is ~/.profile

非ログイン シェル

簡単です。BASH は ~/.bashrc のみをロードし、ファイルは /etc/bashrc を呼び出します。

# su test
this is ~/.bashrc
this is /etc/bashrc


Linux
  1. LinuxでRsyncコマンドを使用するにはどうすればよいですか?

  2. Linux の find コマンドを使用してファイルを検索する方法

  3. Linux シェルを使用してスペースを含むファイルの名前を変更するにはどうすればよいですか?

  1. Linuxの基本:Wgetを使用してシェルにファイルをダウンロードする方法

  2. Linux ですべてのスパース ファイルを見つける方法

  3. Linux でデフォルトのシェルを変更する方法

  1. 検索コマンドを使用してLinuxでファイルを検索する方法

  2. Linuxでファイルのパーミッションを再帰的に変更する方法

  3. Linux でデフォルトのシェルを変更する方法