Skip to content

@xeBuz

zsh, una shell con Z de 'ZOMG que buena shell

bash, zsh, linux2 min read

Z Bash, o mejor zsh, es un interprete de comándos (shell), excelente alternativa al Bash que viene por defecto (Bourne-again Shell). Como mejoras, se destaca:

  • Mejorado en el autocompletado.
  • Muy customizable.
  • Corrección de tipeo.
  • Mejor manejo de funciones.
  • Es una shell mas hipster (?). (En realidad no, tiene mas de 20 años, y se usa bastante...pero no viene por defecto)

La instalación es simple, son unos poco kilobytes y seguro esta disponible en la distro que usen. En mi caso basta con:

1pacman -S zsh

Una vez instalada, debería figurar en el archivo /etc/shells, para setearla como shell por defecto tenemos que correr:

1chsh -s $(which zsh)

La primera vez que ingresan, la shell les sugiere que ejecuten zsh-newuser-install, lo cual es recomendable, da una pequeña pero útil instroducción, con asistentes de configuración.

Ahora sí, veamos algunas cosas que tiene para ofrecernos...

Autocompletado de parametros

Antes pensaba que bash era buena con el autocompletado, claro que viniendo del cmd de Windows cualquier cosa es mejor; zsh vino a abrir una nueva puerta a la comodidad en la línea de comandos. Es rápidisimo y funciona con todos* los comandos, sólo pongan el - y para que liste las opciones.

Historial de bash, compatible con zsh

Una de las primeras cosas que necesité migrando de shell fue el historial. Pueden copiar ~/.bash_history _a ~/.histfile y van a tener lo mismo que bash, imprescindible si usan Control + R. Tambien es compatible el archivo ~/.bashrc con el ~/.zshrc y el ~/.bashprofile con ~/.zprofile, pero en mi caso preferí hacer copias a mano de lo que necesitaba. Sólo cuestión de gustos. Además, permite compartir el historial entre sesiones, muy comodo si entramos desde ssh y localmente a una PC.

zsh-yaourt

Este paquete está en el AUR, y si, adivinaron, agrega autocompletado de paquetes a yaourt, es increiblemente útil, a lo _apt-get _si quieren una comparación, es muy bueno y rápido.

Paginador 'inteligente'

No se si Paginador es la palabra apropiada, tampoco se si inteligente sería el adjetivo indicador. Todos somos unos vagos, por eso usamos la terminal, que mejor que escribir cat LEAME, cat LEAME | less, si, escribir solo LEAME, bueno, zsh nos entiende, así que funciona así.

Diferentes "key bindings"

En este caso, zsh los meneja de otra forma, y es frustrante mover las fechas de dirección y no obtener lo que pretendemos. No me resultó cómodo (porque no le dí tiempo a ver como funcionaba, ya estoy viejo para algunas cosas). Para dejarlo funcionando "a lo Bash", tienen que editar el archivo ~/.zshrc

1bindkey "e[1~" beginning-of-line # Home
2 bindkey "e[4~" end-of-line # End
3 bindkey "e[5~" beginning-of-history # PageUp
4 bindkey "e[6~" end-of-history # PageDown
5 bindkey "e[2~" quoted-insert # Ins
6 bindkey "e[3~" delete-char # Del
7 bindkey "e[5C" forward-word
8 bindkey "eOc" emacs-forward-word
9 bindkey "e[5D" backward-word
10 bindkey "eOd" emacs-backward-word
11 bindkey "ee[C" forward-word
12 bindkey "ee[D" backward-word
13 bindkey "e[Z" reverse-menu-complete # Shift+Tab
14 # for rxvt
15 bindkey "e[7~" beginning-of-line # Home
16 bindkey "e[8~" end-of-line # End
17 # for non RH/Debian xterm, can't hurt for RH/Debian xterm
18 bindkey "eOH" beginning-of-line
19 bindkey "eOF" end-of-line
20 # for freebsd console
21 bindkey "e[H" beginning-of-line
22 bindkey "e[F" end-of-line

Correccion de typos

Para los dislexicos como uno, esto es muy bueno, nos autocorrige directorios, comandos, archivos... probandolo es muy bueno, no perfecto, pero ayuda a la hora de escribir rapido.

Links recomendados y fuentes para el post