Shells de Unix

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

Un shell de Unix, en el sentido que le daré aquí, es un intérprete de línea de comandos que ofrece una interfaz para que el usuario maneje sistemas Unix o similares. Con los años se han desarrollado varios shells con características distintas. Aquí comento brevemente los más conocidos y doy algunos consejos para configurar el que uso yo.

En el siguiente diagrama están los seis shells más populares, ordenados de forma que un shell de un nivel inferior amplía las funciones del que está encima. Los 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 la UC Berkeley, se publicó en 1978 como parte de BSD. Fue popular para escribir scripts, porque su sintaxis recuerda al lenguaje C, aunque se le critican defectos de implementación.

  2. TC shell (tcsh)

    Tcsh es básicamente el C Shell con algunas funciones extra, como autocompletado con tabulador, editor de comandos y mejor manejo del historial.

  3. Bourne Shell (sh)

    Es el shell clásico, desarrollado por Stephen Bourne en Bell Labs y publicado en 1977. Fue el shell por defecto de Unix7 y sus versiones más recientes se siguen usando mucho hoy.

  4. Bourne-again Shell (Bash)

    Escrito por Brian Fox para el proyecto GNU, se publicó en 1989 para sustituir al Bourne Shell y añadir varias funciones. Se usa muchísimo por ser el shell por defecto de varias distribuciones de Linux y de Mac OS X.

  5. Korn shell (ksh)

    Lo desarrolló David Korn en AT&T Bell Labs y se publicó en 1983. Es muy popular por ser totalmente compatible con el Bourne Shell y tener otras muchas funciones, algunas copiadas del C Shell.

  6. Z shell (zsh)

    Lo escribió en 1990 Paul Falstad, entonces estudiante de la Universidad de Princeton, y es el shell más completo de esta lista. Puede verse como una extensión del Bourne Shell con varias mejoras tomadas de bash, ksh y tcsh, además de funciones propias, entre ellas un corrector ortográfico.

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

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

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

    $ zsh
    
  3. Pon Zsh como tu shell por defecto (se aplica en el siguiente inicio de sesión).

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

    Una forma cómoda de editarlo 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
    

    Yo guardo una copia de mi configuración en https://github.com/jbsilva/dotfiles.


Julio Batista Silva
Autores
Senior Cloud Developer

Soy un ingeniero informático brasileño radicado en Alemania, apasionado por la tecnología, la ciencia, la fotografía y los idiomas.

Llevo programando cerca de dos décadas, explorando desde apps móviles y desarrollo web hasta aprendizaje automático. Hoy me enfoco en SRE en la nube e ingeniería de datos.

Soy voluntario en las comunidades de open source y Python, ayudando a organizar PyCon DE y PyData Berlin, dando mentorías y contribuyendo con código y traducciones.

En mi blog comparto consejos de Linux, guías de configuración y notas personales que escribí como referencia futura. Espero que también sean útiles para otras personas. El contenido está disponible en varios idiomas.

Visita mi galería para ver algunas de mis fotografías.

Fuera del teclado, me encontrarás en conciertos, tocando el clarinete, en bicicleta, buceando o explorando nuevos lugares, culturas y cocinas.

¡Siempre feliz de conectar! 🙂

comments powered by Disqus