logo user

He decidido migrar todos mis sistemas Linux de la fiable y conocida bash a la poderosa y versátil zsh. Se trata de una evolución extendida de la Bourne Shell (sh), no solo hereda muchas de las características familiares de Bash, sino que también introduce una serie de nuevas funcionalidades y ofrece un sólido soporte para plugins y temas personalizados. Apple adoptó Zsh como la shell predeterminada hace algún tiempo, me faltaba dar el paso en mis sistemas Linux.


¿Por qué Zsh?

Antes de sumergirnos en la instalación y configuración de Zsh, es esencial comprender las razones detrás de esta elección. Zsh, abreviatura de “Z Shell”, es una potente shell de Unix que ofrece numerosas mejoras y funcionalidades sobre Bash, la shell predeterminada en muchos sistemas Unix.

Ventajas de Zsh sobre Bash

  • Autocompletado Avanzado: Zsh brinda un autocompletado inteligente y avanzado que supera con creces las capacidades de Bash. Desde la sugerencia de nombres de archivos hasta completar comandos y argumentos, la experiencia de navegación en la línea de comandos se vuelve más fluida y eficiente.

  • Personalización Extensiva: Zsh permite una personalización profunda y flexible de la interfaz de usuario. Los usuarios pueden elegir entre una amplia gama de temas predefinidos o crear sus propios diseños para adaptar la apariencia de la línea de comandos a sus preferencias individuales.

  • Potentes Extensiones y Plugins: La comunidad de Zsh ofrece una gran cantidad de extensiones y plugins que amplían aún más su funcionalidad. Desde la integración con herramientas de desarrollo hasta la gestión avanzada de historiales de comandos, estas extensiones permiten a los usuarios personalizar su entorno de trabajo de acuerdo con sus necesidades específicas.

  • Historial Mejorado: Zsh proporciona un historial de comandos mejorado que facilita la búsqueda, edición y ejecución de comandos anteriores. Esta característica resulta especialmente útil para usuarios que trabajan con una gran cantidad de comandos en su día a día.


Instalación

Linux (Ubuntu)

En sistemas Linux basados en Debian, como Ubuntu, la instalación de Zsh es sencilla. Puedes comprobar si ya está instalado y en su defecto instalar Zsh:

⚡ luis@luix:~ $ sudo dpkg -l zsh
:
⚡ luis@luix:~ $ apt install zsh

Compruebo que es una shell válida:

⚡ luis@luix:~ $ grep zsh /etc/shells`
/bin/zsh
/usr/bin/zsh

Cambio a Zsh, para luis y root con chsh -s $(which zsh)

⚡ luis@luix:~ $ chsh -s $(which zsh)
Contraseña:
⚡ luis@luix:~ $
⚡ luis@luix:~ $ sudo su -
Contraseña:
root@luix:~# chsh -s $(which zsh)
root@luix:~#

Salgo y vuelvo a entrar en ambos usuarios y verifico que se ejecuta zsh.

⚡ luis@luix:~ $ ps
    PID TTY          TIME CMD
  48727 pts/0    00:00:00 zsh   <=== !!
  48736 pts/0    00:00:00 ps
  • Si no tienes el fichero .zshrc probalemente se ejecutará zsh-newuser-install y te ofrecerá crearlo. En mi caso seleccioné la opción (2) Populate your ~/.zshrc with the configuration recommended. Creó este fichero .zshrc por defecto:

  • Crea el fichero .zshrc por defecto (copia de mi fichero .zshrc

macOS

Los usuarios de macOS ya tienen Zsh instalado por defecto, lo que significa que pueden empezar a utilizarlo de inmediato sin necesidad de instalación adicional. Pueden abrir Terminal y comenzar a experimentar con las características y funcionalidades de Zsh.

Windows 11

Para los usuarios de Windows 11 que deseen utilizar Zsh, se recomienda instalar el Subsistema de Windows para Linux (WSL) y una distribución de Linux compatible. Una vez instalado WSL y la distribución de Linux deseada, Zsh se puede instalar desde el gestor de paquetes de la distribución de Linux elegida.

Referencias

Cheatsheet

En la recomendadísima Ultimate Resource List encontrarás una estupenda Cheatsheet. Resalto las entradas relacionadas con zsh:

  • Shells
    • Zsh - es un shell diseñado para uso interactivo, aunque también es un poderoso lenguaje de scripting.
    • Oh My ZSH! - es el mejor marco de trabajo para gestionar tu configuración de Zsh.
  • Plugins para shell
    • zsh-autosuggestions - Autosugestiones al estilo de Fish para Zsh.
    • zsh-syntax-highlighting - Resaltado de sintaxis al estilo del shell Fish para Zsh.
    • Awesome ZSH Plugins - Una lista de marcos de trabajo, plugins, temas y tutoriales para ZSH.
  • Gestores
    • tmux - es un multiplexor de terminales, permite cambiar fácilmente entre varios programas en un mismo terminal.



Al hacer la transición de Bash a Zsh, no solo estás adoptando una herramienta más poderosa y versátil, sino que también estás abriendo las puertas a una experiencia en la línea de comandos más eficiente y adaptable. Con sus características avanzadas y su activa comunidad de desarrolladores, Zsh se posiciona como la opción ideal para usuarios que buscan maximizar su productividad y control en entornos estilo unix.