如何按日期查看Linux服务器命令历史记录?

[复制链接] |主动推送
查看25 | 回复0 | 2024-9-11 15:04:38 | 显示全部楼层 |阅读模式
Linux服务器中的历史记录命令用于在终端上查看以前执行的命令,它将显示一个命令列表,每个命令旁边都有一个"id"。它将显示一个命令列表,每个命令旁边有一个"id"。
查看历史上最后执行的Linux服务器命令
历史上运行过的命令被Linux shell存储在一个专用文件中。
$ history
111517hf46ggyqg1gvqc6y.png
为每个命令设置历史日期和时间
历史记录命令还可以存储执行命令的日期和时间,不过,默认情况下,并不显示过去命令的执行时间。
要想让历史记录也显示日期,我们需要将shell中的全局变量HISTTIMEFORMAT设置为合适的格式,可以使用export命令完成,如下所示。
$ export HISTTIMEFORMAT='%F %T'
$ history
111517veoybobphlhzoedb.png
按日期查看Linux命令历史
现在,你可以用管道将上面的历史命令输出到'grep'中,以获得在特定日期执行的命令的历史记录。
$ history | grep '2021-01-25'
111517se5c8ceyc8ezic8u.png
同样,你也可以过滤多个关键日期的输出。
$ history | grep -E '2021-01-25|2021-01-23'
111518t9zjyllp2l9dl2dn.png
使用这种方式,你可以将日期指定为过去'N'天的模式,或者其他日期的组合,从而获得所有这些日期的命令历史。
例如,要获取从最后三分之一到最后第五个日期的命令历史,你可以使用。
$ history | grep -E '2021-01-23|2021-01-22|2021-01-21'
现在,当我们从命令行导出变量'HISTTIMEFORMAT'到shell profile时,它只被导出到该会话,也就是说,直到终端运行的时候,之后该变量就会从shell profile中删除。
永久设置每个命令的历史日期和时间
要将变量永久地添加到shell配置文件中,请在shell配置文件文件中添加export语句(在shell开始时运行的每条命令)。
例如,在'Bash'的情况下,运行下面的语句来永久导出这个变量。
$ export HISTTIMEFORMAT='%F %t' >> ~/.bash_profile
如果文件.bash_profile存在,操作符'>>'将把导出语句附加到文件中,否则,它将创建文件并写入语句。
在本文中,我们学习了如何在Linux服务器中查看最近几天的命令历史记录。关于历史记录命令的更多信息,请务必通过运行它的命令行手册页面($ man history)来查看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则