【CentOS】Linuxのプロンプトに時刻を表示する

2021/09/06

Linuxのプロンプト表示をカスタマイズできることを知ったので備忘録記事にしました。

 

やりたいこと

今回実現したいのは次のプロンプトです。

[hogehoge@kusanagi71 23:38:00 ~]#

標準のプロンプトに24時間表記の現在時刻を表示します。

設定には2つのパターンがあり、1つは恒久的に保持する設定と、もう1つは現セッションに限り有効で、ログアウトや再起動で破棄される設定があります。

 

恒久保持設定

まず~/.bashrcを編集します。
rootで操作している場合は/root/.bashrc、ユーザの場合は/home/${ユーザ名}です。

 

最下行に次の記述を追記します。

PS1="[\u@\h \t \W]\\$ "

 

設定後、すぐに反映されるのでターミナルを開き直します。
すると、下のようなプロンプトになります。

[hogehoge@kusanagi71 23:50:35 ~]#
[hogehoge@kusanagi71 23:50:36 ~]#
[hogehoge@kusanagi71 23:50:37 ~]#
[hogehoge@kusanagi71 23:50:39 ~]#
[hogehoge@kusanagi71 23:50:40 ~]#
[hogehoge@kusanagi71 23:50:41 ~]#

 

ログアウトするまで保持

まず~/.bashrcを編集します。
rootで操作している場合は/root/.bashrc、ユーザの場合は/home/${ユーザ名}です。

 

最下行に次の記述を追記します。

export PS1="[\u@\h \t \W]\\$ "

 

その他

緑文字でカレントディレクトリ/ホスト名 時刻(24時間)を表示

PS1="\[\033[0;32m\][\W/\h \t]\$ "

 

日付と時刻を表示

PS1="[\$(date)]\$ "

 

リファレンス

エスケープ文字

\a     asciiベル(07)
\d     日付
\e     asciiエスケープ文字(033)
\h     ホスト名
\H     FQDN名
\n     改行
\r     復帰
\s     シェル名
\t     時刻 HH:MM:SS形式(24時間)     
\T     時刻 HH:MM:SS形式(12時間)
\@     時刻 am/pmつき
\u     ユーザー
\v     bashバージョン
\V     bashバージョン・リリース番号
\w     現在のディレクトリ(フルパス)
\W     現在のディレクトリ(ベース名)
\!     コマンドのヒストリー番号
\#     コマンドのコマンド番号
$      UIDがあれば"#"、それ以外は"$"
\nnn   8進数nnnに対応する文字
\[     表示されない文字列エスケープシーケンスを埋め込む
\]     表示されない文字列の終わり
\\     バックスラッシュ

文字色変更

Black        0;30
Red          0;31
Green        0;32
Brown        0;33
Blue         0;34
Purple       0;35
Cyan         0;36
Light Gray   0;37
Dark Gray    1;30
Light Red    1;31
Light Green  1;32
Yellow       1;33
Light Blue   1;34
Light Purple 1;35
Light Cyan   1;36
White        1;37

参考:Bash Prompt HOWTO

2021/09/06