El historial de Bash no se conserva entre sesiones de terminal en Mac

El historial de Bash no se conserva entre sesiones de terminal en Mac

Mi historial de bash dejó de funcionar misteriosamente y no tengo idea de cómo solucionarlo. Así es como se ve mi .bashrc:

HISTSIZE=500
HISTFILESIZE=500
HISTFILE=$HOME/.bash_history

Sin embargo, cuando lo ejecuto, echo $HISTFILEse imprime /Users/myusername/.bash_sessions/EE8689E5-7DAD-4018-817E-0AF1DE36082A.historynew.

Soy el propietario del archivo .bash_history, por lo que no estoy muy seguro de cómo solucionar este problema.

¡Gracias!

Respuesta1

Terminal asigna a cada sesión de terminal un identificador único y lo comunica a través de la variable de entorno TERM_SESSION_ID para que los programas que se ejecutan en un terminal puedan guardar/restaurar el estado específico de la aplicación al salir y reiniciar Terminal con Reanudar habilitado.

Se utiliza una nueva carpeta (~/.bash_sessions/) para almacenar los archivos HISTFILE y .session que son exclusivos de las sesiones.

Durante el inicio del shell, se ejecuta el archivo de sesión. Los archivos antiguos se eliminan periódicamente.

El comportamiento predeterminado organiza guardar y restaurar el historial de comandos bash de forma independiente para cada sesión de terminal restaurada. También fusiona comandos en el historial global para nuevas sesiones.

Puede desactivar este comportamiento y compartir un único historial configurando

export SHELL_SESSION_HISTORY=0

Si se define HISTTIMEFORMAT, el historial por sesión está deshabilitado de forma predeterminada (lea más en /private/etc/bashrc_Apple_Terminal)

El mecanismo de guardar/restaurar está deshabilitado si existe el siguiente archivo:

~/.bash_sessions_disable

Apple ya cambió algunos comportamientos desde el lanzamiento de El Capitán, por lo que es mejor leer más sobre esto aquí.less /private/etc/bashrc_Apple_Terminal

Respuesta2

Noté algo similar después de la actualización de El Capitán. Simplemente agregar el archivo .bash_sessions_disableen su directorio de inicio deshabilita las nuevas sesiones de bash y .bash_historyvuelve a estar en uso.

EsteHilo de Reddittiene más información y más enlaces.

Respuesta3

Puede resolver el problema de RVM actualizando a la última versión de RVM o ejecutando esto:

  echo 'shell_session_update' > $HOME/.bash_logout

Verhttps://github.com/rvm/rvm/issues/3540para más información.

Respuesta4

Si es una Mac, supongo que su shell de inicio de sesión predeterminado es bashy se ejecuta .profileen lugar de .bashrc. Entonces, estabas editando el archivo equivocado.

información relacionada