【问题标题】:Disable history in Linux [closed]在 Linux 中禁用历史记录 [关闭]
【发布时间】:2013-09-10 20:48:26
【问题描述】:
为了在 Linux 环境中禁用历史记录,我执行了以下命令:
export HISTFILESIZE=0
export HISTSIZE=0
unset HISTFILE
这样的命令组合是否足够,或者我还必须执行history -c或其他什么?
即使我重新启动服务器或需要在一次又一次重新启动后执行此类命令,这是否会禁用历史记录?
【问题讨论】:
标签:
linux
bash
shell
history
【解决方案1】:
对于大多数用例,unset HISTFILE 应该足够了。
这将禁用写入历史文件,但仍允许使用 up/down 循环浏览最后的命令。
当您取消设置HISTFILE 时,更改HISTFILESIZE 不会产生任何影响,因为它只会影响shell 退出时将多少行写入历史文件。如果设置为 0 并设置了 HISTFILE,则文件将在退出时被截断为 0。
更改 HISTSIZE 会更改当前 shell 将记住的命令数量。
要使此更改永久生效,~/.bashrc 或 ~/.profile 是插入命令的好地方。
【解决方案2】:
只需将此命令添加到 bash 启动文件中,该文件可以是 /etc/profile、~/.bash_profile、~/.bash_login、~/.profile 或 ~/.bashrc,具体取决于您的目标范围和自定义 bash 的发行版。请参阅 bash 手册 (man bash) 的 INVOCATION 部分。
shopt -u -o history
或者
set +o history
这将禁用历史记录。
虽然您必须清除一次历史记录:
history -c
同时删除您的~/.bash_history 文件。
【解决方案3】:
如果您希望它在重新启动后仍然存在,您可以将它们添加到 ~/.bashrc 或 /etc/profile。