如何查询linux最后运行的命令
如何查询linux最后运行的命令详细介绍
在 Linux 系统中,可以通过以下方法查询最后运行的命令:
一、查看当前用户的命令历史记录
Linux 会将用户输入的命令保存在 历史记录文件 中(不同 Shell 略有差异),并支持通过 history 命令查看:
1.
使用 history 命令(最常用)
- 列出所有历史命令(包含序号,最近的命令在末尾):bash
history - 直接获取最后一条命令(序号最大的条目):bash
history | tail -1 | awk '{print $2}'- 解释:
history列出所有历史,tail -1取最后一行,awk提取命令内容(忽略序号)。
- 解释:
2.
查看历史记录文件(持久化存储)
- Bash/Zsh 等 Shell 的历史文件:
- 普通用户:
~/.bash_history(Bash)或~/.zsh_history(Zsh) - 管理员(root):
/root/.bash_history
- 普通用户:
- 直接读取最后一条命令:bash
tail -1 ~/.bash_history- 注意:当前会话中未退出时,命令可能暂存于内存(未写入文件),此时需结合
history命令查看。
- 注意:当前会话中未退出时,命令可能暂存于内存(未写入文件),此时需结合
二、查看当前会话的临时历史(未写入文件)
如果命令刚执行完但未退出当前 Shell(如终端未关闭),部分命令可能还在内存中,未写入历史文件:
- 通过
history命令查看内存中的所有历史(包含当前会话未保存的命令):bashhistory | tail -n 1 # 取最后一条 - 或使用快捷键:
- 按
↑键循环查看最近命令,最后一条即最新执行的。 Ctrl + R反向搜索历史命令。
- 按
三、其他注意事项
- 不同 Shell 的差异:
bash/sh:历史文件为~/.bash_history,默认记录约 500 条(可通过HISTSIZE环境变量调整)。zsh:历史文件为~/.zsh_history,格式略有不同(每行包含时间戳)。fish:历史文件为~/.local/share/fish/fish_history,支持更复杂的查询。
- 历史记录的时间戳:
- 若希望历史记录显示执行时间,可临时设置:bash
export HISTTIMEFORMAT='%F %T ' # 格式:年-月-日 时:分:秒history # 重新执行后生效
- 若希望历史记录显示执行时间,可临时设置:bash
- 清除历史记录(谨慎操作):
- 清除当前内存中的历史(不影响文件):bash
history -c - 清除历史文件内容:bash
> ~/.bash_history # 清空文件(需谨慎)
- 清除当前内存中的历史(不影响文件):bash
总结
- 快速获取最后一条命令:bash
history | tail -1 | awk '{print $2}' # 通用方法tail -1 ~/.bash_history # 针对已持久化的历史
- 根据实际使用的 Shell(如 Bash/Zsh)调整历史文件路径,当前会话未保存的命令需通过
history命令查看。