![History -c 不会将 $HISTCMD 重置为 1](https://linux22.com/image/138738/History%20-c%20%E4%B8%8D%E4%BC%9A%E5%B0%86%20%24HISTCMD%20%E9%87%8D%E7%BD%AE%E4%B8%BA%201.png)
TL;DR:如果您的历史记录开始截断(例如,您的HISTSIZE
历史记录为 400,但您的历史记录编号为 500),则重置您的历史记录history -c
将清除HISTSIZE
或减少历史记录中的行数,并从您的历史记录编号中减去那么多行,但不会重置它为 0(在本例中,它将重置为 100)。如何才能将历史号码彻底重置回0呢?
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"
history
在\!
PS1 中看到的历史数字显然会超出这些值。我希望能够在历史记录数量超过 1,000 时将其重置为 ~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 会话中,但我认为这并不重要。
另外:是否有一种方法可以将当前历史记录数字作为变量获取,并且需要比我当前使用的管道更少的管道?编辑:正如杰夫提到的,$HISTCMD
存储这个值。
提供的解决方案均无效。他们的做法如下set -x
: