Uma maneira simples é colocar o código em seu arquivo de inicialização do shell para ler um arquivo de histórico adicional e certificar-se de que você armazena muitas linhas de histórico na memória para que as linhas fixas não sejam esquecidas.
bash
Em ~/.bashrc
:
history -r ~/.bash_history.sticky
Verifique também se HISTSIZE
é pelo menos HISTFILESIZE
mais o número de linhas em ~/.bash_history.sticky
mais o número de comandos executados em uma sessão longa, por exemplo
HISTFILESIZE=1000
HISTSIZE=10000
Se você quiser garantir que as entradas do histórico fixo permaneçam na memória sem ter um HISTSIZE
muito grande, você pode fazê-lo cortando manualmente o histórico em PROMPT_COMMAND
com history -d
, mas é difícil acertar se você tem erasedups
em HISTCONTROL
.
zsh
Em ~/.zshrc
:
fc -RI ~/.zsh_history.sticky
Verifique também se HISTSIZE
é pelo menos SAVEHIST
mais o número de linhas em ~/.zsh_history.sticky
mais o número de comandos executados em uma sessão longa, por exemplo
SAVEHIST=1000
HISTSIZE=10000
Se você quiser garantir que as entradas do histórico fixo permaneçam na memória sem ter um HISTSIZE
muito grande, você pode fazê-lo cortando manualmente o histórico em precmd
, mas é trabalhoso (o zsh não suporta realmente a reescrita histórico, você tem que fc -W
em um arquivo temporário e ler de volta uma versão editada) e difícil de acertar se você tiver a opção hist_ignore_dups
ou hist_ignore_all_dups
definida.