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 --loginSe 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
chshle 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 delbindirectorio, por lo que si desea cambiar al predeterminadozsh, usaría lo siguienteSi está utilizando una versión diferente de,
zshentonces es posible que deba agregar esa versión/etc/shellspara evitar el mensaje de shell no estándar. Por ejemplo, si desea la versión de home-brew,zshdebe agregar/usr/local/bin/zshal 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/shellsen 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
loginutilidad 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 loginpara obtener más detalles sobre las opciones.fuente