historyコマンドの結果に日時も表示できるようにする
Linuxのhistoryコマンドで、実際にそれらのコマンドが実行された日時がわかればいいのになあと思っていたら、あったので方法を書いておきます。
まず、使用するためには、bash 3.0以降である必要がありますので、確認しておいてください。
[root]# bash -version GNU bash, version 3.2.25(1)-release (i686-redhat-linux-gnu) Copyright (C) 2005 Free Software Foundation, Inc.
シェル変数「HISTTIMEFORMAT」を設定する
シェル変数「HISTTIMEFORMAT」を設定することで、historyコマンドの結果に日時が表示されるようになります。
[root]# HISTTIMEFORMAT='%y/%m/%d %H:%M:%S ';
但し、この設定をして以降のコマンド実行日時しか残らないため、設定する以前に実行されたコマンドの日時はわかりません。以下の例では、1000番以前の日時は残っておらず、一律で設定した日時が表示されています。
・ ・ 996 10/10/18 11:51:11 exit 997 10/10/18 11:51:11 cd 998 10/10/18 11:51:11 ls -l 999 10/10/18 11:51:11 pwd 1000 10/10/18 11:51:11 exit 1001 10/10/18 11:51:14 HISTTIMEFORMAT='%y/%m/%d %H:%M:%S '; 1002 10/10/18 11:51:18 history 1003 10/10/18 11:51:36 ls -l 1004 10/10/18 11:51:46 cat test.php 1005 10/10/18 11:51:56 history
上記のように設定しても、次回ログイン時にはまた元に戻ってしまいます。いつでも時間が表示されるようにするには設定ファイルをメンテナンスします。各ユーザの「.bashrc」に下記を追記します。
[root]# cd ~ [root]# pwd /root [root]# vi .bashrc ・ ・ # コマンド実行日時を記録するフォーマット HISTTIMEFORMAT='%y/%m/%d %H:%M:%S' ・ ・
ちなみに
historyの結果の保存場所
historyの結果は、各ユーザのHOMEディレクトリの「.bash_history」というファイルに保存されています。
[root]# pwd /root [root]# ls -la | grep history -rw------- 1 root root 14611 10月 18 10:59 .bash_history