15

要在 Linux 环境中禁用历史记录,我执行了以下命令:

export HISTFILESIZE=0
export HISTSIZE=0
unset HISTFILE

这样的命令组合是否足够,或者我还必须执行history -c或其他什么?

即使我重新启动服务器或需要在重新启动后一次又一次地执行此类命令,这是否会保持历史记录被禁用?

4

3 回答 3

32

对于大多数用例来说,unset HISTFILE应该足够了。

这将禁用写入历史文件,但它仍然允许使用up/循环浏览最后的命令down
当您取消设置时,更改HISTFILESIZE不会产生任何影响HISTFILE,因为它只会影响 shell 退出时将多少行写入历史文件。如果使用 set 设置为 0 HISTFILE,则文件将在退出时被截断为 0。
更改HISTSIZE会更改当前 shell 将记住多少命令。

要使这种更改永久化,~/.bashrc或者~/.profile是插入命令的好地方。

于 2013-09-06T17:40:11.817 回答
24

只需将此命令添加到 bash 启动文件中,该文件可以是/etc/profile~/.bash_profile~/.bash_login~/.profile~/.bashrc取决于您的目标范围和自定义 bash 的发行版。请参阅INVOCATIONbash 手册 ( man bash) 部分。

shopt -u -o history

或者

set +o history

这将禁用历史记录。

尽管您必须清除一次历史记录:

history -c

并删除您的~/.bash_history文件。

于 2013-09-06T17:40:31.897 回答
1

如果您希望它在重新启动后仍然存在,您可以将它们添加到~/.bashrc/etc/profile

于 2013-09-06T17:22:24.100 回答