Shell


Para la mayoría de personas, cuando un informático hace aparición en sus vidas, los ven como a esas personas que para hacer funcionar cualquier cosa, se sientan delante de la pantalla y se ponen a teclear cosas. Es decir, que todo lo que hacemos, si no es de la Shell (o también conocida como la linea de comandos) no somos verdaderos informáticos. Algo de razón tienen, pero realmente ¿Es tan importante utilizar la Shell?

Exactamente una Shell no deja de ser una aplicación mas del Sistema Operativo, pero tiene ciertas particularidades, entre las mas importantes, es la primera que se ejecuta cuando el usuario inicia sesión. Puede ejecutar otras aplicaciones tanto en segundo plano como compilar el Kernel de Linux, para que podamos realizar otras tareas o en primer plano, como por ejemplo un juego.

Para definir la importancia de que sea el primer programa que se ejecuta al inicio de sesión debemos remontarnos al inicio del sistema. Resumiendo, lo que primero que hacemos es pulsar el botón de encendido de nuestra máquina (O mediante Wake On LAN). La BIOS entonces tomará control del hardware, dependiendo de cómo este configurado buscará un dispositivo que contenga un MBR con el que inciar, puede ser un disco duro, un disco o un pendrive. Este a su vez apuntará a una partición que contenga un cargador de arranque, en Linux es utilizado comúnmente GRUB o LILO. Y lo primero que hará es cargar el Kernel, que desplegará todo el resto de programas gracias al proceso init. Después de realizar los procesos de inicio, llega la pantalla de acceso en el que debemos introducir usuario y contraseña para que haga la comprobación de credenciales, comparándolo con el contenido de /etc/passwd. Si es correcto lanza la aplicación /bin/bash



Al final la Shell es un programa más, y como todo programa, existen multitud de versiones y de variedades. La más famosa es Bash ya que viene incluida en la mayoría de distribuciones Linux, pero también en Mac OS X y ha sido portado a Windows gracias  a Cygwin.

Ken Thompson a la izquierda
La primera Shell que se  publicó fue la Thompson Shell,  desarrollada por Ken Thompson en 1971. Es una Shell muy sencilla, podía hacer redirecciones y pipes, como por ejemplo sacar la salida de un programa hacia un fichero.


Stephen Bourne
En 1977 apareció Bourne Shell, desarrollada por Stephen Bourne. Fue mayormente conocida como sh,consiguió desbancar a la Thompson Shell. Como principal caracteristica es que está orientada a la programación y tenía la capacidad de enviar señales (Ctrl + c). Aún se sigue utilizando como la Shell por defecto del usuario root.


Bill Joy
A pesar de ser escrito en 1978, C Shell, no se popularizó hasta los 80 y como indica su nombre está escrita en C. Bill Joy, además de escribir esta Shell múltiplataforma es el fundador de Sun Microsystem. Como mejora a destacar es el historial de comandos, alias y autocompletado de comandos, que sin duda fue la killer feature de esta Shell.

Tenex C Shell, también conocida por tcsh es una Shell compatible con C Shell. Desarrollada por Ken green en 1975. Mejoraba el autocompletado, incorpora UNICODE para la codificación de caracteres. Es la shell por defecto de tipo BSD, la FreeBSD, DragonflyBSD y DesktopBSD. Es la favorita por muchos programadores.

Korn Shell se presentó en 1983, por AT&T Bell Laboratories. Respeta el estándar de leguaje de Shell (POSIX). Durante 17 años fue propietario, y fue en el año 2000 cuando se liberó bajo una licencia pública de AT&T, pero en el 2005 se ha licenciado bajo Common Public Licens. Es por esto que se crearon alternativas como pdksh, mksh... pdksh es la shell por defecto de OpenBSD. Ha dado pie a otros proyectos, otros proyectos tomaron este código para pequeños proyectos, pues es muy compatible con otros. mksh es usada en Android.

Brian Fox
La Shell más famosa es Bash, que proviene de Bourne-again shell, publicada en 1989 por Brian Fox. Tiene las ideas de todas las anteriores, pero permite programar funciones. Viene con la mayoría de distribuciones GNU/Linux y  Mac OS X 10.

Z Shell o zsh, es la Shell más moderna, escrita en 2007. Es el Proyecto de doctorado de Paul Flastad,  y el nombre viene en homenaje a su profesor Zhong Shao de la universidad de Princenton, pues su nombre de login es zsh. Destaca por la correción automática, es completamente configurable. Muy utilizada por programadores.

Después de dar un repaso por varias Shell, ¿Cómo podemos utilizarlas? Muy fácil, simplemente nos lo instalamos desde los repositorios. Por ejemplo, si queremos instalar zsh desde una distribución basada en Debian:

sudo apt-get update && sudo apt-get install zsh
 Una vez instalado, lanzamos la Shel mediante el comando zsh. Pero si queremos saber que Shell se ejecuta con el sistema, basta con escribir:


ls -l /bin/sh

0 comentarios:

Publicar un comentario