今回は、LinuxのBashプロンプトに時刻を表示する方法を調べたので、備忘がてら記事にします。
普段、CentOSをよく触っていますが、コマンドのログをターミナルソフトで外部ファイルへ出力する際に時刻を別で表示させる必要があるので億劫だな〜と思っていました。
調べていると、プロンプトの表示をカスタマイズすることができることがわかったので早速使ってみました!
実現したいこと
今回実現したいのは、下のプロンプトです。
[root@test 22:00:22 ~]#
デフォルトの[root@test ~]# の間に24時間表記の現在時刻を表示します。
これだとターミナルソフトでログを指定のファイルに吐かせると、時間もバッチリわかります。
検証環境
検証環境はこんな感じ
- ホスト名:test.local
- ユーザ:root
- OS:CentOS8
恒久設定か、ログアウトまでか
設定には、2パターンあります。
1つは、ログアウトや再起動をしても設定を保持する。
もう1つは、ログアウトや再起動で設定が消えてしまう、現セッションのみに有効化する方法。
パターン1:恒久設定
私はこのパターンにしました。
まず、~/.bashrcを編集します。rootで操作している場合は/root/.bashrc、ユーザの場合は/home/${ユーザ名}です。
最下行に以下のような記述を追記してください。
1 |
PS1="[\u@\h \t \W]\\$ " |
そして、ログインし直すか、再起動を行ってください。
すると、こんな感じのプロンプトになるはずです↓
1 2 3 4 5 |
[root@test 22:12:58 ~]# [root@test 22:12:59 ~]# [root@test 22:13:00 ~]# [root@test 22:13:01 ~]# [root@test 22:13:02 ~]# |
デフォルトに戻したいときはさっき入力した部分を消すか、下のように変更しましょう。
1 |
PS1="[\u@\h \W]\\$ " |
たったこれだけで設定は完了です!
パターン2:ログアウトするまでの設定
これは、ちょっと今だけ時刻表示したい、とかカスタマイズしたい!という時に使える設定です。ログアウトしたり、再起動をすると設定が元に戻ってしまいます。
たった1行入力するだけで完了です。
1 |
export PS1="[\u@\h \t \W]\\$ " |
これで、即座にプロンプトに反映されると思います。
なので、恒久設定をした後にこのコマンドを打つことでログアウトや再起動をせずに設定を反映することも可能です。
解説+使えそうだと思った特殊文字
さっき何気なくコピペしたPS1に入っている特殊文字ですが、こんな意味がありました。
あと、絶対パスでカレントディレクトリを表示してくれるのとかも使えそうです。
\u = ユーザ名
\h = ホスト名
\H = FQDN
\t = 時間(24時間表示)
\T = 時間(12時間表示)
\w = カレントディレクトリ(絶対パス)
\W = カレントディレクトリ(相対パス)
\h = ホスト名
\H = FQDN
\t = 時間(24時間表示)
\T = 時間(12時間表示)
\w = カレントディレクトリ(絶対パス)
\W = カレントディレクトリ(相対パス)
こんな感じで、今回はBashのプロンプトに時刻を表示する方法をお伝えしました。
では〜〜〜
コメント