Bash 历史记录重复数据删除导致危险的多 shell 行为

Bash 历史记录重复数据删除导致危险的多 shell 行为

我在 .bash_profile 中使用以下代码来过滤和删除重复的 bash 历史记录:

shopt -s histappend
HISTSIZE=100000
HISTFILESIZE=100000
HISTCONTROL=ignoredups:erasedups
PROMPT_COMMAND="history -a;history -c;history -r;$PROMPT_COMMAND"

它运行良好,但是产生了以下副作用:

假设我打开了两个终端/选项卡:

  • 第一个选项卡:文件夹:~,最后运行的命令:(wget big_file...或任何较长的内容)
  • 第二个选项卡:文件夹:一些随机临时文件夹,最后运行命令:rm -rf *

现在,如果我从第二个选项卡转到第一个选项卡,然后按向上键,它会重新运行最后一个命令,就像一切正常一样。

现在危险来了:如果我再次按下“UP”,它就会插入rm -rf *,如果我没有注意到,我刚刚删除了所有数据。

您能否推荐一个用于历史记录的 .bash_profile 设置,它可以执行重复数据删除/过滤但不允许此类事情发生?

答案1

您可以用来HISTIGNORE忽略那些您认为危险的。

HISTIGNORE='rm -rf *:dangercmd -c 2:echo and so on' 

相关内容