Cuando trabajamos desde una ventana de terminal de Linux (o de *BSD, o de WSL, etc), en realidad estamos trabajando con dos tipos de software: el emulador de terminal (Xterm, Konsole, Windows Terminal, etc) y el intérprete de comandos ( o 'shell'): el programa responsable de convertir en instrucciones el texto que tecleamos.
Por defecto, en la mayoría de distribuciones Linux, incluyendo las distintas opciones disponibles desde WSL2, el intérprete de comandos que nos encontraremos será el popular y fiable Bash.
Un vistazo a Zsh
Ahora bien, cada gana mayor popularidad una alternativa a Bash llamada Z Shell o Zsh (de hecho, las últimas versiones de macOS ya lo incluyen por defecto).
Zsh es compatible a grandes rasgos con Bash, pero más personalizable, y con particularidades tanto en la forma en que interactuamos con la shell, como en la sintaxis de los scripts. Repasemos las ventajas de usar Zsh:
- Permite vincular extensiones de archivo con un programa: La existencia de alias de sufijo permite que, tras crearlo ("alias -s txt="vim""), cada vez que tecleemos el nombre de un fichero de texto en la terminal se abra automáticamente el programa asociado (en este caso, Vim).
Globbing: El uso de caracteres comodín para nombres de archivo. De este modo, si tecleamos algo como "vim /u/l/b/d" y pulsamos el tabulador, se convertiría automáticamente en el comando "vim /usr/local/bin/destroy.sh"
Navegación inteligente: ¿Quieres cambiar de directorio usando 'cd'? Pues escribe el comando, dale al tabulador y elige a cuál quieres ir. O mejor: escribe sólo una parte del nombre del directorio al que quieres ir, y Zsh identificará a cuál te refieres.
Comandos con corrección ortográfica: Si escribimos "cd Súperdirectorio" allí donde sólo hay una carpeta llamada "superdirectorio", el programa sabrá que nos referimos al primero.
Historial de comandos mejorado: Bash permite ir retrocediendo cronológicamente en el historial de comandos, pero Zsh permite, además, empezar a escribir un comando y navegar exclusivamente entre aquellos que coincidan con lo ya escrito.
Oh My Zsh!
Pero no todo acaba con la instalación de Zsh: ese es sólo un primer paso que abre la puerta a nuevas opciones de personalización. Y ahí es donde entra el útil y popular framework Oh my Zsh!.
Oh My Zsh! cuenta con una amplia y activa comunidad de usuarios y desarrolladores que no dejan de producir y mejorar toda clase de temas para mejorar el aspecto de nuestra terminal, y de plugins para ampliar sus funcionalidades.
Así, por ejemplo, el plugin 'Git' crea automáticamente varios alias para usar este comando, convirtiendo "git pull" en 'gl' o "git push" en 'gp'; mientras que el 'Zsh-syntax-highlighting' colorea los comandos correctamente escritos en verde, y los erróneos en rojo.
Y si estás convencido de que uno marcado en rojo debería funcionar, quizá deberías instalar el plugin 'Command-not-found', para que te sugiera qué paquetes instalar.
Y si aún no estás convencido, echa un vistazo a cómo se verá tu terminal con algunos de los themes más populares de Oh My Zsh!:
Cómo instalar Zsh y Oh My Zsh!
Primero comprueba qué interprete de comandos estás usando en este momento. Esto se hace introduciendo el siguiente comando en el mismo:
ps -p $$
Si la respuesta no es 'zsh', tendremos que instalarlo. Eso, en las distribuciones basadas en APT, como Debian, Ubuntu y sus derivadas, se logra con el siguiente comando:
sudo apt update && sudo apt install zsh
A continuación, deberemos indicar al sistema que queremos utiliza zsh como shell por defecto. Así:
chsh -s $(which zsh)
¿Y para instalar el framework? Fácil, copia y pega lo siguiente:
sudo apt install git curl -y
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
Una vez instalado Oh My Zsh!, se creará un archivo de configuración oculto en tu carpeta de usuario (~/.zshrc). Sólo tienes que abrirlo con tu editor de texto favorito y, ahí donde pone 'plugins=', poner entre paréntesis aquellos que te interesan, así:
plugins=(git zsh-syntax-highlighting command-not-found)
En ese mismo archivo, deberemos editar la sección 'ZSH_THEME=' para indicar el theme que queremos usar.
Aunque, cuidado: cada theme puede necesitar algún paso previo diferente (como la instalación de alguna tipografía), por lo que deberás comprobarlo en cada caso.
Ver 12 comentarios