bash 有“SHELL IN PRIVATE”模式吗?

bash 有“SHELL IN PRIVATE”模式吗?

当我使用浏览器时,如果我不希望我的浏览器历史记录记录在本地计算机上,我可以“私密浏览”。但是,如果我在 bash shell 中输入命令,也许还输入密码,并且我不希望将其存储在我的命令历史记录中,但同时我又不想擦除我的命令历史记录,该怎么办?有没有办法做到这一点?

答案1

更新:在问题被标记为重复之前,我的答案被标记为“已接受”。该参考文献指出了一个可能优于我下面列出的三个解决方案,具体取决于您的用例,因此我将在这里重复:通过键入 暂时关闭历史记录set +o history,并通过键入 恢复历史记录set -o history

原始答案: 在 中bash,有几种方法可以手动创建您想要的环境,所有方法都涉及内部bash变量HISTCONTROLHISTFILE和 的某种组合HISTIGNORE

在下面的段落中,引文均逐字引自man bash

1] 您可以在未设置的情况下启动 shell HISTFILE,在这种情况下,“shell 退出时不会保存命令历史记录”。

2]您可以手动设置HISTCONTROL包含字符串ignorespace,在这种情况下“以空格字符开头的行不会保存在历史列表中。

3] 您可以手动设置HISTIGNORE*或更具体的内容,在这种情况下,与您的全局模式匹配的行将不会被保存。对于此选项,请man仔细阅读该页面,因为有一些警告和陷阱。该页面的这一部分man简短而清晰,无论如何阅读它都是一个很好的习惯,所以我不会在此处剪切和粘贴它。

相关内容