[FAQ CENTER トップ]
[redhat linux 技術ドキュメント トップ]
Redhat EL 6.2の場合
環境:RHEL 6.2 (run level 3)
# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.2 (Santiago) # grep :initdefault: /etc/inittab id:3:initdefault: |
以下に色々なログオンによる各bashファイルの読み込み順番についてまとめました。表内の数字は読み込まれる順番を表します。×は読み込まれない事を表します。~(チルダ)はユーザのホームディレクトリを表します。user01なら/home/user01です。
ログオンの方法 | /etc/profile.d/*.sh | /etc/profile | /etc/bashrc | ~/.bashrc | ~/.bash_profile(注1) |
コンソールログオン(テキストモードの通常のログオン) | 1 | 2 | 3 | 4 | 5 |
su - (su コマンドをハイフン付き) | 1 | 2 | 3 | 4 | 5 |
su (su コマンドをハイフン無し) | 1 | × | 2 | 3 | × |
su でコマンドを実行 (su -c <コマンド>) |
× | × | × | × | × |
X-Window 起動後にターミナル起動 | 1 | × | 2 | 3 | × |
ssh ログオン | 1 | 2 | 3 | 4 | 5 |
ssh でリモートコマンド実行 (ssh <ユーザ名>@<ホスト名> <コマンド> |
× | × | 1 | 2 | × |
single モードで起動 | 1 | × | 2 | 3 | × |
bash でコマンド実行 (bash -c <コマンド>) |
× | × | × | × | × |
bash でシェルスクリプトファイルを実行 (bash -c <シェルスクリプトファイル名>) |
× | × | × | × | × |
(注1)~/.bash_profileが読みこまれます。個人ごとの設定ファイルです。redhat系ではこのファイルがない場合には~/.bash_loginが読み込まれます。さらにこのファイルがない場合には~/.profileが読み込まれます。
Redhat EL 4の場合
日付 | 2009/2/20 |
環境 | Redhat Enterprise linux 4 |
redhat系のログイン後の設定ファイルの読み込み順は以下の通りです。ディストリビューションにより異なる場合があるので注意。
(1) /etc/profile | ||||
↓ | ||||
(2) /etc/bashrc | ||||
↓ | ||||
(3) ~/.bashrc | ||||
↓ | ||||
(4) ~/.bash_profile | →(ない場合) | ~/.bash_login | →(ない場合) | ~/.profile |
(1)ユーザがログインすると通常はデフォルトである bashが起動し、/etc/profileを読み込みます。これは全ユーザで共通です。この設定ファイルはログイン時のみ使用されます。さらにredhat系では /etc/profile.d 以下のスクリプトが実行されます。
(2)/etc/bashrcが読みこまれます。全ユーザで共通です。redhat系のみです。
(3)~/.bashrcが読み込まれます。このファイルはログイン時以外にも、シェルを起動するごとに読みこまれます。個人ごとの設定ファイルです。
(4)~/.bash_profileが読みこまれます。個人ごとの設定ファイルです。redhat系ではこのファイルがない場合には~/.bash_loginが読み込まれます。さらにこのファイルがない場合には~/.profileが読み込まれます。
(注)~(チルダ)はユーザのホームディレクトリを表します。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 | 現在のディレクトリ |
\! | 現在のコマンドのヒストリ番号 |
\# | 現在のコマンドのコマンド番号 |