当前位置: > Linux命令 >

linux history命令显示时间记录怎么设置?

时间:2015-05-02 00:57来源:linux.it.net.cn 作者:IT

linux与unix系统中的history命令,也是linux常用命令了,它可以查询以前执行的命令历史记录,不过此命令显示结果中并不包含时间项目,因此也就看不到命令的执行时间,

如何让history记录时间?

解决方法:
注意:本方法只对bash-3.0以上版本有效,执行rpm -q bash即可显示bash的版本,对于常见的linuxAS4、AS5,都是有效的。

编辑/etc/bashrc文件,加入三行:
 

HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M%S: "  或HISTTIMEFORMAT="%Y%m%d %T "
export HISTTIMEFORMAT

或写在一行:
 

echo "HISTFILESIZE=2000" >> /etc/bashrc && echo "HISTSIZE=2000" >> /etc/bashrc && echo 'HISTTIMEFORMAT="%Y%m%d %T "'>> /etc/bashrc && export HISTTIMEFORMAT

保存后退出,关闭当前shell,并重新登录。

此时,在~/.bash_history文件中,就有记录命令执行的时间了。
用cat命令显示这个文件,但是却会看到这个时间不是年月日显示的
而是按照unix time来显示:
 

[root@vz ~]# cat ~/.bash_history
#1184649982
touch 3
#1184649984
exit
#1184650148
history 
[root@vz ~]# 
 

这个时间叫做unix time,是从1970年1月1日临时起,到现在一共经过了多少秒
因为1969年是unix系统诞生,因此1970年1月1日被规定为unix系统诞生的时间的初始
linux系统因为和unix系统的相似性,也完全采用这种方式来记录时间

为了按照人类的年月日方式来显示时间,执行history命令来查看,就可以了,例如:
 

[root@vz ~]# 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
[root@vz ~]#

如此,便可以查看在什么时间执行了哪些linux命令了。

注意:本方法必须在服务器刚刚新安装好时候,就设置这个参数。

注意,此命令功能的修改,只适用修改后的history命令输出结果,之前命令历史记录同样不显示时间。



(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容