当前位置: 首页>>技术问答>>正文


如何完全清除bash历史?

, ,

问题描述

我想在我的服务器的历史命令之前清除所有命令。我使用history -c似乎所有的东西都被清除了,但是当我ssh到服务器时,所有的命令仍然存在。

我如何永久清除它们?

最佳解决方法

文件~/.bash_history保存历史记录。

要在服务器上完全清除bash历史记录,请打开终端并键入

cat /dev/null > ~/.bash_history

其他备用方法是将~/.bash_history链接到/dev/null

然而,

一个令人讨厌的side-effect是历史条目在内存中有一个副本,当你注销时它会回到文件。

要解决这个问题,请使用以下命令(为我工作):

cat /dev/null > ~/.bash_history && history -c && exit

次佳解决方法

该怎么办:

在每个打开的bash shell中(您可能会打开多个终端):

history -c
history -w

原因:如上所述,history -c清空文件~/.bash_history。请注意,bash shell不会立即将历史记录刷新到bash_history文件。因此,重要的是(1)将历史记录刷新到文件中,并(2)清除所有终端中的历史记录。这就是上面的命令。

参考:http://www.giannistsakiris.com/index.php/2007/09/13/how-to-clear-bash-history-and-what-to-watch-out-for/

第三种解决方法

执行以下命令永久清除历史记录

history -c && history -w

祝你好运!

第四种方法

还有另一个更简单的方法:在终端提示符下运行history -c,并且bash_history文件中的所有条目均已删除。

第五种方法

另一种方法是使用rm ~/.bash_history命令删除~/.bash_history文件。当您再次登录时,.bash_history文件将自动创建。

第六种方法

清除当前shell的历史记录:

history -c

注销时,当前shell的历史被附加到〜/.bash_history(它是前一个shell的历史记录缓存)的最大值(参见”man bash”中的HISTFILESIZE)。

如果你想完全删除历史记录,那么你基本上必须清空〜/.bash_history,其中许多上述条目已经提出。如:

history -c && history -w

这将清除当前shell的历史记录,然后强制当前shell的历史记录(空)覆盖〜/.bash_history ….或者更加准确,它会强制它覆盖HISTFILE(默认为〜/.bash_history)。

希望这可以帮助。

第七种方法

rm ~/.bash_history; history -c; logout

现在重新登录并见证你的arrow-up不会给你任何东西。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/186.html,未经允许,请勿转载。