zsh: Una shell interactiva más amigable para el usuario

DragonJAR 336x280 zsh: Una shell interactiva más amigable para el usuario

zshg zsh: Una shell interactiva más amigable para el usuario

Hace un par de días estaba leyendo en la documentación de Gentoo y ví uno que hablaba la instalación de zsh. Umm, ni idea que era así que a googlear un poco sobre el tema. Según la Wikipedia:

Zsh es un intérprete de comandos, también conocido como shell, para sistemas operativos basados en Unix, como por ejemplo GNU/Linux. La primera versión de la Zsh fue escrita por Paul Falstad en 1990 cuando era un estudiante en la Princeton University.

La Zsh se diseñó para poder ser usada interactivamente, muchas de las características principales de otras shells de Unix como, bash, ksh, o tcsh le han sido incorporadas y además posee características propias originales.

Ahora bien, ¿qué es lo que hace que esta shell sea mejor que las otras? y ¿por qué debería reemplazar bash, si funciona tan bien?

Sobre Zsh

Zsh incorpora muchísimas más capacidades que otras shells (como bash, ksh, tcsh) y al ser interactiva mejora significatívamente la experiencia del usuario. Algunas de sus características:

1. Compatibilidad: Es complétamente compatible con bash, de manera que podrás hacer las cosa tal como las hacías antes sin tener que aprender absolútamente nada; todo con el agregado que proporciona zsh. Si escribes scripts, debes saber que también son compatibles con zsh.

2. Completado de comandos: No, no me refiero al que trae bash por defecto. Es una versión bastante mejorada; puedes hacer cosas como:

  • Escribir un comando y dejar que te liste los posibles parámetros a utilizar y su respectiva explicación
  • Presentar sugerencias en un menú por el que puedes navegar con el teclado
  • En adición a los resultados exactos también puede mostrar resultados parecidos.
  • Mostrar opciones incluso para complejos comandos virtuales.

zsh1j zsh: Una shell interactiva más amigable para el usuario

zsh2m zsh: Una shell interactiva más amigable para el usuario

3. Autocorreción de errores: En caso de que escribas mal un comando zsh tratará de corregirlo automáticamente y preguntarte si eso es lo que quieres zsh: correct 'palidus' to 'paludis' [nyae]?

4. Compartir el historial entre sesiones: Al tener varias sesiones de zsh al mismo tiempo puedes hacer uso del historial con los comandos que has ejecutado entre una y otra.

5. Modo-perezoso: Permite hacer cosas como "README" en vez de "less README" ó "Descargas/" en vez de "cd Descargas/".

6. Poderoso englobamiento: Es posible hacer cosas como ls work[4-17].odt en vez de ls work*.odt.

7. Muchísimas más!

Instalación de Zsh

En caso de que hayas quedado convencido de la superioridad de Zsh y quieras probarlo, puedes hacer la instalación con el gestor de paquetes que uses; segúramente ya se encuentre en los repositorios. Yo lo haré desde mi Gentoo:

emerge -av zsh zsh-completion

Una vez instalado ejecutamos zsh para abrir una sesión. Al menú que nos aparece le decimos quit que luego podemos generar el archivo .zshrc con las opciones que nos interesen. Si queremos cambiar la apariencia del prompt:

autload -U promptinit
promptinit

Para ver los estilos disponibles, escribimos prompt -p. El color azul con blanco de los pantallazos que he puesto de mi shell lo he seleccionado con prompt adam1.

Hay un sinfín de opciones por explorar, la documentación de ZSH contiene todo lo necesario para que te puedas familiarizar con esta shell.

En caso de que te haya gustado y quieras dejarla como shell por defecto:

# usermod -s /bin/zsh usuario

Nota: Si no te funcionan las teclas Fin e Inicio en la shell, agregando lo siguiente a tu ~/.zshrc podrás solucionarlo:

case $TERM in
xterm)
bindkey '\eOH' beginning-of-line
bindkey '\eOF' end-of-line
bindkey '\e[2~' overwrite-mode
bindkey '\e[5~' beginning-of-buffer-or-history
bindkey '\e[6~' end-of-buffer-or-history
;;
aixterm)
# similar commands but with aixterm sequences
;;
# and so on for other terminal types
esac

Recuerde hacer source ~/.zshrc para que haga uso de la información agregada.

Enlaces:


Si te ha gustado el post, compartelo y ayudanos a crecer.

Unete a nuestra Fanpage Siguenos en Twitter

Autor: Cortex

Compartir este Artículo
  • http://gedece.blogspot.com gedece

    Suena muy bién, como un shell bash con esteroides. Va a haber que probarlo.

  • Pingback: zsh: Una shell interactiva más amigable para el usuario « Soft-Libre()

  • http://www.hablarmierda.net Pratt

    Zsh es una excelente shell.

    De todas formas en bash tambien se puede habilitar algunas cositas para ponerle mas picante al asunto.

    Por ejemplo, para habilitar autocorreccion puedes escribir el siguiente comando en tu .bashrc
    shopt -s cdspell

    shopt es un comando que poca gente usa, pero que sirve muchisimo para extender la funcionalidad de BASH.

    Y bueno, como una leve correccion, bash tambien permite hacer el “ls work[4-17].odt”.
    Intentalo:


    [pratt@parsiphae ~]$ touch casa{1,2,3,4,5,6}.txt
    [pratt@parsiphae ~]$ ls casa[1-2].txt
    casa1.txt casa2.txt
    [pratt@parsiphae ~]$ ls
    casa1.txt casa2.txt casa3.txt casa4.txt casa5.txt casa6.txt
    [pratt@parsiphae ~]$ bash --version
    GNU bash, version 3.1.17(2)-release (i486-slackware-linux-gnu)
    Copyright (C) 2005 Free Software Foundation, Inc.

    Salutaciones