Linuxのbashでプロンプトにタイムスタンプを表示する方法

こんにちは。

普段、Linuxサーバを操作する際、Tera Termを起動しSSH接続して操作をしており、Tera Termの設定で起動時に自動でログの取得を開始するのと、タイムスタンプを付けるのを設定しています。

今回、新規で物理サーバを構築する機会があり、物理サーバにキーボードとマウスを接続しLinuxをインストールする事になりました。

構築時の操作履歴としてコマンドを実行した際の時刻を残したいので、Linuxのbashでプロンプトにタイムスタンプを表示する方法を調べました。

今後の備忘録としてアウトプットします。

bashでプロンプトにタイムスタンプを表示するにはどうすれば良いか

bashは、PS1というシェル変数によってプロンプトのフォーマットを定義しているので、manページを参考にバックスラッシュでエスケープされた特殊文字で定義します。

PS1の変更はexportコマンドから行います。

設定例

redhat系ディストリビューションのデフォルトでは、「ユーザー名@ホスト名 現在のディレクトリ」が[]に囲われて表示されています。

デフォルトの表示を「[YYYY-MM-DD hh:mm:ss ユーザー名@ホスト名 現在のディレクトリ]」に変更するには以下の様に設定します。

export PS1='[\D{%F %T} \u@\h \W]\$'

もし、PS1の設定をデフォルトに戻したい場合は以下の様に設定します。

export PS1='[\u@\h \W]\$'

他には、プロンプトの文字に色を設定することもできるそうです。

色の設定については、この辺りこの辺りを参照してください。

以上が、Linuxのbashでプロンプトにタイムスタンプを表示する方法のアウトプットになります。最後までお読みいただきありがとうございました。