historyコマンド
コマンドの実行履歴を表示するコマンド。
純粋に履歴を参照したり、「!数字」で過去のコマンドを実行したりと便利。
# history | tail 1002 cmd2 1003 cmd3 1004 cmd4 1005 cmd5 1006 cmd6 1007 cmd7 1008 cmd8 1009 cmd9 1010 cmd10 1011 history | tail
環境変数HISTTIMEFORMAT
コマンドの実行履歴を参照できるのはありがたいが、システムを管理する立場の人からすると、「操作ログの保存」という意味合いでコマンドの実行時刻を確認したいもの。それは環境変数HISTTIMEFORMATを設定することで実現する。
# vi /etc/profile
#任意の箇所に追加
export HISTTIMEFORMAT="%Y/%m/%d %T "
# history | tail 1005 2014/07/03 01:03:48 cmd5 1006 2014/07/03 01:03:48 cmd6 1007 2014/07/03 01:03:48 cmd7 1008 2014/07/03 01:03:48 cmd8 1009 2014/07/03 01:03:48 cmd9 1010 2014/07/03 01:03:48 cmd10 1011 2014/07/03 01:03:48 history | tail 1012 2014/07/03 01:03:48 vi /etc/profile 1013 2014/07/03 01:03:48 . /etc/profile 1014 2014/07/03 01:03:48 history | tail
ちなみに、実際に設定してみて気づかれたと思うが、HISTTIMEFORMATを設定する以前のコマンドの実行時刻も表示されている。つまり、実行時刻自体は初めから記録されていて、HISTTIMEFORMATはあくまでどのような形式で表示するかを設定する変数に過ぎない。
その時刻は、下記ファイルにシリアル値として記録されていた。
# cat ~/.bash_history | tail #1404316998 1027 cmd6 #1404316998 1028 cmd7 #1404316998 1029 cmd8 #1404316998 1030 cmd9 #1404316998 1031 cmd10
そんなところ。