< Back | Wikipedia | Home | Light Mode


Shell de Unix


Una shell de Unix es el termino usado en informatica para referirse al interprete de comandos de los sistemas operativos basados en Unix y similares, como GNU/Linux, y que es su interfaz de usuario tradicional. Mediante las instrucciones que aporta el interprete, el usuario puede comunicarse con el nucleo y por extension, ejecutar dichas ordenes, asi como herramientas que le permiten controlar el funcionamiento de la computadora. Por ello, en ingles se le denomino asi, shell, que puede ser traducido como <>, porque es la envoltura visible del sistema informatico.

Los comandos que aportan los interpretes, pueden usarse a modo de guion si se escriben en ficheros ejecutables denominados shell-scripts, de este modo, cuando el usuario necesita hacer uso de varios comandos o combinados de comandos con herramientas, escribe en un fichero de texto, marcado como ejecutable, las operaciones que posteriormente, linea por linea, el interprete traducira al nucleo para que las realice. Sin ser un script de shell estrictamente un lenguaje de programacion, al proceso de crear scripts de shell se le denomina programacion shell o en ingles, shell programming o shell scripting.

En el sentido mas generico del termino, shell significa cualquier interprete que los usuarios usen para escribir comandos. Su etimologia proviene del uso natural de consolas en computadores funcionando bajo unix antano, cuando los usuarios conectaban al computador central, lo hacian mediante consolas, (shells) por las cuales a traves de un interprete, hacian inicio de sesion y manejaban la computadora principal. Posteriormente, con la proliferacion de los computadores personales y su filosofia monousuario, un computador por usuario (entiendase lo contrario de la filosofia inicial de Unix, un computador, muchos usuarios conectados por terminales), se desarrollo un software que emulase las caracteristicas principales de las consolas fisicas, a modo de poder seguir usandolas como clientes en un computador o nucleo que comprendiera la convencion estandar usada para configurar y llevar a cabo tareas de administracion de emergencia con servidores basados en Unix.

Los usuarios de Unix y similares, pueden elegir entre distintos shells (programa que se deberia ejecutar cuando inician la sesion, vease GNU bash, ash, csh, Zsh, ksh, tcsh). Las interfaces de usuario graficas para Unix, como son GNOME, KDE y Xfce pueden ser llamadas shells visuales o shells graficas. Por si mismo, el termino shell es asociado usualmente con la linea de comandos. En Unix, cualquier programa puede ser un shell de usuario. Los usuarios que desean utilizar una sintaxis diferente para redactar comandos, pueden especificar un interprete diferente como su shell de usuario.

El termino shell tambien hace referencia a un programa particular, tal como el Bourne shell, sh. El Bourne shell fue el shell usado en las primeras versiones de Unix y se convirtio en un estandar de facto; todos los sistemas similares a Unix tienen al menos un shell compatible con el Bourne shell. El programa Bourne shell se encuentra dentro de la jerarquia de archivos de Unix en /bin/sh. En algunos sistemas, tal como BSD, /bin/sh es un Bourne shell o un equivalente, pero en otros sistemas como muchas distribuciones de Linux, /bin/sh es un enlace simbolico a un shell compatible con mas caracteristicas (como Bash). POSIX especifica su shell estandar como un subconjunto estricto del Korn shell.

Pueden dividirse en cuatro categorias: tipo Bourne, tipo consola C, no tradicional e historica.

  • fish, una shell amigable e interactiva, lanzada por primera vez en 2005.
  • mudsh, una shell inteligente al estilo de los videojuegos que opera como un MUD.
  • zoidberg, una shell modular escrita en Perl, configurada y de operacion completamente en Perl.
  • rc, el shell por defecto de Plan 9 from Bell Labs y Version 10 de Unix escrita por Tom Duff. Se han hecho ports para Inferno y para sistemas operativos basados en Unix.
  • es shell (es), una shell compatible con RC escrita a mediados de los 90.
  • scsh (Scheme Shell)

Un shell lee archivos de configuracion en multiples circunstancias bajo diferentes dependencias de la shell. Esta tabla muestra los archivos de configuracion de las shells mas populares:

Explicacion:

  • "no" significa que la shell no leera el archivo en absoluto.
  • "si" significa que el archivo es siempre leido por el shell.
  • "login" significa que el archivo es leido si la shell es una shell de sesion (loging shell).
  • "n/login" significa que el archivo es leido si la shell no es una shell de sesion.
  • "int." significa que un archivo es leido si es un shell interactivo.
  • "i.login" significa que un archivo es leido si la shell es de sesion interactiva.

Dentro del conjunto de sistemas operativos Microsoft Windows, el analogo son los programas command.com, o cmd.exe para sistemas operativos basados en Windows NT, y Windows PowerShell introducido con Windows Server 2008.

  • Ellie Quigley (2001). <>. Unix Shells by Example. Prentice Hall PTR. ISBN 0-13-066538-X. -- Historia de varios shells, los usos y las responsabilidades de una shell en Unix.
Buscar Cambiar a la tabla de contenidos Shell de Unix 33 idiomas Anadir tema

Source: es.wikipedia.org