Shells de Unix

ago. 13, 2011·
Julio Batista Silva
Julio Batista Silva
· 3 min de lectura

Un Shell de Unix, en el sentido que usaré aquí, es un intérprete de línea de comandos que provee una interfaz para que el usuario opere sistemas Unix o Unix-like. A lo largo de los años surgieron varios shells con distintas características. Aquí comento brevemente sobre los más conocidos y dejo tips para configurar el shell que uso.

En el siguiente diagrama están los seis shells más populares organizados de forma que un shell de un nivel inferior extiende las funciones del shell de arriba. Shells de ramas distintas son incompatibles.

csh (C shell)      sh (Bourne shell)
      |               /         \
      |               |     ksh (Korn shell)
      |               |          |
tcsh (TC shell)      bash    zsh (Z shell)
  1. C shell (csh)

    Creado por Bill Joy cuando era estudiante en UC Berkeley; lanzado en 1978 como parte de BSD. Fue popular para scripting, ya que su sintaxis recuerda a C, pero es criticado por defectos en su implementación.

  2. TC shell (tcsh)

    Tcsh es esencialmente C Shell con extras como tab completion, editor de comandos y mejor manejo del historial.

  3. Bourne Shell (sh)

    El shell tradicional desarrollado por Stephen Bourne en Bell Labs y lanzado en 1977. Fue el shell por defecto en Unix7 y versiones más recientes aún se usan mucho hoy.

  4. Bourne-again Shell (Bash)

    Escrito por Brian Fox para el proyecto GNU; lanzado en 1989 para sustituir a Bourne Shell y añadir varias funcionalidades. Muy usado por ser el shell por defecto en muchas distros Linux y en macOS.

  5. Korn shell (ksh)

    Desarrollado por David Korn en AT&T Bell Labs y lanzado en 1983. Muy popular por ser totalmente compatible con Bourne Shell y traer varias funciones más, algunas tomadas de C Shell.

  6. Z shell (zsh)

    Escrito en 1990 por Paul Falstad (Universidad de Princeton), es el shell más completo de esta lista. Puede considerarse una extensión de Bourne Shell con mejoras basadas en bash, ksh, tcsh y además funcionalidades propias, incluido corrector ortográfico.

Como Zsh es mi shell favorito, escribiré más sobre su instalación y configuración (en Arch Linux).

  1. En /etc/shells, verifica la lista de shells instalados. Si zsh no aparece, instálalo.

    $ sudo pacman -S zsh
    
  2. Prueba la instalación y configura opciones básicas

    $ zsh
    
  3. Haz Zsh tu shell por defecto (aplica tras nuevo login).

    $ chsh -s $(which zsh)
    
  4. Edita el archivo principal de configuración, ~/.zshrc.

    Una forma fácil es con Oh My ZShell:

    git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
    cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
    chsh -s /bin/zsh
    

    Dejo una copia de mis configuraciones en https://github.com/jbsilva/dotfiles.


Enlaces

Julio Batista Silva
Autores
Senior Cloud Developer
comments powered by Disqus