historyコマンドで表示されるコマンド実行履歴に、実行時のタイムスタンプ情報を付加する。
historyコマンドは、デフォルトでコマンドの実行日時情報が記録されません。
[root@1803-zm05 ~]# history
1 13/12/31 23:59:56 cd ~
2 ls -la
3 du -h /home
4 fdisk -l
これにコマンドの実行日時情報を付加する場合は、HISTTIMEFORMAT環境変数を設定します。
[root@1803-zm05 ~]# touch /etc/profile.d/history.sh [root@1803-zm05 ~]# cat <<EOF >> /etc/profile.d/history.sh > HISTSIZE=10000 > HISTFILESIZE=10000 > HISTTIMEFORMAT='%y/%m/%d %H:%M:%S ' > HISTIGNORE=history > EOF
例では/etc/profile.d/ディレクトリにhistory.shファイルを作成しました。
設定した環境変数は以下
- HISTSIZE
- 記録される実行コマンドの最大値
- HISTFILESIZE
- 記録される実行コマンドの最大値(基本的にHISTSIZEと同値を指定します)
- HISTTIMEFORMAT
- 今回の題材でもある実行日時の書式設定
- HISTIGNORE
- 履歴から除外するコマンド(例では、history。複数指定の場合は:で区切り指定します。 =history:whoami)
他にもHISTCONTROLなどを設定可能です。
上記の設定通りの場合は、/etc/profile.d/history.shファイルは以下のように設定されているはずです。
[root@1803-zm05 ~]# cat /etc/profile.d/history.sh
HISTSIZE=10000
HISTFILESIZE=10000
HISTTIMEFORMAT='%y/%m/%d %H:%M:%S '
HISTIGNORE=ls:history
HISTTIMEFORMATの値の末尾に半角スペースで間を設けているのは、historyの履歴追記時に実行コマンドと実行日時がくっついてしまわないようとの調整です。(*≧∀≦*)
上記の設定以降のhistory表示フォーマットは次のように表示されます。
[user@1803-zm05 ~]# history
1 14/01/01 23:59:56 cd ~
2 14/01/01 23:59:57 ls -la
3 14/01/01 23:59:58 du -h /home
4 14/01/01 23:59:59 fdisk -l