historyコマンドの結果に日時も表示できるようにする

Linuxhistoryコマンドで、実際にそれらのコマンドが実行された日時がわかればいいのになあと思っていたら、あったので方法を書いておきます。
まず、使用するためには、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
historyの保存件数を増やしたい場合

historyの保存件数はデフォルトで1000ですが、増やしたい場合は「HISTSIZE」変数を変更します。以下の変更で、10000まで保存可能になります。

[root]# HISTSIZE=10000
historyに記録したくないコマンドの設定

見づらくなるのを避けるために、後から確認してもあまり意味のないコマンド(lsやhistoryなど)は、history結果への記録対象から除外してしまいましょう。

[root]# HISTIGNORE=ls:history