在 Linux 中,history 命令用于查看和管理命令历史记录。若要彻底删除历史命令记录,有以下几种常用方式(根据需求选择):
✅ 方法一:清空当前会话的内存中的历史记录(临时)
history -c
⚠️ 注意:仅清空当前 shell 会话内存中的历史记录,不会删除 ~/.bash_history 文件中的记录。退出当前终端后,后续会话仍可能恢复部分记录。
✅ 方法二:清空并立即写入磁盘(推荐用于安全清理)
history -c && history -w
- •
history -c:清空当前会话内存中的历史; - •
history -w:将清空后的空历史写入 ~/.bash_history 文件(覆盖原文件)。
✅ 方法三:手动删除历史文件(彻底删除)
rm ~/.bash_history
或清空内容但保留文件
> ~/.bash_history
📝 说明:.bash_history 是 bash 默认保存历史命令的文件(路径可能因 shell 不同而异,如 zsh 为 ~/.zsh_history)。
✅ 方法四:禁用某次命令记录(单条跳过)
在命令前加一个空格(前提是 HISTCONTROL 包含 ignorespace):
查看当前设置
echo$HISTCONTROL
若输出为 "ignorespace:erasedups",则有效
然后输入命令时前面加空格即可不记录:
ls -l 注意开头有空格,不会被记录
✅ 方法五:彻底禁止记录(长期禁用)
编辑 ~/.bashrc 或 ~/.bash_profile,添加:
unset HISTFILE
或设置:
HISTSIZE=0
HISTFILESIZE=0
然后重载配置:
source ~/.bashrc
🔐 安全提示:
- •
rm ~/.bash_history 后,已登录过的其他终端或 session 可能仍缓存部分记录,建议在所有终端执行 history -c && history -w。 - • 若系统使用
auditd 或日志中心,命令历史可能被其他机制记录,需额外处理。