删除Linux中的终端历史记录[关闭]


170

在Linux终端中使用向上键时,可以再次使用先前的命令。很棒的功能。但是,我开始使用命令中的敏感详细信息将mysql登录到mysql中。

如何删除该历史记录?


抱歉,我完全忘记提及我正在使用bash。
Frank Vilea 2011年

16
由于此问题已关闭,因此我无法将其添加为答案。您可以使用以下命令告诉bash不要为特定会话保存任何历史记录:export HISTFILE=/dev/null
Chris Eberle

1
我还可以添加以下内容:不要在命令行中输入敏感信息-等待提示符:D
hummingBird '16

Answers:


343

您可以像这样清除bash历史记录:

history -cw


4
确实像这样的答案-这将立即生效,而不是删除(.bash_history这需要重新启动Shell才能生效)。
mikemaccana 2014年

1
在我的Ubuntu 14.04计算机上不起作用。历史记录随新终端一起出现。所有的工作是>~/bash_history。为此,必须重新启动终端。
Aniket Thakur 2015年

也可以在Mac OS X El Capitan上使用(在10.11.2版上进行了测试),但是必须将以下行添加到~/.bash_profile:中export SHELL_SESSION_HISTORY=0,然后执行source ~/.bash_profile和退出并重新启动终端应用程序。如果你想了解这个导出命令做什么,那么你一定要检查这个下面的链接superuser.com/questions/950403/...
景向导

1
-c不够吗?手册说-c通过删除所有条目清除历史记录列表。-w将当前历史记录写入历史记录文件,并将其附加到历史记录列表。只是-c可以正常工作。
卡恩

24

如果使用bash,则终端历史记录将保存在名为.bash_history的文件中。删除它,历史将消失。

但是,对于MySQL来说,更好的方法是不要在命令行中输入密码。如果仅指定-p选项(不带值),则会提示您输入密码,并且不会记录该密码。

如果您不想每次都输入密码,另一种选择是将其存储在my.cnf文件中。创建一个名为〜/ .my.cnf的文件,如下所示:

[client]
user = <username>
password = <password>

确保更改文件权限,以便只有您可以读取文件。

当然,通过这种方式,您的密码仍然保存在主目录的纯文本文件中,就像以前保存在.bash_history中一样。


4
+1用于指定-p。这完全是解决此问题的正确方法
andyb 2011年

2
实际上,在我的Linux系统上,bash会记住历史记录并在注销时重新创建文件。您必须登录,删除文件,再次登录,注销第一个外壳程序,删除文件,然后注销第二个外壳程序。
cHao 2011年

感谢您指出了这一点。我以为我可以直接在命令中使用-p + password选项来提高自己的智能,因为我输入的密码非常长,因此只需按向上箭头即可更快。是时候重新考虑了..
弗兰克·维莱亚

5
不要忘记unset HISTFILE保存当前历史记录。
伊格纳西奥·巴斯克斯

我编辑了答案,并添加了一种防止每次输入密码的解决方案。
sagi 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.