Como parece que muitas vezes o histórico não é salvo ao desligar e não fechar o terminal gnome, gostaria de anexar ao histórico do bash antes de mostrar o prompt se a linha não for duplicada. Embora eu tenha export HISTCONTROL=ignoreboth
no bashrc, o que supostamente implica ignorações, parece não funcionar, pois ainda recebo duplicatas no bash_history. Então, como fazer isso?
Para oferecer mais indicações, embora não soluções: acho que $PROMPT_COMMAND precisa ter"$(history 1)" (if_not_duplicate) >> ~/.bash_history
E isso removeria duplicatas não adjacentes, se já estivessem inseridas.
perl -nei '$H{$_}++ or print' ~/.bash_history
Responder1
Você precisa modificar PROMPT_COMMAND e HISTCONTROL para fazer isso corretamente. O seguinte deve funcionar para você:
# The secret sauce is "erasedups," which replaces the default of "ignoredups."
export HISTCONTROL=erasedups:ignorespace
# Write the history to HISTFILE before showing the prompt.
export PROMPT_COMMAND='history -w'
Duas advertências a serem consideradas com esta abordagem são:
- Você perderá o histórico (especificamente entradas duplicadas), o que pode ser importante se você confiar nos valores HISTTIMEFORMAT para qualquer coisa.
- Você truncará continuamente seu HISTFILE para HISTFILESIZE.
Estes não são necessariamente problemas, apenas questões menores das quais você deve estar ciente.