历史记录-c不会将$ HISTCMD重置为1

时间:2018-10-03 15:31:14

标签: bash

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的处理方式如下:

history -c doesn't clear history

0 个答案:

没有答案