LinuxでBashのプロンプト設定を変更する
プロンプトについて
Linuxの標準シェルであるBashでは、コマンドを入力するコンソールをプロンプトと呼ぶ。
Fedora/RedHatでは、初期状態は以下のような形式となる。
1 | [ユーザ名@ホスト名 カレントディレクトリ]$ |
ユーザー名がfoo、ホスト名がbarの場合、以下の通り。
1 | [foo@bar ~]$ |
~は、当該ユーザのホームディレクトリの意味。
カレントディレクトリが/var/tmpの場合、以下の通り。
1 | [foo@bar tmp]$ |
プロンプトの確認
プロンプトの設定は、’PS1’というBashのシェル変数(環境変数)によって定義される。
シェル変数の指定内容を確認するには、echoコマンドを利用。
1 2 | [foo@bar ~]$ echo $PS1 [\u@\h \W]\$ |
\u … ユーザ名
\h … ホスト名
\W … カレントディレクトリ
\$ … 一般ユーザであれば”$”、rootユーザ(UIDが0)であれば”#”を表示
プロンプトの設定変更
プロンプトの表示を変更するには、シェル変数’PS1’を変更する。
1 2 | [foo@bar ~]$ PS1="[\u@\h \t \W]\$ " [foo@bar 13:00:23 ~]$ |
プロンプトに表示可能な情報は以下の通り。
| 指定文字 | 内容 |
|---|---|
| \a | ベル(ビープ音)をならします(ASCIIのベル文字07) |
| \d | 曜日 月 日"の形式の日付 |
| \h | ホスト名(最初の.までの名前) |
| \H | ホスト名 |
| \n | 改行 |
| \r | 復帰 |
| \s | シェル名(標準だと"-bash"が表示) |
| \t | 時刻 HH:MM:SS 形式(24時間) H = Hour = 時、M = Minutes = 分、S = Seconds = 秒 |
| \T | 時刻 HH:MM:SS 形式(12時間) |
| \@ | 時刻 am/pm をつけたもの。Lang=Jaの場合 HH:MM (午前|午後)となる。 |
| \u | 現在のユーザー名 |
| \v | bash のバージョン |
| \V | bash のバージョン・リリース番号など詳細 |
| \w | 現在のディレクトリ(フルパス) |
| \W | 現在のディレクトリ名 |
| \! | コマンドのヒストリー番号 |
| \# | コマンドのコマンド番号(ログイン後何回実行したか) |
| \$ | UIDが0であれば"#"、それ以外は"$" |
| \\ | バックスラッシュ |
| \[ | 表示されない文字列(エスケープシーケンス/端末制御シーケンス)の開始 |
| \] | 表示されない文字列(エスケープシーケンス/端末制御シーケンス)の終端 |
プロンプトにコマンドを指定する場合は、「\$(コマンド)」。
プロンプトの設定を固定する
~/.bashrc ファイル(~はホームディレクトリの意味)の末尾にPS1=’~’の記述を追加する。