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.