表示内容の変更
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]$ "
装飾のパターン
0 | なし |
1 | 太字 |
4 | 下線 |
5 | 点滅 |
7 | 反転 |
私のお気に入りは次の設定です。
$ export PS1="[\[\e[01;31m\]\u\[\e[m\]@\[\e[01;33m\]\H\[\e[m\]:\[\e[01;36m\]\w\[\e[m\]]$ "