Cuando zsh se configura como un shell de inicio de sesión en Mac OS X, cuando iTerm lo inicia, zsh no considera que se ejecute como un shell de inicio de sesión, aunque se inicia como '-zsh' ('-' se coloca como el primer carácter de arg [0]) que se supone que significa que debe comenzar como un shell de inicio de sesión.
Entonces, cuando configuro el shell de inicio de sesión en bash, bash reconoce este primer '-' en $ 0 y se ejecuta como un shell de inicio de sesión, pero zsh no, aunque parece que debería.
¿Hay alguna manera de hacer que zsh reconozca el '-' en el argumento [0], o hacer que iTerm ejecute el shell con un argumento de línea de comando --login?
Respuestas:
En iTerm -> Preferencias -> Pestaña Perfiles -> Sección General establezca Comando en: / bin / zsh --login
fuente
/usr/local/bin/zsh --login
Se le pedirá su contraseña, pero una vez que actualice su configuración, cualquier sesión nueva de iTerm / Terminal que inicie en esa máquina pasará de forma predeterminada a zsh.
fuente
chsh
le dice algo así como "shell no estándar", significa que debe agregar la ruta del nuevo shell/etc/shells
. Esto puede suceder si está cambiando, por ejemplo, a una versión de zsh instalada por homebrew, que la coloca/usr/local/bin/zsh
.chsh -s $(which zsh)
se puede usar para garantizar la ruta correcta.Vaya al panel Usuarios y grupos de las Preferencias del sistema -> Seleccione el usuario -> Haga clic en el candado para realizar cambios (esquina inferior izquierda) -> haga clic con el botón derecho en el usuario actual, seleccione Opciones avanzadas ... -> Seleccione el Shell de inicio de sesión: / bin / zsh y OK
fuente
El comando para cambiar el shell al inicio es
chsh -s <path_to_shell>
. Los shells predeterminados en mac OS X se instalan dentro delbin
directorio, por lo que si desea cambiar al predeterminadozsh
, usaría lo siguienteSi está utilizando una versión diferente de,
zsh
entonces es posible que deba agregar esa versión/etc/shells
para evitar el mensaje de shell no estándar. Por ejemplo, si desea la versión de home-brew,zsh
debe agregar/usr/local/bin/zsh
al archivo mencionado anteriormente lo que puede hacer en un comandosudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells"
y luego ejecutarO si desea hacer todo en un solo comando, simplemente copie y pegue esto si ya tiene instalado zsh
fuente
/etc/shells
en el cuerpo de la respuesta misma.¿Has intentado editar la entrada del shell en la configuración de la cuenta ?
Vaya a Preferencias de cuentas, desbloquee y haga clic derecho en su cuenta de usuario para el cuadro de diálogo Configuración avanzada . Su shell debería ser / bin / zsh, y puede editar esa invocación adecuadamente (es decir, agregar el argumento --login).
fuente
Use la
login
utilidad para crear un shell de inicio de sesión. Suponga que el usuario en el que desea iniciar sesión tiene el nombre de usuario Alice y que zsh está instalado/opt/local/bin/zsh
(por ejemplo, una versión más reciente instalada a través de MacPorts). En iTerm 2, vaya a Preferencias, Perfiles, seleccione el perfil que desea configurar e ingrese en Comando :Consulte
man login
para obtener más detalles sobre las opciones.fuente