熟悉bash的都一定知道使用history可以输出你曾经输入过的历史命令,例如

[leconte@web ~]$ history|more25cd docroot/26ls27cd blog/28ls29cd wp-content/themes/30ls

但是这里只显示了命令,并没有显示执行命令的时间,因为保存历史命令的~/.bash_history里并没有保存时间。

通过设置环境变量HISTTIMEFORMAT=”%F %T “即可为history加上时间戳,例如:

[leconte@web ~]$  exportHISTTIMEFORMAT="%F %T "[leconte@web ~]$ history|tail9972010-04-1315:25:08 history9982010-04-1315:25:08 history| gmore
  9992010-04-1315:25:08 history|more10002010-04-1315:25:08 exit10012010-04-1315:25:10history10022010-04-1315:37:07  exportHISTTIMEFORMAT="%F %T "10032010-04-1315:37:12history|head10042010-04-1315:37:26history|tail10052010-04-1315:37:37history|head

可以看到,历史命令的时间戳已经加上了,但是.bash_history里并没有加上这个时间戳。其实这个时间记录是保存在当前shell进程内存里的,如果你logout并且重新登录的话会发现你上次登录时执行的那些命令的时间戳都为同一个值,即当时logout时的时间。

尽管如此,对于加上screen的bash来说,这个时间戳仍然可以长时间有效的,毕竟只要你的server不重启,screen就不会退出,因而这些时间就能长时间保留。