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

Si tu cuenta de usuario está configurada para usar zsh (recomendado), bash u otra shell, puedes cambiar la shell predeterminada desde la línea de comandos o desde la configuración de Usuarios y grupos.

En la línea de comandos

En Terminal, ingresa $ 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 la configuración de Usuarios y grupos

En macOS Ventura o versiones posteriores:

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

  2. Mantén presionada la tecla Control y haz clic en tu nombre o imagen de usuario de la lista de usuarios que se encuentra a la derecha. Luego, selecciona Opciones avanzadas.

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

  4. Elige una 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, luego, haz clic en Usuarios y grupos.

  2. Haz clic en el candadoNo alt supplied for Image y, luego, ingresa tu nombre de usuario y contraseña.

  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. Elige una shell en el menú “Shell de inicio de sesión” y haz clic en Aceptar para guardar los cambios.

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 selecciona Terminal > Configuración (o Preferencias).

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

  3. En el campo adyacente, 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 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 o versiones posteriores, 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: