linux查询所有命令历史
linux查询所有命令历史详细介绍
在 Linux 中查询所有命令历史记录,可以通过以下两种主要方式实现:
一、查看当前用户的历史命令(包括当前会话)
直接使用 history 命令,无需参数,会列出当前用户所有已记录的命令(包括当前会话中输入但尚未写入历史文件的命令),格式为 行号 命令:
bash
- 示例输出:plaintext
1 ls -l2 cd /var/log
3 cat syslog
...
- 附加功能:
history N:仅显示最近N条历史命令(如history 10)。!n:执行第n行的历史命令(如!3会执行第 3 行的命令)。
二、查看历史文件(持久化存储的历史记录)
Linux 会将命令历史持久化存储在用户目录下的历史文件中(不同 Shell 路径可能不同):
1.
Bash Shell(默认)
历史文件路径:~/.bash_history
使用文本查看命令(如 cat、less)读取:
bash
~/.bash_history~/.bash_history
2.
Zsh Shell
历史文件路径:~/.zsh_history
查看方式类似:
bash
~/.zsh_history
3.
全局历史(所有用户,需管理员权限)
部分系统可能存储全局历史(不常见,需确认配置),路径通常为:
bash
/var/log/history/var/log/history
注意事项
- 历史文件更新机制:
bash默认在退出会话时将当前会话命令写入.bash_history,若需立即保存,可执行history -w。zsh通常实时写入历史文件(取决于配置,可通过setopt incappendhistory启用增量写入)。
- 忽略的命令:
- 以空格开头的命令(如
ls)默认不会被记录(可通过修改~/.bashrc中的HISTCONTROL变量调整,如HISTCONTROL=ignorespace)。 - 执行
history -d N可删除第N行历史记录。
- 以空格开头的命令(如
- 历史记录长度:
历史记录的最大数量由HISTSIZE(当前会话内存中历史)和HISTFILESIZE(文件中保存的历史)控制,可在~/.bashrc或~/.zshrc中修改,默认通常为 1000 或 5000 条。
总结
- 临时查看当前会话历史:用
history。 - 查看持久化存储的所有历史:读取对应 Shell 的历史文件(如
~/.bash_history)。
根据需求选择合适的方法即可。