b.l0g.jp     About     Archive     Feed

historyに時刻を記録する

bash 3.0以上(最近のLinuxは大抵3.0以上)を使用している場合は、「HISTTIMEFORMAT」というシェル変数に時刻のフォーマットを入れることで、historyコマンドの実行結果(ファイル)にコマンドだけではなく時刻も記録できる。以下はhistoryコマンドの実行結果の例。

  
100 2011-11-22 10:16:59 ls
  
101 2011-11-22 10:17:03 cd /var/log/
  
102 2011-11-22 10:17:04 ls
  

ホームディレクトリ以下の.bashrcや/etc/profile(全ユーザに適用したい場合)に

  
HISTTIMEFORMAT='%Y-%m-%d %T '
  

と書いておけばよい。時刻のフォーマットはdateコマンドと同じものが使えるようだ(man dateを参照)。

なお、historyコマンドでは上記のようなフォーマットが有効だが、.bash_historyファイルには、

  
#1321924619
  
ls
  
#1321924623
  
cd /var/log/
  
#1321924624
  
ls
  

のように、UNIX時刻が付加される形で記録される。


海外の役立つブログ記事などを人力で翻訳して公開するYakstというプロジェクトをやっています。よろしければそちらもどうぞ!