Qué es zsh y cómo usarlo en el terminal
Autor: Redacción Domeny.ForSale Publicado
En pocas palabras: Zsh, o Z shell, es un intérprete de comandos del sistema: un programa que interpreta las órdenes que escribes y ejecuta las tareas indicadas. Facilita el trabajo en el terminal gracias a sus amplias opciones de autocompletado, historial y configuración. Resulta útil sobre todo para trabajar de forma interactiva con el sistema, pero no necesitas conocerlo para empezar a usar el terminal.
Zsh y el terminal: ¿en qué se diferencian?
El terminal es una aplicación que ofrece un espacio para escribir comandos y mostrar sus resultados. El intérprete de comandos funciona dentro de esa aplicación: lee las órdenes, reconoce su sintaxis y solicita la ejecución de las operaciones. En un mismo terminal puedes ejecutar distintos intérpretes, como zsh o Bash.
Cuando escribes cd Documentos, zsh ejecuta su propio comando para cambiar de directorio. Cuando escribes git status, ejecuta el programa externo Git, siempre que esté instalado y disponible en la ruta de búsqueda de programas. Esta distinción importa: instalar zsh no instala automáticamente las herramientas cuyos nombres utilizas en los comandos.
Zsh está disponible, entre otros sistemas, en Linux y macOS. En macOS, desde la versión Catalina, es el intérprete predeterminado para las nuevas cuentas de usuario, aunque una cuenta concreta puede tener otra configuración. En Windows puedes usarlo, por ejemplo, en WSL, un entorno que permite ejecutar herramientas de Linux.
¿Qué aporta zsh al trabajo diario?
La principal ventaja de zsh es que reduce la necesidad de escribir manualmente fragmentos repetitivos de los comandos. Sin embargo, la comodidad depende de su configuración: una instalación nueva no tiene por qué verse ni comportarse como el terminal que aparece en un tutorial.
Entre sus funciones útiles se encuentran:
- Autocompletado con la tecla Tab: puede sugerir nombres de comandos, rutas, opciones y argumentos. Las sugerencias disponibles dependen de las definiciones de autocompletado que tenga el sistema.
- Historial de comandos: permite recuperar órdenes anteriores. Guardar el historial entre sesiones y compartirlo entre ellas requiere la configuración adecuada.
- Coincidencia de nombres de archivo mediante patrones: permite seleccionar grupos de archivos sin enumerar cada nombre por separado.
- Indicador de comandos configurable: el texto que aparece antes del cursor puede mostrar el directorio, el estado del último comando o información sobre el repositorio Git.
Por ejemplo, si trabajas en un directorio que contiene la carpeta proyecto-tienda, puedes escribir cd proy y pulsar Tab. El intérprete intentará completar el nombre; si hay varios directorios que coinciden, puede mostrar las opciones disponibles. Otros intérpretes también ofrecen funciones similares. Para algunos usuarios, la ventaja de zsh reside en sus posibilidades de configuración y en las extensiones disponibles, no en el mero hecho de ofrecer autocompletado.
¿Zsh o Bash? ¿Cuál elegir?
Bash es otro intérprete de comandos popular, habitual en Linux y en scripts de administración. Zsh y Bash admiten muchos comandos similares, pero sus sintaxis no son totalmente compatibles. Las diferencias afectan, entre otras cosas, a los arrays, la expansión de variables y la coincidencia de nombres de archivo mediante patrones.
Un ejemplo práctico: con la configuración predeterminada de zsh, el comando ls *.txt dará un error de coincidencia si el directorio no contiene archivos con la extensión .txt. En ese caso, Bash pasa de forma predeterminada el argumento literal *.txt al programa ls, que indicará que ese archivo no existe. Por tanto, un comando aparentemente idéntico puede fallar en una etapa distinta.
Para el trabajo diario, elige el intérprete con el que te resulte más fácil realizar tus tareas. Para los scripts, elige el intérprete de forma consciente. Un script que empieza por #!/bin/bash indica que Bash debe interpretarlo cuando se ejecuta directamente. Usar zsh en el terminal no implica que tengas que reescribir ese script; en cambio, ejecutarlo con el comando zsh script.sh puede provocar errores de compatibilidad.
¿Cómo comprobar si zsh está disponible y ejecutarlo?
Primero, comprueba si el programa está disponible:
zsh --version
Si obtienes un número de versión, puedes probar zsh escribiendo zsh. El comando exit cerrará esa sesión y te devolverá al intérprete anterior. Esto no cambia la configuración predeterminada de la cuenta.
Si el sistema no encuentra el programa, en Linux puedes instalarlo mediante el gestor de paquetes de tu distribución. Por ejemplo, en Debian y Ubuntu se utiliza sudo apt install zsh. El comando requiere permisos de administración; si usas otra distribución, consulta el procedimiento correspondiente en su documentación oficial.
El comando echo $SHELL, que suele recomendarse, normalmente muestra el intérprete configurado para el inicio de sesión, no necesariamente el que está funcionando en la sesión actual. Después de iniciar zsh, puedes comprobarlo con echo $ZSH_VERSION: en zsh, esa variable contiene su número de versión.
El intérprete predeterminado de la cuenta suele poder cambiarse con la herramienta chsh. Antes de hacerlo, confirma la ruta del programa y las reglas de tu sistema: puede ser necesario que el intérprete figure en la lista /etc/shells, y las cuentas de empresa pueden estar sujetas a restricciones administrativas.
Configuración de zsh y función de Oh My Zsh
El archivo principal de configuración de las sesiones interactivas suele ser ~/.zshrc, donde ~ representa el directorio personal del usuario. Puedes incluir en él alias, es decir, atajos para comandos, y ajustes de autocompletado. Una configuración inicial sencilla sería esta:
alias ll='ls -lh'
autoload -Uz compinit
compinit
El alias permite escribir ll en lugar de ls -lh, y las líneas siguientes inicializan el sistema de autocompletado. Antes de editar un archivo existente, haz una copia y comprueba si ya contiene ajustes similares. La forma más sencilla de probar los cambios es abrir una nueva sesión de zsh.
Oh My Zsh es un conjunto opcional de configuraciones, temas y complementos, no el intérprete en sí. Las sugerencias de colores al escribir o el resaltado de sintaxis suelen proceder de extensiones adicionales. No están disponibles automáticamente al instalar zsh.
Para empezar, ejecuta zsh sin cambiar el intérprete predeterminado y realiza algunas de tus tareas habituales. Añade extensiones solo cuando sepas qué tarea concreta quieres facilitar con ellas; antes de ejecutar un instalador, comprueba su procedencia y qué cambios realizará.
Consulta también: ¿Qué es AGI?
