PR

 Linuxで用いられる標準のシェル・プログラムは「bash」(ばっしゅ)である。bashの設定ファイルは全ユーザー共通の/etcディレクトリと,各ユーザーごとのホーム・ディレクトリに分かれており,各ユーザーの設定が優先される。

全ユーザー共通の設定

 /etcディレクトリには,/etc/bashrcファイルと,/etc/profileファイルという,bashの設定ファイルが配置されている。

 /etc/bashrcファイルには,全ユーザーに共通のエイリアスと関数が記述されている。標準では,シェルを起動した環境ごとのプロンプトが定義されているほか,ファイルやディレクトリを新規作成した場合にどのようなパーミッションが設定されるかが記述されている。

 例えばユーザーIDの値によって処理が変化する。例えば,Fedora 7では,IDが99より大きい場合はumask 002が実行され,それ以外はumask 022が設定される。

 一方,/etc/profileファイルには環境変数と起動プログラムが記述されている。

各ユーザーごとの設定

 各ユーザーごとの設定は,エイリアスなどについては「.bashrc」ファイルに,環境変数と起動プログラムは「.bash_profile」ファイルに記述される。このほか,ログアウト時にのみ実行される「.bash_logout」ファイルと,コマンド履歴を記録する「.bash_history」ファイルも存在する。

 全ユーザー共通の設定である/etc/bashrc,/etc/profileと,各ユーザーごとの.bash_rc,.bash_profileの間には,“呼び出し関係”がある。.bash_profileは,.bashrcを,.bashrcは,/etc/bashrcを読み出すようにあらかじめ指定されている。このため,あるユーザーがbashを起動すると,まず最初に全ユーザー共通の設定内容が適用され,そこに各ユーザーごとの個別の設定が上書きされる。

 システムへのログイン時には,.bash_profileと/etc/profileが読み出される。その後,例えばGNOME端末などのシェルを起動するたびに,.bashrcが読み込まれる。しかし,.bash_profileは読み込まれない。従って,ログイン直後に1度だけ実行させたいプログラムは.bash_profileに記述するべきである。