history 是一条非常实用的 shell 命令,可以显示出之前在 shell 中运行的命令,但是如果需要查什么时候什么人执行了什么命令似乎还是非常吃力,因为你即使查到了一条你认为不应该执行的命令,你也不能准确的说出这条命令是谁来执行的,更不能精确的指出这条命令就是事故发生的时候执行的,怎么办? shterm? 这个对于一般中小型公司来说似乎还是非常昂贵的,怎么办? 

设置很简单:

[dbadmin@JR-ZR01-TEST ~]$ history

1 ls
2 pwd
3 iptables-save
4 history
5 unset HISTTIMEFORMAT
6 history
设置方法:

[root@MO-ZR01-WEB ~]# export HISTTIMEFORMAT="%F %T `whoami` "
[root@MO-ZR01-WEB ~]# echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile
[dbadmin@JR-ZR01-TEST ~]$ history
1 2008-06-20 05:36:14 dbadmin ls
2 2008-06-20 05:36:16 dbadmin pwd
3 2008-06-20 05:36:19 dbadmin iptables-save
4 2008-06-20 05:36:23 dbadmin history
5 2008-06-20 05:36:31 dbadmin unset HISTTIMEFORMAT
6 2008-06-20 05:36:32 dbadmin history
7 2008-06-20 05:37:19 dbadmin export HISTTIMEFORMAT="%F %T `whoami` "
8 2008-06-20 05:37:20 dbadmin history

HISTTIMEFORMAT 的格式就是 strftime 函数的格式,比如上面的  “%F %T”,%F 表示显示出 Y-M-D 格式的日期,%T 表示显示出  H-M-S 这样格式的时间。更多的格式,可以参考 man strftime