排除某些命令被存储在 bash 历史记录中

Rav*_*pta 45 bash command-history

有什么方法可以排除诸如rm -rf, 之类的命令svn revert被存储在 bash 历史记录中?其实我不小心发了很多次,虽然我无意做,只是因为我做事很快,事情就发生了。因此导致我到目前为止所做的大量工作丢失。

l0b*_*0b0 72

您可能想要$HISTIGNORE:“用于决定哪些命令行应该保存在历史列表中的以冒号分隔的模式列表。” 你 ~/.bashrc 中的这一行应该可以完成这项工作:

HISTIGNORE='rm *:svn revert*'
Run Code Online (Sandbox Code Playgroud)

此外,您可以在命令的开头添加一个空格以将其从历史记录中排除。只要$HISTCONTROL包含ignorespaceignoreboth,这是我使用过的任何发行版的默认设置。

  • 空间是我一直这样做的方式。 (5认同)
  • 更明确地说:您可以将 `export HISTCONTROL="ignorespace"` 添加到您的 `~/.bashrc` 以忽略以空格开头的命令。 (2认同)

k4r*_*tik 7

尽管与 OP 的问题略有不同,但当我故意不希望将命令存储在 bash 历史记录中时,我会在它们前面加上一个空格。适用于 Ubuntu 及其变体,不确定是否适用于所有系统。

  • 取决于`$HISTCONTROL`(见我的回答)。 (7认同)