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

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

有什么方法可以排除像rm -rf,这样的命令svn revert被存储在 bash 历史记录中吗?事实上,我已经错误地发布了很多次,尽管我无意这样做,只是因为我做事很快,结果就发生了。因此导致我丢失了迄今为止所做的大量工作。

答案1

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

HISTIGNORE='rm *:svn revert*'

此外,您可以在命令开头添加空格以将其从历史记录中排除。只要$HISTCONTROL包含ignorespaceor ignoreboth,它就有效,这是我使用过的任何发行版的默认值。

答案2

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

答案3

当我做了我不想在历史中发生的事情时,我通常会杀死我的 bash 实例。

kill -9 $$

$$ 代表当前进程 - 当您从 shell 运行 bash 时。您可以使用 $BASHPID,但这需要更多的输入:-)

相关内容