Shell de UNIX

Shell de UNIX
Este artículo trata sobre el intérprete típico de Unix. Para otros usos de este término, véase terminal (informática) .
Pantalla durante una sesión muestra Bash, tomada en Gentoo Linux.

Una Shell de Unix o también shell, es el término usado en informática para referirse a un intérprete de comandos, el cual consiste en la interfaz de usuario tradicional de los sistemas operativos basados en Unix y similares como GNU/Linux. Mediante las instrucciones que aporta el intérprete, el usuario puede comunicarse con el núcleo y por extensión, ejecutar dichas órdenes, así como herramientas que le permiten controlar el funcionamiento de la computadora. Los comandos que aportan los intérpretes, 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, línea por línea, el intérprete traducirá al núcleo para que las realice. Sin ser un shell estrictamente un lenguaje de programación, al proceso de crear scripts de shell se le denomina programación shell o en inglés, shell programming o shell scripting.

En el sentido más genérico del término, shell significa cualquier intérprete que los usuarios usen para escribir comandos. Su etimología proviene del uso natural de consolas en computadores funcionando bajo unix antaño, cuando los usuarios conectaban al computador central, lo hacían mediante consolas, (shells) por las cuales a través de un intérprete, hacían inicio de sesión y manejaban la computadora principal. Posteriormente, con la proliferación de los computadores personales y su filosofía monousuario, un computador por usuario (entiéndase lo contrario de la filosofía inicial de Unix, un computador, muchos usuarios conectados por terminales), se desarrolló un software que emulase las características principales de las consolas físicas, a modo de poder seguir usándolas como clientes en un computador o núcleo que comprendiera la convención estándar usada para configurar y llevar a cabo tareas de administración de emergencia con servidores basados en Unix. Los usuarios de Unix y similares, pueden elegir entre distintos shells (programa que se debería ejecutar cuando inician la sesión, véase bash, ash, csh, Zsh, ksh, tcsh). Las interfaces de usuario gráficas para Unix, como son GNOME, KDE y Xfce pueden ser llamadas shells visuales o shells gráficas. Por sí mismo, el término shell es asociado usualmente con la línea 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 intérprete diferente como su shell de usuario.

El término shell también 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 convirtió en un estándar 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 jerarquía 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 simbólico a un shell compatible con más características (como Bash). POSIX especifica su shell estándar como un subconjunto estricto del Korn shell.

Contenido

Otros tipos de shells

Categorías de shell

Pueden dividirse en cuantro categorías: tipo Bourne, tipo consola C, no tradicional e histórica.

Compatibles con Bourne shell

  • Bourne shell (sh) -- Escrita por Steve Bourne, cuando estaba en Bell Labs. Se distribuyó por primera vez con la Version 7 Unix, en 1978, y se mejoró con los años.
  • Almquist shell (ash) -- Se escribió como reemplazo de la shell Bourne con licencia BSD; la sh de FreeBSD, NetBSD (y sus derivados) están basados en ash y se han mejorado conforme a POSIX para la ocasión.
  • Bourne-Again shell (bash) -- Se escribió como parte del proyecto GNU para proveerlo de un superconjunto de funcionalidad con la shell Bourne.
  • Debian Almquist shell (dash) -- Dash es un reemplazo moderno de ash en Debian.
  • Korn shell (ksh) -- Escrita por David Korn, miestras estuvo en Bell Labs.
  • Z shell (zsh) -- Considerada como la más completa: es lo más cercano que existe en abarcar un superconjunto de sh, ash, bash, csh, ksh, y tcsh.

Compatibles con la shell de C

  • C shell (csh) escrita por Bill Joy, mientras estuvo en la University of California, Berkeley. Se distribuyó por primera vez con BSD en 1979.
  • TENEX C shell (tcsh).

Otros o exóticos

  • fish, una shell amigable e interctiva , 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 operación 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)

Archivos de configuración para shells

Un shell lee archivos de configuración en múltiples circunstancias bajo diferentes dependencias de la shell. Esta tabla muestra los achivos de configuración de las shells más populares:

sh ksh csh tcsh bash zsh
/etc/.login no no login login no no
/etc/csh.cshrc no no no yes no no
/etc/csh.login no no no login no no
~/.tcshrc no no no yes no no
~/.cshrc no no yes yes no no
~/.login no no login login no no
~/.logout no no login login no no
/etc/profile login login no no i.login no
~/.profile login login no no login no
~/.bash_profile no no no no login no
~/.bash_login no no no no login no
~/.bashrc no no no no n/login no
/etc/zshenv no no no no no yes
/etc/zprofile no no no no no login
/etc/zshrc no no no no no int.
/etc/zlogin no no no no no login
/etc/zlogout no no no no no login
~/.zshenv no no no no no yes
~/.zprofile no no no no no login
~/.zshrc no no no no no int.
~/.zlogin no no no no no login
~/.zlogout no no no no no login

Explicación:

  • "no" significa que la shell no leerá el archivo en absoluto.
  • "yes" significa que el archivo es siempre leído por el shell.
  • "login" significa que el archivo es leído si la shell es una shell de sesión (loging shell).
  • "n/login" significa que el archivo is leído si la shell no es una shell de sesión.
  • "int." significa que un archivo es leído si es un shell interactivo.
  • "i.login" significa que un archivo es leído si la shell es de sesión interactiva.

Histórico

  • Thompson shell (sh) -- La primel shell Unix fue escrita por Ken Thompson en Bell Labs. Distribuida con la versión 1 hasta la 6 de Unix, desde 1971 a 1975. Es considerada muy rudimentaria por los estandarés modernos y no es usada en sistemas actuales. Existen algunas partes disponibles de la misma: Ancient UNIX Systems.
  • PWB shell o Mashey shell (sh) -- Una versión de la shell de Thompson, creada por John Mashey y otros, mientras estuvieron en Bell Labs. Distribuida con el Programmer's Workbench UNIX, en 1976.

shells no Unix

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

Véase también

Bibliografía

  • Ellie Quigley (2001). «Introduction to UNIX shells». 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.

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Mira otros diccionarios:

  • Unix — (officially trademarked as UNIX, sometimes also written as Unix with small caps) is a computer operating system originally developed in 1969 by a group of AT T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Douglas McIlroy, and… …   Wikipedia

  • Unix-Shell —  die, ein Befehlsprozessor für das Betriebssystem Unix (Shell). Die Unix Shell nimmt Eingaben des Benutzers in einer Kommandozeile entgegen und gibt Meldungen des Systems aus. Ähnlich wie früher Batch Dateien unter DOS kann man auch in der Unix… …   Universal-Lexikon

  • UNIX — Ken Thompson und Dennis Ritchie Basisdaten Entwickler …   Deutsch Wikipedia

  • Shell curses — is a terminal control library for Unix like systems, enabling the construction of text user interface (TUI) applications. The purpose of the function library is to provide the shell programmer with the ability to move the cursor to specific… …   Wikipedia

  • Unix — Kommandozeile (Unix Prompt) Basisdaten Entwickler Ken Thompso …   Deutsch Wikipedia

  • Unix-Shell — Die Unix Shell oder kurz Shell (en. Hülle, Schale) bezeichnet die traditionelle Benutzerschnittstelle unter Unix oder unixoiden Computer Betriebssystemen. Der Benutzer kann in einer Eingabezeile Kommandos eintippen, die der Computer dann sogleich …   Deutsch Wikipedia

  • Unix shell — A Unix shell, is a command line shell that provides the traditional user interface for the Unix operating system and for Unix like systems. Users direct the operation of the computer by entering command input as text for a command line… …   Wikipedia

  • Shell (computing) — A shell is a piece of software that provides an interface for users of an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is… …   Wikipedia

  • Shell-Skript — Skriptsprachen (häufig auch Scriptsprachen) sind Programmiersprachen, die vor allem für kleine, überschaubare Programmieraufgaben gedacht sind. Sie verzichten oft auf bestimmte Sprachelemente, deren Nutzen erst bei der Bearbeitung größerer… …   Deutsch Wikipedia

  • Shell — Das Wort Shell (engl. Schale, Muschel) bezeichnet: das Mineralölunternehmen Royal Dutch Shell und seinen britischen Vorgänger „The Shell Transport and Trading Company“ die Eingabe Schnittstelle zwischen Computer und Benutzer, siehe Betriebssystem …   Deutsch Wikipedia

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”