macos - temas - ¿Cómo hacer que zsh se ejecute como un shell de inicio de sesión en Mac OS X(en iTerm)?
plugins terminal mac (7)
¿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 debe ser / bin / zsh, y puede editar esa invocación de manera apropiada (es decir, agregar el argumento --login).
Cuando zsh se establece como un shell de inicio de sesión en Mac OS X, cuando iTerm lo inicia, zsh no considera que se esté ejecutando como un shell de inicio de sesión, aunque se inicia como ''-zsh'' (''-'' se pone como 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 para bash, bash reconoce este primero ''-'' en $ 0 y se ejecuta como un shell de inicio de sesión, pero zsh no lo hace, aunque parece que debería hacerlo.
¿Hay alguna manera de hacer que zsh reconozca el ''-'' en arg [0], o hacer que iTerm ejecute el shell con un argumento de línea de comando --login?
El comando para cambiar el shell al inicio es chsh -s <path_to_shell>
. Los shells predeterminados en mac OS X están instalados dentro del directorio bin
así que si quieres cambiar al zsh
predeterminado, entonces zsh
lo siguiente
chsh -s /bin/zsh
Si está usando una versión diferente de zsh
, puede que tenga que agregar esa versión a /etc/shells
para evitar el mensaje de shell no estándar. Por ejemplo, si quieres la versión de zsh
de zsh
entonces debes agregar /usr/local/bin/zsh
al archivo antes mencionado, que puedes hacer en un comando sudo sh -c "echo ''/usr/local/bin/zsh'' >> /etc/shells"
y luego ejecuta
chsh -s /usr/local/bin/zsh
O si desea hacer todo en un solo comando, simplemente copie y pegue esto si ya tiene zsh instalado
sudo sh -c "echo ''/usr/local/bin/zsh'' >> /etc/shells" && chsh -s /usr/local/bin/zsh
En iTerm -> Preferencias -> Pestaña Perfiles -> Sección general, configure el comando para: / bin / zsh --login
La solución que funcionó para mí se describe en esta publicación titulada: Use Homebrew zsh en lugar de OS X Default .
La solución fue ejecutar el siguiente comando en la terminal
sudo dscl . -create /Users/$USER UserShell /usr/local/bin/zsh
Luego debe escribir su contraseña y listo.
Use la utilidad de 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 Comando :
login -pfq Alice /opt/local/bin/zsh
Vea el man login
de man login
para más detalles sobre las opciones.
Vaya al panel Usuarios y grupos de Preferencias del sistema -> Seleccionar 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
chsh -s $(which zsh)
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 tendrá como valor predeterminado zsh.