Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2346288
  • 博文数量: 535
  • 博客积分: 8689
  • 博客等级: 中将
  • 技术积分: 7066
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:00
文章分类

全部博文(535)

文章存档

2024年(4)

2023年(4)

2022年(16)

2014年(90)

2013年(76)

2012年(125)

2011年(184)

2010年(37)

分类: LINUX

2012-02-21 14:45:50




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

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

 问题

  Linux和Unix上都提供了History命令,可以查询以前执行的命令历史记录

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

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

  如何让History记录时间呢?

 

解决方案

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

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

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

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

HISTFILESIZE=2000      //定义了在 .bash_history 中保存命令的记录总数

HISTSIZE=2000         //定义了 history 命令输出的记录数

#HISTIMEFORMAT="%Y%m%d-%H%M%S: "    //定义了执行命令的时间格式

HISTTIMEFORMAT='%F %T '  //这个方法显示更清晰。

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

  这个时候,在~/.bash_History文件中,就有记录命令执行的时间了

  用cat命令显示这个文件,但是却会看到这个时间不是年月日显示的

  而是按照Unix time来显示:

  # cat ~/.bash_history

  #1184649982

  touch 3

  #1184649984

  exit

  #1184650148

  History

  这个时间叫做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

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

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

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

 

上面是如何保留历史记录,以下是history命令的记录如何删除?

1、修改/etc/profile将HISTSIZE=1000改成0或1,清除用户home路径下: .bash_history

2、立即清空里的history当前历史命令的记录:history -c

3、bash执行命令时不是马上把命令名称写入history文件的,而是存放在内部的buffer中,等bash退出时会一并写入。不过,可以调用'history -w'命令要求bash立即更新history文件。


HISTFILESIZE=2000

HISTSIZE=2000

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

HISTTIMEFORMAT='%F %T '


阅读(807) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~