【Linux】シェル環境のカスタマイズと使用(その1)
-
対話型シェル起動時に読み込まれるファイル
~/.bashrc
/etc/bashrc -
Debian系の代表的な派生ディストリビューション
Ubuntu: デスクトップおよびサーバー向けに人気のあるディストリビューションで、ユーザーフレンドリーな操作性が特徴。 -
Debian系のシステムで全ユーザーのbash起動時に共通の処理を実行させるためには、/etc/bash.bashrc ファイルを編集する必要がある。このファイルは、全てのユーザーがbashシェルを起動した際に共通で読み込まれる設定ファイル。
-
ログインシェルとしてbashが起動した際に、読み込む設定がない場合には .bash_profile もしくは .bash_login が読み込まれる。これらのファイルはユーザーのホームディレクトリに存在する。
-
.bash_profile と .bash_login の両方が存在する場合、.bash_profile が優先して読み込まれる。ただし、.bash_profile が存在しない場合には .bash_login が読み込まれる。これらのファイルはログインシェルが起動した際に、ユーザーの環境や設定をカスタマイズするために利用される。
-
ログインシェルとしてbashが起動した際に、読み込む設定がない場合は .bashrc ファイルが読み込まれまない。.bashrc ファイルは非ログインシェル(例えば、新しいターミナルウィンドウを開いた際のシェル)が起動した際に読み込まれる設定ファイル。
※ 補足
具体的に、以下のような順序でbashが読み込む設定ファイルが決定される。
・ログインシェルが起動した場合:
.bash_profile(または .bash_login)が存在する場合は、そのファイルが読み込まれる。
.bash_profileが存在しない場合で、.bash_loginが存在する場合は、そのファイルが読み込まれる。
1と2のファイルが存在しない場合は、.profileが読み込まれます(ただし、Ubuntuなど一部のディストリビューションではデフォルトで .profile も .bash_profile も読み込まない)。
・非ログインシェルが起動した場合:
.bashrcファイルが存在する場合は、そのファイルが読み込まれる。
このように、ログインシェルでは .bash_profile や .bash_login が読み込まれることが期待され、非ログインシェルでは .bashrc が読み込まれることが期待される。ただし、システムや設定によって動作が変わることもあるため、環境に応じて適切な設定を行うことが重要。
-
envコマンドをオプションなしで実行した場合、現在のシェルの環境変数のリストが表示される。
-
シェル関数を確認するためのコマンド
declare -f
---または---
set
---または---
typeset -f
functions
---または---
typeset -f
-
bashのログイン時、環境設定ファイルを読み込む順番
/etc/profile:
システム全体の環境変数や共通の設定を定義するためのファイル。システム全体の設定がここで行われる。~/.bash_profile:
ユーザーごとの個別の設定を定義するためのファイル。ログイン時にこのファイルが存在する場合、他のファイルは読み込まれない。~/.bash_login:
~/.bash_profileが存在しない場合、代わりにこのファイルが読み込まれる。~/.profile:
~/.bash_profileと~/.bash_loginも存在しない場合、このファイルが読み込まれる。
Discussion