history添加时间

说明:
linux和unix上都提供了history命令,可以查询以前执行的历史命令。但这个记录并不包含时间,只能看到命令,但是不知道什么时间执行。那如何让history记录时间呢?

实现:
1.编辑/etc/bashrc文件,在最后添加如下行

# vim /etc/bashrc
HISTTIMEFORMAT="%Y%m%d-%H%M%S: " 或HISTTIMEFORMAT='%F %T '

“HISTTIMEFORMAT的格式就是strftime函数的格式,比如上面的”%F %T”,%F表示显示出Y-M-D格式的日期,%T表示显示出H-M-S这样格式的时间。更多的格式,可以参考man strftime。本方法只对bash-3.0以上版本有效,执行rpm -q bash即可显示bash的版本,对于常见的linux AS4、AS5,都是有效的

2.设置HISTTIMEFORMAT变量

# export HISTTIMEFORMAT  //此时~/.bash_history文件中,就有记录命令执行的时间了。
# cat ~/.bash_history  //cat显示历史命令会看到这个时间不是年月日显示的,而是按照unix time来显示
#1184649982
touch 3
#1184649984
exit
#1184650148
history

这个时间叫做unix time,是从1970年1月1日临时起,到现在一共经过了多少秒。因为1969年是unix系统诞生,因此1970年1月1日被规定为unix系统诞生的时间的初始
linux系统因为和unix系统的相似性,也完全采用这种方式来记录时间
为了按照人类的年月日方式来显示时间,执行history命令来查看,就可以了。

# history | more
1 20070717-132935: ll
2 20070717-132935: w
3 20070717-132935: rm -rf *
4 20070717-132935: ll
5 20070717-132935: w
6 20070717-132935: cat /etc/redhat-release
7 20070717-132935: rpm -ivh expect-5.42.1-1.i386.rpm
8 20070717-132935: ll
9 20070717-132935: vi /etc/sysconfig/i18n
10 20070717-132935: ll
11 20070717-132935: rpm -q expect

这样即可查看到在什么时间执行了什么命令。

附录:
本方法在服务器新安装时就设置这个参数。如果是已经在运行的服务器添加这个参数,以前的那些命令历史记录显示的是你export HISTTIMEFORMAT时的时间

发表评论

邮箱地址不会被公开。 必填项已用*标注