TL; DR: se seu histórico começar a ser truncado (por exemplo, seu HISTSIZE
for 400, mas seu número de histórico for 500), redefinir seu histórico com history -c
limpará HISTSIZE
ou menos linhas do seu histórico e subtraia muitos do seu número de histórico, mas não o redefinirá para 0 (no exemplo, ele redefiniria para 100). Como posso redefinir completamente o número do histórico de volta para 0?
Bash 4.2 (e também em 4.4). Quero que meus números de histórico tenham menos de 4 dígitos. secções bashrc relevantes:
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"
o número do histórico visto com history
ou \!
no PS1 obviamente irá além desses valores. Eu quero poder redefinir o número do histórico para ~ 100 quando ele ultrapassar 1.000.
history -c
limpa o histórico do terminal, mas isso reduz o número do histórico apenas pela quantidade de comandos que ele apagou, por exemplo:
j:~$ history | wc -l
99
j:~$ echo $HISTFILESIZE
100
j:~$ echo $HISTCMD
1203
j:~$ history -c
j:~$ echo $HISTCMD
1106
Então ... como faço para diminuir o número do histórico para um número menor, como $HIST(FILE)SIZE
. Isso está em uma sessão do tmux, mas não acho que isso deva importar.
Além de: existe um método para obter o número do histórico atual como uma variável que requer menos pipes do que aquele que estou usando atualmente? EDIT: como Jeff mencionou, $HISTCMD
armazena esse valor.
Nenhuma das soluções fornecidas funciona. Veja o que eles fazem com set -x
:
Tags bash command-history