¿Qué es Zsh?
Zsh (Z Shell) es un intérprete de comandos, o «shell», para sistemas operativos tipo Unix como GNU/Linux. En términos sencillos, es el programa que te permite interactuar con el sistema operativo a través de la terminal, ejecutando comandos.
Podría decirse que Zsh es una versión mejorada de Bash, que es el shell predeterminado en la mayoría de las distribuciones de Linux.
¿Por qué cambiar?
Aunque hace lo mismo que Bash (ejecutar comandos), Zsh incluye una serie de características avanzadas que lo hacen muy popular entre los desarrolladores y usuarios avanzados.
Las principales ventajas de Zsh son:
- Autocompletado inteligente: Sugiere comandos, archivos y rutas de forma más precisa y predictiva.
- Corrección de errores: Si escribes un comando mal, Zsh puede sugerirte la corrección correcta.
- Temas y personalización: Es extremadamente configurable. Puedes cambiar la apariencia de tu terminal con temas personalizados.
- Plugins: Gracias a frameworks como Oh My Zsh, puedes añadir funcionalidades extra para mejorar tu flujo de trabajo.
En resumen, Zsh es una opción ideal para quien quiere llevar su terminal al siguiente nivel y trabajar de forma más rápida y eficiente.
Instalación de Zsh Shell
Bueno, ahora que hemos visto que es Zsh y qué ventajas podemos obtener al utilizar esta Shell, vamos a ver cómo instalarla en algunas distribuciones GNU/Linux.
- Arch Linux (pacman):
sudo pacman -S zsh
- Debian/Ubuntu (apt):
sudo apt install zsh
- Fedora/RHEL (dnf):
sudo dnf install zsh
¡Listo, ya tienes Zsh en tu sistema!
Con Zsh ya en nuestro sistema, el siguiente paso es hacerlo nuestra shell por defecto. Después de eso, ¡empieza la diversión con la configuración!
Cambiar tu shell por defecto: Es hora de Zsh
Llegó la hora de cambiar nuestra shell por defecto. Es más fácil de lo que parece: solo necesitamos combinar dos comandos en una sola línea.
Vamos a usar chsh (change shell) y which
. El primero se utiliza para cambiar tu shell de inicio, y el segundo nos ayuda a encontrar la ruta exacta de Zsh en tu sistema.
El comando que necesitas para cambiar tu shell por defecto es este:
chsh -s $(which zsh)
Explicación del comando
- chsh: Este es el comando principal. Su nombre es la abreviatura de «change shell» (cambiar shell), y es la herramienta que nos permite cambiar nuestro shell por defecto.
- -s: Es la opción, o «flag», que le dice a
chsh
que el siguiente argumento que le daremos será la ruta del nuevo shell. - $(which zsh): Esta es la parte más interesante. El comando
which
busca en tu sistema dónde está el programazsh
y devuelve su ruta exacta (por ejemplo,/usr/bin/zsh
). Los paréntesis con el símbolo del dólar()
le dicen al sistema que ejecute ese comando primero y «pegue» el resultado en el lugar de la ruta.
Al final, este comando le dice a tu sistema: «Cambiamos el shell por defecto al programa que se encuentra en la ruta donde está Zsh».
Cómo aplicar el cambio de shell
Para que el cambio de shell se aplique correctamente, es necesario cerrar tu sesión de usuario y volver a iniciarla. Si lo prefieres, también puedes reiniciar el ordenador. Con esto, la próxima vez que abras una terminal, ya estarás usando Zsh por defecto.
El Primer Inicio y la Configuración Interactiva
La primera vez que abras tu terminal después de cambiar a Zsh, verás un menú de bienvenida como este. Zsh te ofrece una configuración interactiva para ayudarte con los ajustes iniciales, lo cual es muy útil.

Tienes tres opciones:
- (q) Salir y no hacer nada: Si eliges esta opción, el menú volverá a aparecer la próxima vez que inicies Zsh. No es lo que queremos.
- (0) Salir y crear un archivo
~/.zshrc
vacío: Esto hará que el menú no vuelva a aparecer, pero no configurará nada. Tampoco es la opción que buscamos. - (1) Continuar al menú principal: Esta es la opción que nos interesa. Al elegirla, Zsh nos guiará por una serie de preguntas para configurar nuestro nuevo shell.
Para continuar con el tutorial, simplemente presiona 1 y luego Enter. Zsh te llevará al menú principal de configuración, que tiene varias opciones para personalizar la shell, tal como verás en la siguiente captura de pantalla.

Paso 1: Configuración del Historial
Esta parte del asistente te pregunta cómo quieres que tu terminal maneje el historial de comandos. Aquí te explico lo que significa cada opción:
HISTSIZE
: Este valor determina el número máximo de comandos que la shell recuerda en una sesión activa.HISTFILE
: Es el archivo donde Zsh guarda tu historial de comandos para que puedas usarlo en futuras sesiones.SAVEHIST
: Este valor indica cuántos comandos de la sesión actual se guardarán en el archivoHISTFILE
cuando la terminal se cierre.

Mi recomendación: Para evitar perder comandos, lo ideal es que los valores de HISTSIZE
y SAVEHIST
sean iguales. Un buen número para empezar es 10000. Simplemente escribe ese número y presiona Enter para cada una de las opciones. De esta manera, Zsh recordará un historial muy extenso.
Una vez que configures esto, el asistente te llevará de vuelta al menú principal
Paso 2: Autocompletado y Búsqueda
Esta es la sección que transformará tu forma de trabajar en la terminal. El asistente te pregunta cómo quieres que funcione el autocompletado y la búsqueda.
Tienes tres opciones:
- (1) Activar la autocompletación con las opciones por defecto.
- Esta es la opción que buscamos. Al seleccionarla, activarás la autocompletación inteligente de Zsh, que te ayudará a completar comandos, rutas de archivos y mucho más con solo presionar la tecla Tab. Es la mejor opción para empezar, ya que te da todas las ventajas sin ninguna complicación.
- (2) Ejecutar la herramienta de configuración (
compinstall
).- Esta opción es para usuarios avanzados que quieren un control total sobre la configuración de la autocompletación. Para un tutorial de iniciación como este, no es necesario.
- (0) No activar la autocompletación.
- Si eliges esta opción, perderás uno de los mayores beneficios de Zsh. No te lo recomiendo.

Para continuar, simplemente presiona 1 y luego Enter. Con esto, tu terminal será mucho más rápida y eficiente.
Paso 3: Edición de la Línea de Comandos
Esta parte de la configuración te pregunta cómo quieres que se comporten las teclas cuando escribes un comando en la terminal. En términos sencillos, es para elegir el estilo de navegación y edición de la línea de comandos.
Zsh suele ofrecer dos estilos principales:
- Emacs: Este es el modo por defecto en la mayoría de las distribuciones de Linux. Es el más familiar para casi todos los usuarios, ya que se parece a la forma en que editas texto en cualquier editor. Es muy intuitivo.
- Vi (o Vim): Este estilo es para usuarios avanzados que están acostumbrados al editor de texto Vi. Permite una navegación y edición muy rápida con atajos de teclado, pero tiene una curva de aprendizaje más alta.

Mi recomendación:
Para un tutorial de iniciación, te aconsejo que elijas el modo Emacs. Es el más fácil de usar y te sentirás cómodo desde el principio. Al seleccionarlo, tu experiencia será mucho más fluida.
Paso 4: Opciones de Shell
Esta última sección te permite activar o desactivar algunas opciones adicionales del shell. Si bien son útiles, los valores por defecto suelen ser adecuados para la mayoría de los usuarios.

Mi recomendación:
Para un tutorial de iniciación, te recomiendo no modificar estas opciones. Puedes dejarlas tal como están y pasar al siguiente paso. Estas son configuraciones que puedes explorar más adelante, editando el archivo .zshrc
manualmente cuando te sientas más cómodo con Zsh.
Una vez que hayas seleccionado la opción de «no» para esta sección, el asistente te pedirá que confirmes si quieres guardar los cambios y salir. Con esto, el proceso de configuración interactiva estará completo.
Conclusión y Cierre
¡Felicidades! Si has seguido todos los pasos, ya tienes Zsh instalado y configurado en tu sistema. Has dejado atrás la configuración básica para adentrarte en un mundo de mayor productividad y control.
Este es solo el primer paso. En el próximo post, te mostraré cómo ir más allá con Oh My Zsh, un framework que simplificará enormemente la gestión de plugins, temas y la personalización de tu shell.
No te lo pierdas. En el próximo artículo, tu terminal cambiará por completo.