在什么情况下用户不会让 shell 将他的命令记录到历史中?

acg*_*ant 18 shell bash command-history

如果我加export HISTCONTROL=ignorespace.bashrc,bash将不记录其面前有空格到历史上的任何命令。但我不明白在什么情况下它会有用。任何人都可以举一些例子吗?

Ulr*_*gel 32

如果您的命令包含密码或其他敏感信息

  • 我还要补充一点,当你是管理员时,你通常不想要历史记录,因为如果攻击者要进入系统,你会给他留下一个线索,知道盒子上的东西在哪里以及什么类型的命令通常在盒子上运行。 (5认同)
  • @acgtyrant 那么你从来没有输入过带密码的命令。这个想法是,如果您在命令行上提供密码,只需在命令前放置一个空格,它就不会被记录到“HISTFILE”中 (4认同)
  • mysql 命令可以接受您用于连接到数据库的用户的密码,这里有太多无法列出的。@Ulrich Dangel 提出的观点是正确的。如果您键入带有密码的命令,请不要将它们留在历史记录中。 (3认同)

dep*_*uid 26

另一种用法是用于您不想意外重复的命令,例如rm -rf *. 我广泛使用历史记录,偶尔会Enter在我从历史记录中检索到的命令不是我要找的命令时意外命中。当然,真正的解决方案是在执行命令之前始终仔细阅读命令。但是有点笨拙,作为额外的预防措施,我更喜欢将特别具有破坏性的命令排除在我的历史之外。

  • 我要补充一点,即使我忘记包含一个空格,我发现进一步忽略一些危险的命令非常方便:`HISTIGNORE=" *:rm -f*:rm -r*:*--force*"`。这可以防止 `rm -f` 和 `rm -r` 被保存到历史记录中,以及任何包含 `--force` 的内容。 (14认同)

Jan*_*bry 6

我的一位前同事使用 mostcdlscommands 执行此操作,只记录“有用”的命令。

  • 我几乎从不在工作中运行 nethack 而不这样做......(或顶部,或男人......) (3认同)