科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道如何让linux的history命令显示时间记录

如何让linux的history命令显示时间记录

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

linux和unix上都提供了history命令,可以查询以前执行的命令历史记录 为了按照人类的年月日方式来显示时间,执行history命令来查看,就可以了,例如:如果是已经运行了很久的服务器才添加这个参数,则以前的那些命令历史记录是不显示时间的。

2008年3月17日

关键字: unix 服务器 History Linux 操作系统

  • 评论
  • 分享微博
  • 分享邮件

  问题

  linux和unix上都提供了history命令,可以查询以前执行的命令历史记录

  但是,这个记录并不包含时间项目

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

  如何让history记录时间呢?

  解决方案

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

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

  对于常见的linux AS4、AS5,都是有效的

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

  HISTFILESIZE=2000

  HISTSIZE=2000

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

  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 ~]#

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

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

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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章