GNU/Linux >> Tutoriales Linux >  >> Linux

¿Historia destrozada?

En modo gui, cuando un usuario tiene más de un terminal abierto, ¿cómo reescriben los terminales el archivo de historial de ese usuario? la razón por la que pregunto es porque, es muy posible que en cada uno de los terminales el usuario acabe ejecutando diferentes comandos. Entonces, ¿el historial termina guardando los comandos de todos los terminales o solo del primero que se abre? ¿O hay algún otro tipo de esquema que se emplee para abordar esta situación?

Respuesta aceptada:

Depende completamente de cómo el shell decida manejarlo

bash de forma predeterminada, sobrescribirá el archivo de historial con el historial local de cada shell a medida que sale, por lo que gana el último shell en salir. El histappend hará que se agregue al historial maestro en su lugar (shopt -s histappend ).

zsh hace lo mismo de forma predeterminada y tiene algunas opciones para solucionarlo:

  • appendhistory — El historial de cada shell se adjunta al archivo de historial principal cuando el shell sale
  • incappendhistory — El archivo de historial maestro se actualiza cada vez que se ejecuta una línea en cualquier shell, en lugar de esperar hasta que ese shell salga
  • sharehistory — Me gusta incappendhistory , pero también extrae los cambios del archivo de historial maestro en todos los shells en ejecución, por lo que puede ejecutar un comando en un shell y luego presionar Arriba en otro caparazón y verlo

Linux
  1. ¿Cómo ejecutar un comando en Shell sin guardarlo en el historial? [Consejos para Linux]

  2. ¿Archivar historial sin salir de Shell?

  3. Comando de historial de Linux

  4. Volver al directorio anterior en shell

  5. Cómo:¿Historial ilimitado de Bash/shell?

Navegue rápidamente a través del historial del directorio en Fish Shell

Habilitar la marca de tiempo para el comando de historial en Fish Shell

Construcción de comandos

Uso de la función de historial en Bash Shell en el servidor Ubuntu 16.04 LTS

¿Qué es un archivo .sh?

Historial de BASH truncado a 500 líneas en cada inicio de sesión