¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Programación shell en Unix/Linux
  3. Introducción
Extrait - Programación shell en Unix/Linux ksh, bash, estándar POSIX (con ejercicios corregidos) (5ª edición)
Extractos del libro
Programación shell en Unix/Linux ksh, bash, estándar POSIX (con ejercicios corregidos) (5ª edición) Volver a la página de compra del libro

Introducción

Definición del shell

El shell es un término general que hace referencia a un programa que tiene como función la de proporcionar la interfaz entre el usuario y el sistema Unix. Es un intérprete de comandos.

Hay varios shells disponibles para las plataformas Unix.

Características de un intérprete de comandos

Los intérpretes de comandos disponibles en los entornos Unix tienen en común las siguientes funcionalidades:

  • Permiten a los usuarios ejecutar los comandos.

  • Proponen un juego de caracteres especiales que permiten desencadenar acciones concretas.

  • Tienen comandos internos y palabras clave mediante algunos de los cuales se puede programar (escritura de scripts de shell).

  • Utilizan archivos de inicialización que permiten a un usuario parametrizar su entorno de trabajo.

Cada shell propone sus propios caracteres especiales, comandos internos, palabras clave y archivos de configuración. Afortunadamente, los intérpretes de comandos más utilizados en la actualidad derivan todos del shell Bourne y tienen,por consiguiente, un cierto número de funcionalidades en común.

Intérpretes de comando (shells)

1. Historia

Bourne shell

El shell considerado más antiguo es el Bourne shell. Fue escrito en los años 1970 por Steve Bourne en los laboratorios AT&T. Además de ejecutar comandos, dispone de funcionalidades de programación. El Bourne shell ofrece menos funcionalidades que sus sucesores, y cada vez se utiliza menos. Algunas plataformas incluso la han eliminado de su sistema.

C-shell

Durante el mismo periodo, Bill Joy inventa el C-Shell (csh), incompatible con el Bourne, pero que ofrece funcionalidades suplementarias, como el histórico de comandos, el control de tareas, así como la posibilidad de crear alias de comandos. Estos tres aspectos se retomarán más tarde en el Korn shell. El C-shell, debido a su incompatibilidad con el Bourne shell, se utilizará poco en el mundo Unix.

Korn shell

En 1983, David Korn retoma el Bourne shell y lo enriquece. Este nuevo intérprete tomará el nombre de Korn shell (ksh). Este último se usará cada vez más, hasta el punto de convertirse en un estándar de hecho. El ksh88 (versión de 1988) es, junto con el Bourne Again shell (ver a continuación), el shell más utilizado actualmente.

En 1993, una nueva versión de Korn Shell ve la luz (ksh93). Presenta una retrocompatibilidad con ksh88, con algunas excepciones.

El Bourne Again shell

La Free Software Foundation propone el Bourne Again shell (bash). Este shell es el intérprete forjado como estándar en los sistemas Linux. Está a su vez disponible en estándar o en descarga para los sistemas Unix. Las últimas versiones del bash tenían los números 4 y 5.

El estándar POSIX

El objetivo del estándar POSIX (Portable Operating System Interface) es ofrecer un estándar válido inter-sistemas operativos....

Shells tratados en este libro

Este libro detalla las funcionalidades de Bourne Again shell y Korn shell (ksh88 et ksh93) y se indica la compatibilidad Bourne shell y POSIX.

Salvo que se especifique lo contrario, las funcionalidades abordadas son compatibles con estos shells (bash, ksh88, ksh93 y Bourne). Cuando no sea así, la lista de shells que soportan la funcionalidad se indicará con una tabla como la siguiente:

ksh

bash

ksh representa a ksh88 y a ksh93.

Los temas específicos del Korn shell 93 o del bash a partir de la versión 4 aparecen resaltados con las siguientes indicaciones:

ksh93

bash4

También se indicará la conformidad con el estándar POSIX para las principales funcionalidades o comandos de este libro:

posix

Convenciones de escritura

El símbolo images/symbol.PNG representa un espacio,
El símbolo images/FLECHE.png representa una tabulación.