Debido a que parece que a menudo el historial no se guarda al apagar y no cerrar el terminal gnome, me gustaría agregarlo al historial de bash antes de mostrar el mensaje si la línea no es un duplicado. Aunque lo tengo export HISTCONTROL=ignoreboth
en bashrc, lo que se supone que implica ignoraciones, no parece funcionar, ya que todavía obtengo duplicados en bash_history. Entonces, ¿cómo hacer esto?
Para ofrecer más indicaciones, aunque no soluciones: creo que $PROMPT_COMMAND debe tener"$(history 1)" (if_not_duplicate) >> ~/.bash_history
Y esto eliminaría los duplicados no adyacentes, si ya están insertados.
perl -nei '$H{$_}++ or print' ~/.bash_history
Respuesta1
Debe modificar tanto PROMPT_COMMAND como HISTCONTROL para hacerlo correctamente. Lo siguiente debería funcionar para usted:
# 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'
Dos advertencias a considerar con este enfoque son:
- Perderá el historial (específicamente las entradas duplicadas), lo que puede ser importante si confía en los valores de HISTTIMEFORMAT para cualquier cosa.
- Truncarás continuamente tu HISTFILE a HISTFILESIZE.
Estos no son necesariamente problemas, sólo cuestiones menores que debes tener en cuenta.