龙空技术网

「Linux」history命令显示时间记录

BabySermonizer 344

前言:

眼前同学们对“centos显示时间命令”大致比较关心,朋友们都需要知道一些“centos显示时间命令”的相关知识。那么小编也在网络上收集了一些关于“centos显示时间命令””的相关知识,希望大家能喜欢,你们快快来了解一下吧!

inux和unix上都提供了history命令,可以查询以前执行的命令历史记录,但是,这个记录并不包含时间项目

因此只能看到命令,但是不知道什么时间执行的

以下便是history记录时间的方法:

第一步:查看系统是否支持

注:本方法只对bash-3.0以上版本有效

执行rpm -q bash即可显示bash的版本

[root@localhost ~]# rpm -q bashbash-4.2.46-20.el7_2.x86_64

可见我系统中的bash版本没有问题

第二步:以root用户编辑/etc/bashrc文件,加入如下内容

HISTFILESIZE=2000

HISTSIZE=2000

HISTTIMEFORMAT="%Y%m%d-%H%M%S: "

或者

HISTTIMEFORMAT="%Y%m%d %T "

vim /etc/bashrcHISTFILESIZE=5000HISTSIZE=5000HISTTIMEFORMAT="%Y%m%d-%H%M%S: "

执行生效

命令:

export HISTTIMEFORMAT

[root@localhost ~]# export HISTTIMEFORMAT

注:以上方法,也可以使用以下一条语句执行:

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

[root@localhost ~]# echo "HISTFILESIZE=5000" >> /etc/bashrc && echo "HISTSIZE=5000" >> /etc/bashrc && echo 'HISTTIMEFORMAT="%Y%m%d %T "'>> /etc/bashrc && export HISTTIMEFORMAT

第三步:退出当前系统,重新登录

保存后退出,关闭当前shell,并重新登录,这个时候,在~/.bash_history文件中,就有记录命令执行的时间了

用cat命令显示这个文件,但是却会看到这个时间不是年月日显示的,而是按照unix time来显示:

[root@localhost ~]# cat ~/.bash_history#1553077784mkdir go#1553077786history#1553080708rpm -q bash#1553080989pwd#1553081004vim /etc/my.cnf#1553081027cat /etc/redhat-release #1553081042exit

这个时间叫做unix time,是从1970年1月1日临时起,到现在一共经过了多少秒

因为1969年是unix系统诞生,因此1970年1月1日被规定为unix系统诞生的时间的初始

linux系统因为和unix系统的相似性,也完全采用这种方式来记录时间

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

[root@localhost ~]# history |more 1 20190320 19:23:41 wget -O /etc/yum.repos.d/CentOS-Base.repo  2 20190320 19:23:58 yum makecache 3 20190320 19:25:42 systemctl stop firewalld.service  4 20190320 19:28:01 setenforce 0 5 20190320 19:30:56 yum install -y yum-utils 6 20190320 19:31:05 yum-config-manager --add-repo --

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

注意:

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

如果是已经运行了很久的服务器才添加这个参数,则以前的那些命令历史记录是不显示时间的。

附参数解释

HISTFILESIZE=5000

HISTSIZE=5000

HISTFILESIZE定义了在 .bash_history 中保存命令的记录总数,可以理解为.bash_history文件中最多只有HISTFILESIZE行

HISTSIZE 定义了 history 命令输出的记录数,即输出.bash_history文件中的最后HISTSIZE行

注:

linux历史命令默认条数是1000

history命令保留的默认值是1000

因为我们刚刚已经修改了这两个配置项的值为5000,此时再来看一下是否生效,注意,需要退出当前系统或bash,重新登录,才能生效。

[root@localhost ~]# echo $HISTFILESIZE5000[root@localhost ~]# echo $HISTSIZE5000

如果为了安全我们只需要保留200条,怎么办呢?我们可以临时修改最大保留条数:HISTSIZE=200 这样就修改成了200条啦,但是重启服务器后,又还原了。

如果想一直保留200条,我们需要在/etc/profile修改他的环境变量,操作如下:

[root@localhost ~]# vim /etc/profileHISTSIZE=5000source /etc/profile

除以上方法,也可以使用sed直接修改。命令如下:

[root@localhost ~]# sed -i 's/^HISTSIZE=1000/HISTSIZE=5000/' /etc/profile[root@localhost ~]# source /etc/profile

这样就算重启服务器后、history命令的历史保留条数仍然为5000条,直到下一次HISTSIZE变量的修改。

注意!!!

在部门阿里云服务器内,修改/etc/bashrc文件可能并不会生效,此时可采用修改/etc/profile文件的方法:

[root@localhost ~]# vim /etc/profile export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "export HISTSIZE=5000[root@localhost ~]#source /etc/profile

参数:

export HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S "export HISTSIZE=5000

标签: #centos显示时间命令 #centos查询时间设置 #linux 显示时间 #centos查询当前时间 #centos年月日