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 現在のディレクトリ
\! 現在のコマンドのヒストリ番号
\# 現在のコマンドのコマンド番号

[戻る]