Estructuras De Control En Shell
Enviado por memtuan • 15 de Septiembre de 2013 • 1.977 Palabras (8 Páginas) • 382 Visitas
SHELL DE UNIX
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.
Los usuarios de Unix y similares, pueden elegir entre distintos shells (programa que se debería ejecutar cuando inician la sesión). 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; 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.
3
CATEGORÍAS DE SHELL
Pueden dividirse en cuatro categorías: tipo Bourne, tipo consola C, no tradicional e histórica. De las cuales las principales y detalladas dentro de este trabajo serán Bourne y consola c.
BOURNE SHELL
Bourne Shell es un programa informático cuya función consiste en interpretar órdenes. Incorpora características tales como control de procesos, redirección de entrada/salida, listado y lectura de ficheros, protección, comunicaciones y un lenguaje de órdenes para escribir programas por lotes o “scripts”. Fue el intérprete usado en las primeras versiones de Unix y se convirtió en un estándar.
Bourne Shell fue desarrollado por Stephen Bourne, de los Laboratorios Bell de AT&T. Vio la luz en UNIX Versión 7, distribuido a colegios y universidades y en el cual era el intérprete de comandos predeterminado. Sustituyó al Thompson shell, cuyo archivo ejecutable tenía el mismo nombre: sh. Todavía es un intérprete de comandos muy popular para entornos Unix.
Todos los sistemas de tipo Unix tienen al menos un intérprete 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.
Objetivos
Los principales objetivos de Bourne Shell eran aprovechar dos nuevas características clave del núcleo de la versión 7 de Unix:
Listas de parámetros/argumentos para los programas mucho más largas. Su límite se había extendido de 127 a 8192 bytes.
Variables de entorno. Estas permitían pasar mucha información a los programas al ejecutarlos.
4
Esquema de elementos involucrados en una línea de órdenes.
Logros
El Bourne Shell fue el primero en destacar la convención de usar el descriptor de archivo 2 para mensajes de error, permitiendo un control mucho mayor del programa durante la creación del script, manteniendo los mensajes de error separados de la información.
Aunque pretendía ser un intérprete de comandos interactivo, ganó popularidad como lenguaje de comandos por lotes o “scripting”, con la publicación, por parte de Brian W. Kernighan y Rob Pike, de The UNIX Programming Environment. Este fue el primer libro publicado comercialmente que presentaba el shell como un lenguaje de programación en forma de tutorial.
C SHELL
C Shell es un lenguaje de programación, conocido también como csh y que fue desarrollado por Bill Joy en la Universidad de Berkeley, California. Se le considera más idóneo para programadores que Bourne Shell (sh), además de hacer reflejar que la informática se estaba haciendo más interactiva. Hoy día, el original C Shell, no goza de un amplio uso en Unix; ha sido superado por otros Shells, como Tenex C Shell (tcsh) basado en el código original C Shell, pero incorporando finalización
5
de nombres a ficheros, y edición a comandos de línea, comparables a Korn Shell (Ksh), y el GNU Bourne-Again Shell (Bash).
Otro C Shell modernizado, y de desarrollo independiente, creado por Nicole Hamilton, aún subsiste en Windows, bajo la forma de Hamilton C Shell.
Algunos datos acerca de C Shell
Su sintaxis es muy parecida al lenguaje de programación C, razón por la cual los archivos de secuencias de shell escritos para csh con frecuencia no pueden ejecutarse bajo bash o ksh.
Edición de comandos, históricos es una de las características de shell C deseables que no son disponibles en Bourne.
Su indicador es el signo de porcentaje (%).
El programa ejecutable para este shell se encuentra en el archivo /bin/csh (Linux).
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:
6
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
...