Bash History
Cualquier comando nuevo que se haya emitido en el terminal activo se puede agregar al .bash_history
archivo con el siguiente comando:
history -a
El único concepto difícil de entender es que cada terminal tiene su propia lista de historial de bash (cargada desde el .bash_history
archivo cuando abre el terminal)
Si desea extraer cualquier nuevo historial que hayan escrito otros terminales durante la vida útil de este terminal activo, puede agregar el contenido del .bash_history
archivo a la lista del historial de bash activo
history -c;history -r
Esto borrará la lista de historial actual para que no obtengamos una lista repetida y anexemos el archivo de historial a la lista (ahora vacía).
Solución
Puede usar la variable bash PROMPT_COMMAND
para emitir un comando con cada nueva solicitud (cada vez que presiona enter en el terminal)
export PROMPT_COMMAND='history -a'
Esto registrará cada comando en el archivo de historial a medida que se emite.
Resultado
Ahora, cualquier terminal nueva que abra tendrá el historial de otras terminales sin tener que tener exit
esas otras terminales. Este es mi flujo de trabajo preferido.
Más precisión
Digamos (por alguna razón) que tiene dos terminales que está usando simultáneamente y desea que el historial se refleje entre ambos para cada comando nuevo.
export PROMPT_COMMAND='history -a;history -c;history -r'
El principal inconveniente aquí es que es posible que deba presionar enter para volver a ejecutar PROMPT_COMMAND para obtener el historial más reciente del terminal opuesto.
Puede ver por qué esta opción más precisa es probablemente exagerada, pero funciona para ese caso de uso.