【问题标题】:Can you prevent a command from going into the bash shell command history? [closed]你能阻止命令进入 bash shell 命令历史记录吗? [关闭]
【发布时间】:2009-03-12 20:43:43
【问题描述】:

有没有办法防止命令被添加到 bash shell 的命令历史记录中?

我希望能够防止某些“危险”命令被添加到历史记录中,例如“rm -rf ~/some/dir”,这样我就无法通过按向上箭头来访问之前的命令。这样,就不会意外重复这些命令之一。

我问的原因是我经常使用向上箭头来访问 shell 历史中以前的命令,并且经常发现自己要按我 认为 是正确命令的输入,只是意识到我即将做一些愚蠢/烦人/危险的事情。我不喜欢 rms 等在我的 shell 历史中飘来飘去的想法,等着我去踩它们!

(注意:我知道可以在 HISTIGNORE 中设置模式,但最好是可以在每个命令的基础上应用一些东西,这将成为一种好习惯。除非有一种聪明的方法来实现这使用了我错过的 HISTIGNORE?)

【问题讨论】:

  • 根据已删除的答案,值得使用 control-R 进行反向历史输入搜索,而不是向上箭头。这有助于减少发生此类错误的机会,尽管仍然值得将事情从历史中抹去。

标签: linux bash unix shell


【解决方案1】:

在较新的 Bash 版本中,您只需在命令开头添加一个空格即可。 :) 如果默认情况下不起作用,请将 [ \t]* 添加到 HISTIGNORE。 (如 cmets 中所述。thx)

【讨论】:

  • 如果默认不行,添加 [ \t]* 到 HISTIGNORE。
【解决方案2】:

ignorespace 添加到您的 HISTCONTROL 环境变量中。那么任何以空格开头的命令行都不会被输入到你的历史记录中。

【讨论】:

  • 多个 HISTCONTROL 选项可以通过用冒号分隔来设置,例如:export HISTCONTROL=ignoredups:ignorespace
猜你喜欢
  • 2017-12-10
  • 2018-01-30
  • 2012-01-25
  • 2013-12-25
  • 2013-05-12
  • 1970-01-01
  • 2011-09-22
  • 2011-10-01
  • 2013-08-17
相关资源
最近更新 更多