【Linux】history命令显示时间记录
2019-09-02 09:44:02来源:博客园 阅读 ()
【Linux】history命令显示时间记录
inux和unix上都提供了history命令,可以查询以前执行的命令历史记录
但是,这个记录并不包含时间项目
因此只能看到命令,但是不知道什么时间执行的
以下便是history记录时间的方法:
第一步:查看系统是否支持
注:本方法只对bash-3.0以上版本有效
执行rpm -q bash即可显示bash的版本
[root@localhost ~]# rpm -q bash
bash-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/bashrc
HISTFILESIZE=5000
HISTSIZE=5000
HISTTIMEFORMAT="%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
#1553077784
mkdir go
#1553077786
history
#1553080708
rpm -q bash
#1553080989
pwd
#1553081004
vim /etc/my.cnf
#1553081027
cat /etc/redhat-release
#1553081042
exit
这个时间叫做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 http://mirrors.aliyun.com/repo/Centos-7.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 https://download.docker.com/linux/centos/docker-ce.repo
--More--
这样即可查看到在什么时间执行了什么命令。
注意:
本方法必须在服务器刚刚新安装好时候,就设置这个参数。
如果是已经运行了很久的服务器才添加这个参数,则以前的那些命令历史记录是不显示时间的。
附参数解释
HISTFILESIZE=5000
HISTSIZE=5000
==HISTFILESIZE==定义了在 .bash_history 中保存命令的记录总数,可以理解为.bash_history文件中最多只有HISTFILESIZE行
==HISTSIZE== 定义了 history 命令输出的记录数,即输出.bash_history文件中的最后HISTSIZE行
注:
linux历史命令默认条数是1000
history命令保留的默认值是1000
因为我们刚刚已经修改了这两个配置项的值为5000,此时再来看一下是否生效,注意,需要退出当前系统或bash,重新登录,才能生效。
[root@localhost ~]# echo $HISTFILESIZE
5000
[root@localhost ~]# echo $HISTSIZE
5000
如果为了安全我们只需要保留200条,怎么办呢?我们可以临时修改最大保留条数:HISTSIZE=200 这样就修改成了200条啦,但是重启服务器后,又还原了。
如果想一直保留200条,我们需要在/etc/profile修改他的环境变量,操作如下:
[root@localhost ~]# vim /etc/profile
HISTSIZE=5000
source /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
原文链接:https://www.cnblogs.com/BabySermonizer/p/11441262.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:LVS介绍及相关配置
- Linux系统如何设置开机自动运行脚本? 2020-06-11
- Linux指令和shell脚本 2020-06-11
- 适合开发者的最佳Linux发行版 2020-06-11
- awk命令详解 2020-06-10
- RAID 1 软件实现(Linux 系统) 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash