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

Si tu cuenta de usuario está configurada para usar zsh (recomendado), bash u otro shell, puedes cambiar el shell predeterminado en las preferencias de Usuarios y grupos o en la línea de comandos.

En las preferencias de Usuarios y grupos

  1. Selecciona el menú Apple  > Preferencias del Sistema y, a continuación, haz clic en Usuarios y grupos. 
  2. Haz clic en el candado  y, a continuación, escribe el nombre de la cuenta y la 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.

En la línea de comandos

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

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 selecciona Terminal > Preferencias.
  2. En el panel General, selecciona “Comando (ruta completa)”. 
  3. En el campo que se habilita, escribe una de las rutas de shell que se enumeran en /etc/shells, por ejemplo, /bin/zsh, /bin/bash, /bin/csh, /bin/dash, /bin/ksh, /bin/sh o /bin/tcsh.

Si invocas el shell bash y macOS Catalina 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 si los scripts son compatibles con los shells compatibles con Bourne en macOS Catalina, 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: