Cada vez que abro una nueva instancia de una terminal, el historial está vacío. ¿Porqué es eso? ¿Necesito configurar algo? Sin embargo, en bash no hay necesidad de esto.
zsh
command-history
Gilles 'SO- deja de ser malvado'
fuente
fuente
zsh
, pero por defectobash
escribe en sus archivos de historial al salir , lo que significa que si no lo ha usado antes y abre algunos shells, todos mostrarán ahora el historial hasta que al menos uno cierre la sesión, escribiendo así su archivo de historial.Respuestas:
Bash y zsh tienen valores predeterminados diferentes. Zsh no guarda el historial en un archivo de forma predeterminada.
Cuando ejecuta zsh sin un archivo de configuración, muestra una interfaz de configuración. En esta interfaz de configuración, seleccione
luego revise la configuración propuesta y seleccione
Repita para los otros submenús para (2) completar, (3) combinaciones de teclas y (4) opciones, luego seleccione
desde el menú principal.
Las configuraciones recomendadas relacionadas con el historial son
Usaría un nombre diferente para el archivo de historial, para indicar que es el archivo de historial de zsh. Y 1000 líneas se pueden aumentar en un sistema moderno.
Estas líneas entran
~/.zshrc
, por cierto.fuente
Si bien la respuesta existente es correcta, pensé que podría valer la pena agregar que posiblemente haya una mejor opción que
appendhistory
guardar su historial y esta esSHARE_HISTORY
.Desde los documentos
SHARE_HISTORY
"ambos importan nuevos comandos del archivo de historial y también hacen que sus comandos escritos se agreguen al archivo de historial". Esto significa que los shells también conocen el historial de los demás sin tener que cerrar el actual o abrir uno nuevo.Entonces, todos juntos lo establecerían así:
fuente
INC_APPEND_HISTORY_TIME
, que escribe en el historial desde todos los terminales como se indicó anteriormente, pero ese historial "no estará disponible inmediatamente desde otras instancias del shell que estén usando el mismo archivo de historial". Esto tiene más sentido para mí, porque entonces puedo recorrer el historial de cada terminal de forma independiente, pero todavía está todo registrado.INC_APPEND_HISTORY_TIME
podría tener más sentido lógico. Probablemente no debería haber dicho "mejor", ¡supongo que es solo una cuestión de preferencia personal en este momento!la primera vez que cambies de bash a zsh, tu historial de bash no se transferirá. Entonces, toda la historia que tenía en bash todavía está en el archivo de historia de bash. zsh comienza a capturar el historial desde el momento en que comienza a usarlo como shell.
Si no lo configuró para capturar el historial, puede volver a ejecutar el asistente de configuración y decirle a zsh cuánto historial guardar. Cambie el nombre de ~ / .zshrc o bórrelo para obtener una nueva oportunidad en el asistente.
fuente
Si no funciona y ya tiene todo esto en su lugar, intente:
Eso escribe el historial actual en el archivo de historial. Y si obtienes:
entonces es hora de verificar los permisos en el archivo y en el directorio principal.
fuente