
Cuando inicio sesión en la aplicación Terminal en OSX, mi shell predeterminado es /bin/bash
. Entrar echo $HISTFILE
me señala /Users/monkeybrain/.bash_history
y head $(echo $HISTFILE)
me muestra que el archivo contiene entradas del historial.
Si luego escribo zsh
para cambiar de shell, suceden un par de cosas raras. En primer lugar, aunque mi mensaje cambia (por lo que parece que estoy en el nuevo shell), mi $SHELL
variable de entorno todavía apunta a /bin/bash
. La $HISTFILE
variable ahora está vacía y no existe ningún archivo como ~/.zsh_history
. Además, no puedo usar Ctrl-A
o Ctrl-E
moverme por la línea de comando.
¿Que esta pasando aqui?
Muchas gracias,
MEGABYTE
Respuesta1
SHELL
El shell generalmente no modifica la variable de entorno. Generalmente contiene la ruta completa al shell de inicio de sesión del usuario actual,noel shell que se está ejecutando actualmente. En la mayoría de los casos,SHELL
se debe configurar antes de que se inicie un shell.zsh
no cambia el valor deSHELL
ybash
lo vuelve a establecer en el shell de inicio de sesión siSHELL
no estaba configurado.Por defecto
HISTFILE
no está configurado enzsh
. Si desea guardar el historial, debe configurarlo en el archivo que desea utilizar para ello:HISTFILE="${HOME}/.zsh_history"
También debe establecer
SAVEHIST
valores enteros positivos para saberzsh
cuántas líneas guardar en el archivoHISTFILE
, el valor predeterminado es0
(Graciascerebro de monopara la pista). Probablemente también quieras generarHISTSIZE
, que indica cuántas líneas de historial están disponibles en la sesión de shell. Su valor predeterminado es sólo30
. Por ejemplo:HISTSIZE=2000 SAVEHIST=2000
Esto normalmente se hace en el
~/.zshrc
archivo de configuración.zsh
intenta adivinar sus preferencias de enlace de claves comprobando las variables de entornoEDITOR
yVISUAL
. Si alguno de ellos contiene la cadena "vi",zsh
utilizará elviins
modo de entrada. Ni Ctrl+ Ani Ctrl+ Eestán vinculados de forma predeterminada en este modo. Si desea utilizar elemacs
modo de entrada (el predeterminado enbash
), solo necesita ejecutarbindkey -e
Esto también se puede hacer en
~/.zshrc
Considerándolo todo, parece que estás ejecutando zsh
con la configuración predeterminada. Si aún no lo hay ~/.zshrc
, simplemente puede crearlo y agregar las configuraciones necesarias.