无法在OS X El Capitan中清除Bash终端历史记录

4
在升级到OS X El Capitan之后(至少我在更新后注意到),在bash中,history -c命令不像往常一样工作。
只有当前选项卡才有效。打开另一个选项卡后,可以访问历史记录。
我知道可以删除.bash_history文件,但实际上我很好奇这种新行为?
也许它与新的.bash_sessions功能有关。有没有办法像往常一样使用history -c(清除所有bash实例的历史记录)?
谢谢。

1
"Ask Different" 是一个针对苹果爱好者和高级用户的问答网站。 - Cyrus
...而且问题并不涉及编程,这是 StackOverflow 上唯一相关的主题。 - Charles Duffy
3个回答

16

HISTFILE不是~/.bash_history

在OS X中,Shell变量HISTFILE似乎并不指向~/.bash_history。相反,它指向某种临时文件,例如:

/Users/$LOGNAME/.bash_sessions/7F058D96-4161-4F7C-B9F7-CFFEB43C35B2.historynew

因此,history -c; history -w会清除当前历史记录缓冲区,但实际上并未清除磁盘上的历史记录文件。我不确定HISTFILE何时会写入~/.bash_history,因此您可能需要手动清除该文件。例如:

history -c; history -w; rm ~/.bash_history

3

我使用了:

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

我使用了这个话题,也许你可以在那里找到更多信息?


0
简而言之:您在终端中的bash历史记录位于~/.bash_history,如果您使用oh-my-zsh,则位于~/.zsh_history。只需打开文件并删除您想要的特定命令行即可。我使用vim,但您可以使用任何IDE或记事本打开它并保存更改。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接