linuxにおける bash 設定ファイル読み込みの順番
2007/11/16
ログイン後の設定ファイルの読み込み順は以下の通りです。
| (1) /etc/profile | ||||
| ↓ | ||||
| (2) ~/.bash_profile | →(ない場合) | ~/.bash_login | →(ない場合) | ~/.profile |
| ↓ | ||||
| (3) ~/.bashrc | ||||
| ↓ | ||||
| (4) /etc/bashrc |
(1)ユーザがログインすると通常はデフォルトである bashが起動し、/etc/profileを読み込みます。これは全ユーザで共通です。この設定ファイルはログイン時のみ使用されます。さらにredhat系では /etc/profile.d 以下のスクリプトが実行されます。
(2)~/.bash_profileが読みこまれます。個人ごとの設定ファイルです。redhat系ではこのファイルがない場合には~/.bash_loginが読み込まれます。さらにこのファイルがない場合には~/.profileが読み込まれます。
(3)~/.bashrcが読み込まれます。このファイルはログイン時以外にも、シェルを起動するごとに読みこまれます。個人ごとの設定ファイルです。
(4)最後に/etc/bashrcが読みこまれます。全ユーザで共通です。redhat系のみです。
(注)~(チルダ)はユーザのホームディレクトリを表します。user01なら/home/user01です。
例としてプロンプトに現在のディレクトリ名を表示させてみます。
以下のコマンドを実行して /.bash_profileを開きます。
| vi ~/.bash_profile |
以下の行を追加します。
ps1によりコマンド待ち状態の表示を定義します。 \w は現在のディレクトリを表します。
| export PS1='\u@\h[\w]\$' |
設定内容をすぐに反映されるには、以下を実行します。
| source ~/.bash_profile |
プロンプトを開いてみます。以下の通り現在のパス(/usr/bin)が表示されています。
| user1@testlinux[/usr/bin]$ |
その他プロンプトとして使用可能なエスケープシーケンスは以下の通りです(一例であり、その他にもあります。)
| \h | ホスト名 |
| \H | ホスト名 (FQDN) |
| \t | 24時間制の時間 |
| \T | 12時間制の時間 |
| \u | ユーザ名 |
| \w | ディレクトリ(絶対パス) |
| \W | 現在のディレクトリ |
| \! | 現在のコマンドのヒストリ番号 |
| \# | 現在のコマンドのコマンド番号 |
[戻る]