プロンプトの表示の変更

表示内容の変更

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} formatstrftime(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\]]$ "

この場合、プロンプトはこんな感じになります。ps1

コメントを残す

Required fields are marked *.


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Top