¿Cómo cambiar el Shell de inicio de sesión en Mac OS X de bash a zsh?

90

Estoy tratando de cambiar el Shell de inicio de sesión de Mac OS X de basha zsh. Veo que es posible en Mac OS X Leopard , pero para OS X Lion no puedo encontrar una manera. Realmente espero que sea posible cambiar el shell de inicio de sesión de bash a otra cosa. No estoy exactamente seguro de dónde buscar.

Idlecool
fuente
Después de cambiar shell a zsh, aún tenía que iniciar zsh manualmente. Cerrar sesión no ayudó. Luego cambié zsh al shell de inicio de sesión más alto. Salió y allí estaba.
1
Por lo menos, siempre puede modificar el .bashrc para buscar y ejecutar zsh. if [ -x /usr/local/bin/zsh ] ; then exec /usr/local/bin/zsh fi. Sugerencia, cuando modifique los scripts de inicio de shell, asegúrese de mantener un shell en ejecución e iniciar uno nuevo en otra ventana: si lo rompe, todavía tiene un lugar fácil para solucionarlo.
Dan Pritts

Respuestas:

101

Puede cambiar el shell de usuario con el siguiente comando:

chsh -s /bin/zsh

Nota: Para cambiarlo por un shell no estándar, asegúrese de que su ruta se haya agregado al /etc/shellsarchivo.

Spiff
fuente
44
Instalé una versión más nueva de zsh con Homebrew, que incluyó zsh /usr/local/bin/zsh. Desafortunadamente, chsh no permite esto, diciendo chsh: /usr/local/bin/zsh: non-standard shell. La respuesta de Daniel Beck es una solución adecuada en este caso.
adam_0
43
Si usted está recibiendo problemas con conchas no estándar, creo que debería ser capaz de añadir /usr/local/bin/zsha /etc/shells, y que debería resolver ese problema.
Mike Meyers
13
La información de instalación de homebrew zsh realmente recomienda que la agregue a / etc / shells: ==> Caveats To use this build of Zsh as your login shell, add it to /etc/shells.
George
No funciona a veces. Sin embargo
@Frank
1
@Awesome_girl De forma predeterminada, /etc/shellses propiedad y solo puede escribirla root (el superusuario). Podría, por ejemplo, usar sudo vi /etc/shellspara usar sudo( s uper u ser do ) para ejecutar el vieditor para editar /etc/shells. Acabo de probar en mi sistema y confirmó que NO está protegido por la Protección de integridad del sistema, por lo que debería poder editarlo como root sin saltar a través de aros para deshabilitar SIP.
Spiff
54

Curiosamente, el mismo método al que se vincula en su pregunta todavía funciona en OS X Lion a través de Sierra (10.12). La única diferencia: el panel de preferencias se denomina Usuarios y grupos en lugar de Cuentas .

  1. Abra "Preferencias del sistema" → "Usuarios y grupos".
  2. A menos que el icono de bloqueo ya esté desbloqueado, haga clic en el icono de bloqueo y autentíquese.
  3. Haga clic contextual en un usuario en la lista de nombres de usuario (mantenga presionada la Controltecla mientras hace clic o haga clic con el botón derecho en un mouse de dos botones derecho).
  4. En el menú contextual, elija "Opciones avanzadas ...".
  5. Elija "Shell de inicio de sesión" en la hoja que aparece.

La nota en la parte superior de la pantalla "Opciones avanzadas" afirma que debe reiniciar para que el cambio surta efecto, pero realmente solo necesita cerrar sesión y volver a iniciarla.

ingrese la descripción de la imagen aquí

Daniel Beck
fuente
1
Confirmó que esto funciona en Mountain Lion, además de trabajar con "shells no estándar" que puede instalar usted mismo (o hacer que Homebrew instale).
adam_0
2
Confirmado aún trabajando en 10.10 Yosemite.
ecnepsnai
44
haga clic derecho en el nombre de usuario para que aparezca el menú que contiene "opciones avanzadas". Eso me tomó un par de minutos para encontrar.
pdwalker
1
¿Por qué obligar a alguien a ir fuera del sitio para recopilar toda la información antes de poder responder? De ahí el comentario en caso de que alguien más asuma que la respuesta está aquí en lugar de aquí y allá.
pdwalker
1
@jvriesem En realidad, lo hace. Supongo que se saltó el paso 2.
Daniel Beck
11

O:

sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)
franco
fuente
3
¿Puedes explicar por qué esto responde la pregunta?
ChrisF
Asegúrese de ejecutar esto después brew install zsh .
mmell
3
Además, tenga cuidado de que la ruta de zsh instalada a través de homebrew sea diferente. Lo hago como:sudo dscl . change /users/$USER UserShell /bin/bash $(which zsh)
metakermit
1
ADVERTENCIA: Esto romperá su shell si lo copia / pega sin verificar primero la ruta de zsh. Haz lo que dijo metakermit en su lugar.
radixhound
1

Si alguien se pregunta el mismo problema sucede en macOS Sierra y el siguiente comando me permitió cambiar el shell sin problemas:

chpass -s /usr/local/bin/zsh
Maxim Ligus
fuente
1
Esto duplica otra respuesta y no agrega contenido nuevo. No publique una respuesta a menos que realmente tenga algo nuevo que aportar. "chfn y chsh son sinónimos de chpass".
DavidPostill