有什么方法可以排除像rm -rf
,这样的命令svn revert
被存储在 bash 历史记录中吗?事实上,我已经错误地发布了很多次,尽管我无意这样做,只是因为我做事很快,结果就发生了。因此导致我丢失了迄今为止所做的大量工作。
答案1
您可能想要$HISTIGNORE
:“以冒号分隔的模式列表,用于决定哪些命令行应保存在历史列表中。” ~/.bashrc 中的这一行应该可以完成这项工作:
HISTIGNORE='rm *:svn revert*'
此外,您可以在命令开头添加空格以将其从历史记录中排除。只要$HISTCONTROL
包含ignorespace
or ignoreboth
,它就有效,这是我使用过的任何发行版的默认值。
答案2
虽然与OP的问题略有不同,但当我故意不希望命令存储在bash历史记录中时,我会在它们前面加上空格。适用于 Ubuntu 及其变体,不确定是否适用于所有系统。
答案3
当我做了我不想在历史中发生的事情时,我通常会杀死我的 bash 实例。
kill -9 $$
$$ 代表当前进程 - 当您从 shell 运行 bash 时。您可以使用 $BASHPID,但这需要更多的输入:-)