zoukankan      html  css  js  c++  java
  • 如何让history显示时间

    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: "  或者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 ~]#

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

    注意:本方法必须在服务器刚刚新安装好时候,就设置这个参数。
    如果是已经运行了很久的服务器才添加这个参数,则以前的那些命令历史记录是不显示时间的。

  • 相关阅读:
    设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
    数组模拟栈(C语言)
    JDBC数据源连接池的配置和使用实例
    servlet 具体实现
    MySQL查询数据表中数据记录(包括多表查询)
    java开发中的23中设计模式
    eclipse使用和优化配置
    将博客搬至CSDN
    itext poi 学习之旅 (3)读取数据库信息并由excel展现出来
    itext poi 学习之旅 (2)创建excel
  • 原文地址:https://www.cnblogs.com/cash-su/p/9921160.html
Copyright © 2011-2022 走看看