Definición
Z shell (o simplemente zsh) es un potente intérprete de comandos para sistemas operativos de tipo Unix, como por ejemplo los BSD o GNU/Linux. La primera versión de zsh fue escrita por Paul Falstad en 1990, cuando era estudiante en la Universidad de Princeton.
En sistemas *NIX nos encontramos por defecto BASH como SHELL por defecto y ciertamente BASH es un shell bastante potente, aún así ZSH introduce ciertas mejoras como por ejemplo el autocompletado con la tecla TAB y, lo más importante, es que ZSH es totalmente personalizable.
Instalación de ZSH
La instalación es sumamente sencilla con el gestor de paquetes.
Fedora +19 / CentOS 7
# yum install zsh
Ubuntu
# apt-get install zsh
Luego de tener la distribución de ZSH instalada, debemos asignar el shell por defecto a nuestro usuario, o al usuario que queremos que tenga ZSH, y para eso usamos el comando chsh (change your login shell).
# chsh <usuario>
Changing shell for <usuario>.
New shell [/bin/bash]: /bin/zsh <- Introducimos la ruta hacia ZSH
Al hacer el cambio del shell necesitaremos reiniciar el terminal o el emulador de terminal para que se actualicen los cambios.
Oh my zsh
Por si solo ZSH nos puede parecer algo muy similar a BASH por no decir igual, entonces, para cambiar eso necesitamos agregar/activar funcionalidades, y podemos hacerlo de manera manual uno por uno, o usar Oh my zsh que es una distribución de plugins y configuraciones para ZSH, fácil de instalar y con más de 150 módulos para usar.
Instalación
En cualquier distribución GNU/Linux, BSD e incluso en Mac OS X la instalación es igual, y para la instalación se utiliza la herramienta curl que viene por defecto en la mayoría de las distribuciones GNU/LInux.El primer paso para la instalación es ejecutar el siguiente comando, que descargará el archivo con los comandos shell para la instalación y a través de la tubería (|) se envía ese archivo a sh para su ejecución.
$ curl -L http://install.ohmyz.sh | sh
Al terminar la instalación debemos recargar nuestro archivo de recursos que se encuentra en la ubicación ~/.zshrc (/home/mi_usuario/.zshrc)
~ (tílde – virgulilla de la eñe) se utiliza como atajo para la variable $HOME, dicha variable contiene la ruta hacia la carpeta del usuario.
$ source ~/.zshrc
Plugins
Lo que hace genial a Oh my zsh es su cantidad de plugins que agrega un montón de funcionalidades a nuestro terminal, y se puede encontrar la lista completa de plugins en Github.
Algunos plugins de utilidad
git, gitfast y gitflow: Agregan un autocompletado al comando git, más una cantidad de atajos y abreviaciones para los comandos de uso común como por ejemplo git commit -m “Mensaje”, con el plugin de git se haría de la siguiente manera gcmsg “Mensaje”. Además se agregar autocompletado a GitFlow que es una extensión de git para el fácil manejo de flujos de trabajo de desarrollo usando ramas.
pip: Agrega autocompletado para el gestor de paquetes de Python.
yum: Si usas Fedora/CentOS, amarás este plugin, ya que agregar atajos para la mayoría de las acciones del gestor de paquete.
npm: Si desarrollas en NodeJS este plugin te ayudará mucho con su autocompletado y atajos.
Para habilitar los plugins debemos abrir el archivo ~/.zshrc y en la variable plugins agregamos los nombres de los plugins que deseamos activar.Lista completa de plugins
Temas
Para terminar, Oh my zsh tiene en la distribución más de 100 temas para la terminal, pero en lo particular me agrada mucho el tema Arrow. Mi terminal se ve de la siguiente manera:
Para modificar el tema debemos ir al archivo ~/.zshrc y modificar la variable ZSH_THEME con el nombre del tema.