表示内容の変更
PS1という環境変数の値を変更することで、Bashのプロンプトの表示を変更することができます。例えば
[user@host:/path/to/current_directory]$
という表示にしたければ
$ export PS1="[\u@\H:\w]$ "
と設定します。ただ、毎回このコマンドを入力するのは大変なので、ホームディレクトリにある.bashrcに書き込んで、ログイン時に自動的に設定されるようにしましょう。
$ vim ~/.bashrc
export PS1="[\u@\H:\w]$ "
PS1の設定値の中で使用できる特殊文字は以下のとおりです。
\a |
ASCIIのベル文字 (07) |
\d |
“曜日 月 日” という形式の日付 (例: “Tue May 26”) |
\D{format} |
formatがstrftime(3)に渡され、その結果がプロンプト文字列に挿入される。formatが空の場合には、ロケールで指定された時刻表記になる。(ブレースは必要) |
\e |
ASCIIのエスケープ文字 (033) |
\h |
ホスト名のうち最初の「.」までの部分 |
\H |
ホスト名 |
\j |
シェルによって現在管理されているジョブの数 |
\l |
シェルの端末デバイスのベース名 |
\n |
改行 |
\r |
復帰 |
\s |
シェルの名前。つまり$0のベース名 (最後のスラッシュ以降の部分) |
\t |
24 時間制のHH:MM:SS形式の現在の時刻 |
\T |
12 時間制のHH:MM:SS形式の現在の時刻 |
\@ |
12 時間制のam/pm形式の現在の時刻 |
\A |
12 時間制のHH:MM形式の現在の時刻 |
\u |
現在のユーザのユーザ名 |
\v |
bashのバージョン (例: 2.00) |
\V |
bashのリリース。バージョンにパッチレベルを加えたもの (例 : 2.00.0) |
\w |
現在の作業ディレクトリ。$HOMEの部分はチルダに短縮される。(PROMPT_DIRTRIMの値が適用される。) |
\W |
現在の作業ディレクトリのベース名$HOMEの部分はチルダに短縮される。 |
\! |
このコマンドの履歴番号 |
\# |
このコマンドのコマンド番号 |
\$ |
実効UIDが0の場合に#、それ以外の場合は$ |
\nnn |
8進数nnnに対応する文字 |
\\ |
バックスラッシュ |
\[ |
非表示文字のシーケンスの開始。これを使うと、プロンプト中に端末の制御シーケンスを埋め込むことができる。 |
\] |
非表示文字のシーケンスを終了する。 |
色の変更
また、色を変えることもできます。色を変えたい文字列を\[\e[<色>m\]と[\e[m\]で囲みます。例えば、ユーザ名を赤くしたい場合は、
$ export PS1="[\[\e[31m\]\u\[\e[m\]@\H:\w]$ "
とします。色はANSIカラーシーケンスに従います。
色のパターン
30 |
黒 |
31 |
赤 |
32 |
緑 |
33 |
黄色 |
34 |
青 |
35 |
紫 |
36 |
水色 |
37 |
白 |
また、色の前か後ろに、セミコロンで区切って一桁の数字を入れることで、文字の装飾を指定することができます。
$ export PS1="[\[\e[31;1m\]\u\[\e[m\]@\H:\w]$ "
装飾のパターン
私のお気に入りは次の設定です。
$ export PS1="[\[\e[01;31m\]\u\[\e[m\]@\[\e[01;33m\]\H\[\e[m\]:\[\e[01;36m\]\w\[\e[m\]]$ "
この場合、プロンプトはこんな感じになります。