Usar zsh como la shell predeterminada en la Mac

A partir de macOS Catalina, la Mac usa zsh como la shell de inicio de sesión y la shell interactiva predeterminadas. También puedes establecer zsh como la shell predeterminada en versiones anteriores de macOS.

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

  • zsh (shell Z) es la shell predeterminada que se usa en todas las cuentas de usuario recién creadas (a partir de macOS Catalina).
  • bash es la shell predeterminada en macOS Mojave y anterior.

zsh es altamente compatible con la shell Bourne (sh) y suele ser compatible con bash, con algunas diferencias. Para obtener más información sobre zsh y el sistema de finalización integral de líneas de comandos, ingresa man zsh en Terminal.
  

Cómo cambiar la shell predeterminada

Independientemente de que la cuenta de usuario esté configurada para usar la shell zsh (recomendada), bash o una diferente, puedes cambiar la shell predeterminada en las preferencias del panel “Usuarios y grupos” o en la línea de comandos.

En las preferencias del panel “Usuarios y grupos”

  1. Selecciona el menú Apple () > Preferencias del Sistema y, luego, haz clic en Usuarios y grupos. 
  2. Haz clic en el ícono del candado  e ingresa el nombre y la contraseña de la cuenta.
  3. Mantén presionada la tecla Control y haz clic en el nombre de usuario de la lista de usuarios que se encuentra a la izquierda. Luego, selecciona Opciones avanzadas. 
  4. Selecciona una shell en el menú “Shell de inicio de sesión” y, luego, haz clic en OK para guardar los cambios.

En la línea de comandos

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

Cómo usar una shell diferente sin cambiar la shell predeterminada

Si no quieres que Terminal use una shell de inicio de sesión predeterminada en las ventanas y pestañas nuevas de Terminal:

  1. Abre Terminal y, luego, selecciona Terminal > Preferencias.
  2. En el panel General, selecciona “Comando (ruta completa)”. 
  3. En el campo provisto, ingresa una de las rutas de shell que se indican en /etc/shells, como /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh o /bin/tcsh.

Si aplicas la shell bash y la versión de macOS Catalina está configurada para usar una shell diferente, verás un mensaje en el que se indica que zsh ahora es la shell interactiva predeterminada. Para silenciar esta advertencia, puedes agregar este comando a ~/.bash_profile o ~/.profile:

export BASH_SILENCE_DEPRECATION_WARNING=1


Cómo empezar a usar un aviso y perfil zsh

Si estás usando un perfil bash (por ejemplo, para establecer variables de entorno, alias o variables de ruta), debes empezar a usar un perfil zsh equivalente. Por ejemplo:

  • .zprofile es equivalente a .bash_profile y se ejecuta durante el inicio de sesión, incluido el inicio de sesión en SSH
  • .zshrc es equivalente a .bashrc y se ejecuta en cada sesión de Terminal nueva

Si estás usando .profile (un perfil compatible con POSIX), puedes hacer que el perfil zsh automáticamente lea su configuración agregando este comando a .zprofile:

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

También puedes trasladar algunas configuraciones desde un perfil bash a un perfil zsh sin que se realicen modificaciones. Por ejemplo, para establecer variables de entorno: export MY_SETTING=1.

El perfil zsh reconoce un conjunto de especificadores de avisos distinto al que reconoce el perfil bash. Además, tiene una sintaxis más ordenada para especificar la salida de coloración, ya que elimina la necesidad de usar secuencias de escape ANSI complejas. Por ejemplo, a continuación se indica la sintaxis para el aviso bash predeterminado de .bash_profile:

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

Para convertir ese aviso bash a un aviso zsh cuando se use .zprofile o .zshrc, sigue estos pasos:

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

Consulta la página de zsh man para obtener más información.


Cómo probar los scripts de shell

Para probar la compatibilidad de un script de shell compatible con Bourne en macOS Catalina, puedes cambiar /var/select/sh a /bin/bash, /bin/dash o /bin/zsh. Si cambias /var/select/sh a una shell que no es bash, ten presente que es posible que los scripts que usan bashims no funcionen como corresponde.

Puedes ejecutar el comando zsh --emulate sh para hacer que el zsh emule sh.
  

La información acerca de los productos no fabricados por Apple o la de los sitios web independientes no controlados ni probados por Apple se ofrece sin ninguna recomendación o aprobación. Apple no asume ninguna responsabilidad respecto a la selección, el rendimiento o el uso de los sitios web o los productos de terceros. Apple no emite ninguna declaración sobre la precisión o la confiabilidad de los sitios web de terceros. Comunícate con el proveedor para obtener más información.

Fecha de publicación: