linux查看历史命令日期

fiy 其他 939

回复

共3条回复 我来回复
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux中,可以使用`history`命令来查看已经执行过的历史命令。但是,默认情况下,`history`命令只会显示命令的编号和命令内容,并不会显示执行的日期。不过,可以通过一些技巧来查看历史命令的日期。

    一、使用`history`命令查看历史命令列表

    首先,我们可以使用`history`命令来查看已经执行过的历史命令列表。只需在终端中输入`history`,然后按下回车键即可显示最近执行的命令列表。

    “`
    $ history
    1 ls
    2 cd Documents
    3 mkdir Test
    4 cd Test

    “`

    二、使用`history`命令结合`date`命令来查看历史命令日期

    虽然`history`命令默认不会显示历史命令的日期,但我们可以通过一些技巧来实现这个功能。我们可以将`history`命令的输出结果通过管道(`|`)传递给`nl`命令,然后再结合`date`命令来为每条命令添加日期信息。

    执行以下命令可以查看带有日期信息的历史命令列表:

    “`
    $ history | nl -nln -w2 -s’ ‘ | while read line; do echo -e “$(date -d @$(echo $line | awk ‘{print $2}’) +%F)\t$(echo $line | awk ‘{$1=””; print $0}’)”; done
    “`

    以上命令中,`nl`命令用来给每条命令添加行号,`-nln`选项指定行号的位置在行首,`-w2`选项指定行号的宽度为2个字符,`-s’ ‘`选项指定行号的分隔符为两个空格。

    `date -d @$(echo $line | awk ‘{print $2}’) +%F`这部分命令用来将命令执行的时间戳转换成日期格式,`+%F`选项指定日期格式为YYYY-MM-DD。

    `echo $line | awk ‘{$1=””; print $0}’`这部分命令用来去掉行号,只保留命令内容。

    综合起来,以上命令的含义是将`history`命令的输出结果传递给`nl`命令,为每条命令添加行号,并在行号后面添加日期信息,最后再将结果打印出来。

    执行以上命令后,就可以看到带有日期信息的历史命令列表:

    “`
    2022-07-27 ls
    2022-07-27 cd Documents
    2022-07-27 mkdir Test
    2022-07-27 cd Test

    “`

    通过以上方法,我们可以方便地查看历史命令的执行日期。希望对你有帮助!

    2年前 0条评论
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要在Linux中查看历史命令的日期,可以使用以下方法:

    1. 使用history命令:在终端中输入history命令,将显示之前执行的命令列表及其相应的编号。历史命令是按照执行的顺序排列的,最新的命令在最上面。通过查看命令的编号,可以确定命令执行的时间顺序。

    2. 使用HISTTIMEFORMAT环境变量:HISTTIMEFORMAT环境变量可以设置历史命令的时间格式。在终端中输入以下命令来设置HISTTIMEFORMAT环境变量:

    “`shell
    export HISTTIMEFORMAT=”%F %T”
    “`

    设置时间格式为年-月-日 时:分:秒。然后,执行一些命令。再次使用history命令,将显示每个命令的执行时间。

    3. 检查.bash_history文件:历史命令通常保存在用户的主目录下的.bash_history文件中。打开终端,进入用户的主目录,使用cat命令查看.bash_history文件的内容。文件中的每一行都包含一个命令和其执行的时间。

    “`shell
    cd ~
    cat .bash_history
    “`

    您可以使用grep命令来搜索特定日期的命令:

    “`shell
    grep “2022-01-01” .bash_history
    “`

    4. 使用syslog日志文件:Linux系统中的syslog服务负责记录系统日志信息,包括命令的执行记录。可以通过查看syslog日志文件来获取命令执行的时间。syslog日志文件通常位于/var/log目录下。使用以下命令查看syslog文件:

    “`shell
    cat /var/log/syslog
    “`

    您可以使用grep命令来搜索特定日期的命令:

    “`shell
    grep “Jan 1” /var/log/syslog
    “`

    5. 使用audit日志文件:Linux系统的auditd服务可以记录系统的安全审计信息,包括命令的执行。audit日志文件通常位于/var/log/audit目录下。使用以下命令查看audit日志文件:

    “`shell
    cat /var/log/audit/audit.log
    “`

    您可以使用grep命令来搜索特定日期的命令:

    “`shell
    grep “2022-01-01” /var/log/audit/audit.log
    “`

    注意:上述方法中,使用history命令和查看.bash_history文件只能查看当前用户的历史命令。而使用syslog日志文件和audit日志文件可以查看系统中所有用户的命令执行记录。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux终端中,可以通过命令`history`查看历史执行过的命令。但是这个命令并不能直接显示历史命令的日期。不过我们可以通过一些方法来查看历史命令执行的日期。

    下面介绍两种常用的方法来查看历史命令的日期。

    方法一:利用`history`命令结合`grep`和`awk`命令
    1. 在终端中输入`history`命令查看历史命令列表。
    2. 通过`grep`命令对历史命令列表进行过滤,只保留以`#`开头的行。这些行记录了执行命令的时间信息。
    “`
    history | grep “^#[[:digit:]]\{10\}”
    “`
    3. 利用`awk`命令提取出时间信息,并使用`date`命令将时间转换为可读的格式。
    “`
    history | grep “^#[[:digit:]]\{10\}” | awk ‘{$1=””; print substr($0,2)}’ | xargs -0 -I {} date -d @{} “+%Y-%m-%d %H:%M:%S”
    “`

    方法二:通过`~/.bash_history`文件查看历史命令日期
    1. 使用`cat`命令查看`~/.bash_history`文件内容。
    “`
    cat ~/.bash_history
    “`
    2. 查看文件中每条命令的时间戳信息。时间戳通常位于每条命令的前面,以`#`开头。
    “`
    cat ~/.bash_history | grep “^#[[:digit:]]\{10\}”
    “`
    3. 使用`awk`命令提取出时间戳信息,并使用`date`命令将时间戳转换为可读的格式。
    “`
    cat ~/.bash_history | grep “^#[[:digit:]]\{10\}” | awk ‘{$1=””; print substr($0,2)}’ | xargs -0 -I {} date -d @{} “+%Y-%m-%d %H:%M:%S”
    “`

    通过以上两种方法,可以查看历史命令的执行日期。使用第一种方法时,直接在终端中执行命令即可;而使用第二种方法时,需要先查看`~/.bash_history`文件的内容,再执行相应的命令。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部