Usar zsh como shell predeterminado en el Mac

A partir de la versión de macOS Catalina, el Mac usa zsh como shell interactivo y shell de inicio de sesión predeterminado. También puedes definir que zsh sea el shell predeterminado en las versiones anteriores de macOS.

De forma predeterminada, el Mac usa zsh o bash como intérprete de la línea de comandos para el shell interactivo y el shell de inicio de sesión:

  • zsh (Z shell) es el shell predeterminado para todas las cuentas de usuario nuevas, a partir de la versión de macOS Catalina.

  • bash es el shell predeterminado en macOS Mojave y versiones anteriores.

zsh es altamente compatible con el shell Bourne (sh) y es compatible en gran medida con bash, exceptuando algunas diferencias. Para obtener más información sobre zsh y su sistema de autocompletado de la línea de comandos, escribe man zsh en Terminal.

Cómo cambiar el shell predeterminado

Tanto si tu cuenta de usuario está configurada para usar zsh (recomendado) como bash u otro shell, puedes cambiar el shell predeterminado desde la línea de comandos o la configuración de Usuarios y grupos.

En la línea de comandos

En Terminal, introduce $ chsh -s path, donde path es una de las rutas de shell enumeradas en /etc/shells, como /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh o /bin/tcsh.

Desde los ajustes de Usuarios y grupos

En macOS Ventura o versiones posteriores:

  1. Selecciona el menú Apple  > Ajustes del Sistema y luego haz clic en Usuarios y grupos en la barra lateral.

  2. Haz clic con la tecla Control pulsada en tu nombre o imagen de usuario en la lista de usuarios de la derecha y, a continuación, elige Opciones avanzadas.

  3. Introduce tu nombre de usuario y contraseña cuando se te solicite.

  4. Elige un shell en el menú Shell de inicio de sesión y haz clic en Aceptar para guardar los cambios.

En versiones anteriores de macOS:

  1. Selecciona el menú Apple  > Preferencias del Sistema y, a continuación, haz clic en Usuarios y grupos.

  2. Haz clic en el candadoNo se ha proporcionado ningún texto alternativo para la imagen y, a continuación, introduce tu nombre de usuario y contraseña.

  3. Pulsa Control y haz clic en tu nombre de usuario, en la lista de usuarios de la izquierda, y elige Opciones avanzadas.

  4. Elige un shell en el menú Shell de inicio de sesión y haz clic en Aceptar para guardar los cambios.

Cómo utilizar un shell diferente sin cambiar el predeterminado

Si no quieres que Terminal utilice el shell de inicio de sesión predeterminado en las ventanas y pestañas nuevas de Terminal:

  1. Abre Terminal y luego elige Terminal > Ajustes (o Preferencias).

  2. En el panel General, selecciona Comando (ruta completa).

  3. En el campo adyacente, introduce una de las rutas de shell que aparecen en /etc/shells, como /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh o /bin/tcsh.

Si invocas el shell bash y macOS está configurado para utilizar un shell diferente, verás un mensaje que indica que el shell interactivo predeterminado ahora es zsh. Para que no se muestre esta advertencia, puedes añadir este comando a ~/.bash_profile o ~/.profile:

export BASH_SILENCE_DEPRECATION_WARNING=1

Cómo cambiar a un perfil y símbolo del sistema de zsh

Si utilizas un perfil de bash, por ejemplo, para establecer variables de entorno, alias o variables de ruta, deberás utilizar el equivalente en zsh. Por ejemplo:

  • .zprofile equivale a .bash_profile y se ejecuta en el inicio de sesión, incluso a través de SSH.

  • .zshrc equivale a .bashrc y se ejecuta para cada sesión de Terminal nueva.

Si utilizas .profile (un perfil compatible con POSIX), puedes añadir este comando a .zprofile para hacer que zsh lea automáticamente los ajustes:

[[ -e ~/.profile ]] && emulate sh -c 'source ~/.profile'

También puedes trasladar algunos ajustes de un perfil de bash a un perfil de zsh sin modificarlos. Por ejemplo, para establecer variables de entorno: export MY_SETTING=1.

zsh reconoce un conjunto de especificadores de símbolo del sistema diferente de bash y su sintaxis para especificar salidas en color es más sencilla, pues no necesita utilizar secuencias de escape ANSI complejas. Por ejemplo, esta es la sintaxis de un símbolo del sistema de bash predeterminado de .bash_profile:

export PS1="\[\e[92;40m\]\h\[\e[m\]:\[\e[93m\]\W\[\e[m\] \\$ "

Para convertirlo en un símbolo del sistema de zsh cuando se utiliza .zprofile o .zshrc:

export PS1="%10F%m%f:%11F%1~%f \$ "

Para obtener más información, consulta la página man de zsh.

Cómo probar tus scripts del shell

Para probar la compatibilidad de los scripts con los shell compatibles con Bourne en macOS Catalina o versiones posteriores, puedes cambiar /var/select/sh por /bin/bash, /bin/dash o /bin/zsh. Si cambias /var/select/sh por un shell distinto de bash, ten en cuenta que los scripts que usan comandos de bash pueden no funcionar correctamente.

Para hacer que zsh emule a sh, puedes ejecutar el comando zsh --emulate sh.

La información sobre productos no fabricados por Apple, o sobre sitios web independientes no controlados ni comprobados por Apple, se facilita sin ningún tipo de recomendación ni respaldo. Apple no se responsabiliza de la selección, el rendimiento o el uso de sitios web o productos de otros fabricantes. Apple no emite ninguna declaración sobre la exactitud o fiabilidad de sitios web de otros fabricantes. Contacta con el proveedor para obtener más información.

Fecha de publicación: