Security

避免將命令保留在歷史記錄中

  • March 23, 2020

我使用 bash,我想避免某些命令保留在歷史記錄中。

  • 是否可以僅對下一個命令執行此操作?
  • 是否可以在整個會話中這樣做?

我只記得另一個答案,這是您問題的實際答案。

如果您在 HISTCONTROL 中有“ignorespace”,那麼 bash 將不會記住任何以空格字元開頭的行。它甚至不會出現在目前 shell 的歷史記錄中,更不用說保存到 $HISTFILE 中了。

例如,我的 ~/.bashrc 中有export HISTCONTROL=‘ignoreboth:erasedups’

這是來自 bash 手冊頁的詳細資訊:

歷史控制
以冒號分隔的值列表,用於控制命令的執行方式
保存在歷史列表中。如果值列表包括
忽略空格,以空格字元開頭的行不是
保存在歷史列表中。ignoreups 的值導致行
匹配上一個歷史條目不被保存。一個值
ignoreboth 是 ignorespace 和 ignoreups 的簡寫。一個值
的擦除導致所有先前的行與目前行匹配
在保存該行之前從歷史列表中刪除。
任何不在上述列表中的值都將被忽略。如果 HISTCONTROL 是
未設置或不包含有效值,由
shell 解析器保存在歷史列表中,取決於值
的歷史。多行的第二行和後續行
複合命令未經測試,並添加到歷史記錄
無論 HISTCONTROL 的值如何。

引用自:https://serverfault.com/questions/48769