LoginSignup
140
127

More than 5 years have passed since last update.

historyにコマンドの実行時刻が表示されるようにする

Posted at

作業の痕跡を探るにはhistoryコマンドが使えます。でも更に、このコマンドを実行したのは何時頃だっけ?ということを調べたくなったりします。例えば何かトラブルをやらかしてしまったときの原因調査の時とかね。ですがデフォルトでは実行時刻は分かりません。

そんな時に困ることが無いよう、普段から以下の設定をしておけばhistoryで各コマンドの実行時刻が表示出来るようになります。環境変数にexportせず単に変数をセットしておくだけでOKです。

~/.bashrc
# history にコマンド実行時刻を記録する
HISTTIMEFORMAT='%Y-%m-%dT%T%z '

これがセットされていると ~/.bash_history ファイルには以下のようにコマンド毎の実行時刻がUNIXタイムでメモが残されて…

~/.bash_history
#1364542436
history
#1364542451
ls -al
#1364542454
ps axf
#1364542456
pwd
#1364542458
history

更にhistoryを実行時にはその時間がHISTTIMEFORMATで指定したフォーマットに従って以下のように表示してくれるようになります。

 $ history
 1796  2013-03-29T16:34:11+0900 ls -al
 1797  2013-03-29T16:34:14+0900 ps axf
 1798  2013-03-29T16:34:16+0900 pwd
 1799  2013-03-29T16:34:18+0900 history

便利なので僕は新環境をセットアップしたら常に設定するようにしてます。

この設定が生きるのはbashのバージョン3.0からですが、変数設定するだけなので古いbashで実行しても特に害は無いので安心です。

140
127
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
140
127