假设我输入以下命令序列:
$ cd
$ ls
$ ls
当我按两次返回历史记录时up,我最终得到cd
, 而不是ls
。
我注意到情况并非总是如此,因此可能是某处的某些 bash 设置。是哪一个?
答案1
是由HISTCONTROL
变量控制的。如果包含ignoredups
,则重复的命令将不会保存在历史记录中。如果没有这个字符串,它们将被保存。这通常会在.profile
或中设置.bashrc
,使用类似
export HISTCONTROL=ignoredups
HISTCONTROL中可以使用的其他值(可以使用多个,用 分隔:
)
- 忽略空间任何以空格开头的命令都不会添加到历史记录中
- 已擦除重复的命令将从历史记录中删除,因此历史记录仅包含最新的命令
- 忽略两者相同
ignoredups:ignorespace
答案2
HISCONTROL=ignoredups
http://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#Bash-Variables