HISTCONTROL=ignoreboth 不起作用 debian lenny

HISTCONTROL=ignoreboth 不起作用 debian lenny

有人能确认在 debian lenny 下设置以下环境变量是否会导致以前的历史记录条目不被保存吗?GNU bash,版本 3.2.39(1)-release

export HISTCONTROL=ignoreboth
export HISTSIZE=500

我已将它们添加到我的/etc/bash.bashrc但我不断收到重复的命令。

答案1

选项“ignoreboth”和“ignoredups”仅阻止将紧接在前的命令的重复项添加到历史记录中。更早的重复项不起作用。

$ echo $HISTCONTROL
ignoreboth
$ echo a
a
$ echo b
b
$ echo b
b
$ echo a
a
$ history 4
1047  echo a
1048  echo b
1049  echo a
1050  history 4

正如您所见,echo a出现了两次,并且echo b出现了一次。

您可能正在寻找“erasedups”选项。

$ echo $HISTCONTROL
ignoreboth:erasedups
$ echo c
c
$ echo d
d
$ echo d
d
$ echo c
c
$ history 4
1076  echo $HISTCONTROL
1077  echo c
1078  echo d
1079  history 4

这里echo cecho d都只出现了一次。

答案2

尝试使用 ignoreups 而不是 ignoreboth,将其添加到 /etc/profile 文件中。

答案3

唯一地记录每个新命令是比较困难的。首先你需要添加 ~/.profile或类似内容:

HISTCONTROL=erasedups
PROMPT_COMMAND='history -w'

然后您需要添加~/.bash_logout

history -a
history -w

相关内容