linux查看一小时内的历史命令
linux查看一小时内的历史命令详细介绍
要查看 Linux 系统中最近一小时内执行的历史命令,需先确保历史命令记录了时间戳,再通过时间过滤实现。以下是具体步骤:
步骤 1:启用历史命令时间戳记录
Linux 默认的~/.bash_history文件通常不记录命令执行时间,需通过设置HISTTIMEFORMAT环境变量启用时间戳。
临时启用(当前会话有效):
bash
永久启用(所有会话生效):
将上述命令添加到~/.bashrc或~/.bash_profile文件中,然后刷新配置:
bash
~/.bashrc~/.bashrc
步骤 2:查看最近一小时的历史命令
启用时间戳后,~/.bash_history文件中每条命令前会有时间戳行(如#1714557600,表示 Unix 时间戳)。通过以下命令筛选最近 1 小时的记录:
bash
+%s
" ~/.bash_history
命令说明:
hour_ago=$(date +%s --date='1 hour ago'):计算当前时间 1 小时前的 Unix 时间戳(秒数)。awk脚本逐行处理~/.bash_history:- 遇到以
#开头的行(时间戳行),提取时间戳值(如1714557600)。 - 若时间戳大于等于 1 小时前的时间(
ts >= ago),则打印时间戳行和下一行的具体命令。
- 遇到以
注意事项
- 实时性:
~/.bash_history默认在会话结束时写入,若需实时查看当前会话的命令,可先执行history -w将当前历史写入文件,再运行上述命令。 - Shell 类型:若使用
zsh等其他 Shell,时间戳配置和历史文件路径(如~/.zsh_history)可能不同,需调整命令。
通过以上步骤,即可快速筛选出最近 1 小时内执行过的历史命令。