Tengo muchos problemas para configurar el historial de terminales de Bash de la manera que quiero. Me gustaría no tener entradas duplicadas y si ingreso un comando quiero que se guarde y se eliminen los duplicados anteriores.
El problema es que el history
comando me muestra que está funcionando de la manera que quiero, pero una vez que cierre sesión, los duplicados vuelven a aparecer. Creo que solo está agregando la historia a la existente. Tengo estas líneas en mi .bashrc
archivo:
HISTCONTROL=ignoreboth:erasedups
shopt -u histappend
Incluso he intentado descomentar shopt
, pero todavía agrega el historial al cerrar sesión. ¿Cómo puedo hacer que el historial sea exactamente como es antes de cerrar sesión?
bash
command-history
craig
fuente
fuente
Respuestas:
El
erasedups
debe hacer lo que quiere en lo que respecta a los duplicados - Ten en cuenta que los duplicados de borrado se activa en el momento de añadir una nueva entrada a la historia y que borra todos los viejos ocurrencias de un comando, dejando sólo la más reciente.Respondiendo a la pregunta " ¿Cómo puedo hacer que el historial sea exactamente como es antes de cerrar sesión? "
A mi modo de ver, esto puede ser útil solo de vez en cuando. (De lo contrario, ¿por qué usaría el historial?) Puede hacerlo emitiendo
Esto borra todas las entradas del historial que se mantienen actualmente en la memoria y luego vuelve a leer todo el historial del archivo de historial. Por lo tanto, se olvidan todos los comandos que emitió desde que inició sesión en la sesión de shell actual. Me resulta bastante útil en situaciones en las que hago muchas pruebas (muchos comandos similares, pero no realmente duplicados) y luego no quiero que mi historial se vea afectado por eso, así que tengo un alias para ello en mi
.bashrc
:(
hrr
para ser recordado como "relectura de la historia").fuente