it-swarm-es.com

¿Cómo hacer que zsh se ejecute como Shell de inicio de sesión en Mac OS X (en iTerm)?

Cuando zsh se configura como Shell de inicio de sesión en Mac OS X, cuando lo inicia iTerm, zsh no considera que se esté ejecutando como Shell de inicio de sesión, aunque se inicia como '-zsh' ('-' se coloca como primer carácter de arg [0]) que se supone 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?

144
Ivan Tarasov
chsh -s $(which zsh)

Se le pedirá su contraseña, pero una vez que actualice la configuración, cualquier sesión nueva de iTerm/Terminal que inicie en esa máquina se establecerá de forma predeterminada en zsh.

215
Damien Wilson

En iTerm -> Preferencias -> pestaña Perfiles -> Sección general, configure el comando en:/bin/zsh --login

/bin/zsh --login

98
Harold Putman

Vaya alUsuarios y grupospanel delPreferencias del sistema-> Seleccione el usuario ->Haga clic en el bloqueo para realizar cambios(esquina inferior izquierda) -> haga clic derecho en el usuario actual seleccioneOpciones avanzadas ...-> Seleccione elLogin Shell:/ bin/zsh yOK

55
Arunkumar

¿Ha intentado editar la entrada de Shell en configuración de la cuenta .

Vaya a Preferencias de las cuentas, desbloquee y haga clic con el botón derecho en su cuenta de usuario para acceder a Configuración avanzada diálogo. Su Shell debería ser/bin/zsh, y puede editar esa invocación de manera apropiada (es decir, agregar el argumento --login).

19
Brian Agnew

El comando para cambiar el Shell en el inicio es chsh -s <path_to_Shell>. Los shells predeterminados en Mac OS X se instalan dentro del directorio bin, por lo tanto, si desea cambiar a la zsh predeterminada, debería usar lo siguiente

chsh -s /bin/zsh

Si está utilizando una versión diferente de zsh, entonces es posible que deba agregar esa versión a /etc/shells para evitar el mensaje de Shell no estándar. Por ejemplo, si desea la versión de zsh de home-brew, debe agregar /usr/local/bin/zsh al archivo mencionado anteriormente, lo que puede hacer en un solo comando Sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells" y luego ejecutar

chsh -s /usr/local/bin/zsh

O si desea hacer todo en un solo comando, simplemente copie y pegue esto si ya tiene instalado zsh

Sudo sh -c "echo '/usr/local/bin/zsh' >> /etc/shells" && chsh -s /usr/local/bin/zsh
17
hasanain

La solución que funcionó para mí se describe en esta publicación titulada: Use Homebrew zsh en lugar de OS X Predeterminado .

La solución fue ejecutar el siguiente comando en el terminal.

Sudo dscl . -create /Users/$USER UserShell /usr/local/bin/zsh

Entonces tienes que escribir tu contraseña y listo.

0
Jonny Brooks

Use la utilidad login para crear un Shell de inicio de sesión. Suponga que el usuario que desea iniciar sesión tiene el nombre de usuario Alice y que zsh está instalado en /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 :

login -pfq Alice /opt/local/bin/zsh

Consulte man login para obtener más detalles sobre las opciones.

0
Robin Klose