Mi historia de bash misteriosamente dejó de funcionar, 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 $HISTFILE
se 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!
$HISTFILE
, por interés? No tengo un.bashrc
OSX eecho $HISTFILE
informa el lugar que esperaría: ¿tiene algún efecto comentar las líneas en cuestión?HISTFILE="$HOME/.bash_history”
. Sin las comillas, su versión no será válida si la ruta a su directorio principal contiene espacios (u otros caracteres especiales).Respuestas:
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 se encarga de guardar y restaurar el historial de comandos bash de forma independiente para cada sesión de terminal restaurada. También combina comandos en la historia global para nuevas sesiones.
Puede deshabilitar este comportamiento y compartir un solo historial configurando
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:
Apple ya cambió su comportamiento desde el lanzamiento de El Capitan, por lo que es mejor ir a leer más sobre esto aquí.
less /private/etc/bashrc_Apple_Terminal
fuente
~/.bash_sessions_disable
archivo está pensado como último recurso en caso de que haya un problema que no pueda resolverse específicamente. Deshabilita más que solo el historial de comandos por sesión, y puede deshabilitar solo el historial de comandos por sesión. Vea los comentarios en/etc/bashrc_Apple_Terminal
para más detalles.export SHELL_SESSION_HISTORY=0
.bashrc
y.bash_profile
unix.stackexchange.com/a/310150/15362Noté algo similar después de la actualización de El Capitan. Simplemente agregar el archivo
.bash_sessions_disable
en su directorio de inicio deshabilita las nuevas sesiones de bash y.bash_history
vuelve a estar en uso.Este hilo de Reddit tiene más información y más enlaces.
fuente
~/.bash_sessions_disable
archivo está pensado como último recurso en caso de que haya un problema que no pueda resolverse específicamente. Deshabilita más que solo el historial de comandos por sesión, y puede deshabilitar solo el historial de comandos por sesión. Vea los comentarios en/etc/bashrc_Apple_Terminal
para más detalles.SHELL_SESSION_HISTORY=0
en la parte superior de~/.bash_profile
.Puede resolver el problema de RVM actualizando a la última versión de RVM o ejecutando esto:
Consulte https://github.com/rvm/rvm/issues/3540 para obtener más información.
fuente
Esta respuesta del hilo de Reddit me salvó:
fuente
Si es una Mac, supongo que su shell de inicio de sesión predeterminado es
bash
y se ejecuta en.profile
lugar de.bashrc
. Entonces, estabas editando el archivo incorrecto.fuente
$HISTFILE
en diferentes partes deprofile
? ¿Tal vez obtienes otro script que cambia la variable? Revisé ambosTerminal
yiTerm
,bash
3
y4
ambos tienen su valor predeterminado$HOME/.bash_history
.$HISTFILE
cambia. Por lo tanto, simplemente haga que dosecho $HISTFILE
rodeen su código. Lo que tiene que hacer es encontrar la pieza de código donde$HISTFILE
cambia moviendo ambasecho $HISTFILE
líneas cada vez más cerca, línea por línea, hasta que algo se revele. Eso es todo.echo $HISTFILE
en cada línea, solo para ver si había alguna diferencia. Sin embargo, simplemente imprimió/Users/username/.bash_history
una miríada de veces. Luego corríecho $HISTFILE
en el shell, y salió/Users/nelsonliu/.bash_sessions/CD275A29-1DF1-4ED8-B8CE-F706B11B812F.historynew
.Estaba viendo este problema en High Sierra. De alguna manera, mi propio .bash_history había pasado a ser propiedad de root y ni siquiera tenía permisos de lectura para otros usuarios (cuando los contenidos del directorio de inicio se veían con ls -al)
No hubo ninguna consecuencia en este archivo .bash_history, así que hice un sudo rm .bash_history seguido de un toque .bash_history para crear uno nuevo.
Todo parece bien ahora
fuente
~/.bash_profile
export HISTTIMEFORMAT='%F %T '