TL; DR:如果您的历史记录开始被截断(例如,您的HISTSIZE
是400,但是您键入了太多命令,那么您的历史记录是500),则用history -c
重置历史记录将从您的历史记录中清除HISTSIZE
或更少的行,并从历史记录号中减去很多行,但是不会将其重置为0(在示例中,它将重置为100)。如何将历史记录编号完全重置为0?
我知道这属于Unix和Linux。我将其发布在August 16上,但没人能回答,因此我将其发布在这里,希望其他人(查尔斯或chepner)可以提供帮助。
Bash 4.2(以及4.4)。我希望我的历史记录号码不超过4位数字。相关的bashrc部分:
HISTSIZE=99
HISTFILESIZE=100
#ignores back-to-back duplicate commands, not those that start with a space
HISTCONTROL=ignoredups
#ignore commands fewer than 5 characters long because we can type those
HISTIGNORE="?:??:???:????:?????:history"
在PS1中用history
或\!
看到的历史编号显然会超出这些值。我希望能够在超过1000时将历史记录号重置为〜100。
history -c
清除终端历史记录,但是只会将历史记录数量减少它清除的命令数量,例如:
j:~$ history | wc -l
99
j:~$ echo $HISTFILESIZE
100
j:~$ echo $HISTCMD
1203
j:~$ history -c
j:~$ echo $HISTCMD
1106
所以...我如何将历史记录号减小到较小的数字,例如$HIST(FILE)SIZE
。这是在tmux会话中,但是我认为这并不重要。
这些解决方案均无法正常工作。他们对set -x
的处理方式如下: