You are on page 1of 3

El Shell Se conoce con el nombre de Shell al programa que atiende a los ordenes tecleadas en el terminal y las traduce (interpreta)

a instrucciones en la sintaxis interna del sistema; es decir es l interprete de comandos del sistema operativo UNIX. Tambin se le conoce con el nombre de caparazn. (Anlogo al Command.com de MSDOS). El shell es un programa del sistema operativo, pero no forma parte del ncleo del mismo. Se ejecuta cada vez que un usuario se identifica ante el sistema y comienza una sesin. Se ejecuta un shell para cada usuario que se conecta al sistema. Cuando un usuario introduce una orden, el shell, que es un programa en continua ejecucin, analiza la lnea y llama a ejecucin al programa o programas que realiza la funcin solicitada por la orden. El shell es tambin un lenguaje de programacin que soporta todas las estructuras propias de los lenguajes modernos. Adems permite la utilizacin de todas las primitivas del sistema operativo de control de procesos, interrupciones y utilidades para disear programas de comandos por el usuario. A los programas realizados con el shell se les llama Shell Scripts, Procedimientos Shell o Guiones de Comando. Los shell en Unix se clasifican en dos grandes grupos: los tipo Bourne y los tipo C. Los shell tipo Bourne toman su nombre a partir de su inventor, Steven Bourne. Steven Bourne escribi el shell original de Unix, denominado sh; a partir de entonces, la mayora de los shells tienen un nombre con el sufijo sh para indicar que son extensiones de la idea original. Existen varias implementaciones de este shell, que colectivamente llevan el nombre de shells Bourne. Tambin son comunes los shells tipo C cuyo original fue implementado por Bill Joy. Tradicionalmente, los shell Bourne se han utilizado para los scripts de shell y por razones de compatibilidad con el sh original, mientras que los shells C han sido ms comunes en su aplicacin interactiva. (Los C tienen ventajas en cuanto a sus mejores caractersticas interactivas, aunque son ms difciles de programar.) Linux viene con un shell Bourne denominado bash, escrito por la organizacin "Free Software Foundation" (Fundacin para el Software Libre). El nombre bash proviene de Bourne Again SHell, uno de los tantos juegos de palabras en Unix. Se trata de un shell Bourne "avanzado": tiene las capacidades estndar de programacin que se encuentran en todos los shells Bourne y adems varias de las caractersticas interactivas que se encuentran en los shells C. bash es el shell predeterminado de Linux. Apenas se inicia una sesin, el prompt que se muestra es producto de la accin de bash, en otras palabras: ests ejecutando tu primer programa Unix, el shell bash. Mientras ests conectado, el shell bash estar permanentemente funcionando. Algunos de los shell ms utilizados son: Bourne Shell: Es el interprete de comandos bsico. Se invoca con la orden sh. CShell: Es el interprete de comandos creado por Bill Joy en Berkeley para el sistema operativo BSD y para el XENIX, un poco mas completo que el anterior. Su programacin es prcticamente lenguaje C. Se invoca con la orden csh. Korn Shell: Se basa en los dos anteriores, siendo compatible con el Bourne en un 95 por 100. Aade posibilidades de programacin avanzada, facilidades aritmticas y mayor rapidez de ejecucin. Se invoca con la orden ksh. Bash: Es el shell utilizado por Linux por defecto y amplia las capacidades del Bourne. Se invoca con bash.

El superusuario debe asignar a cada usuario, en el momento de la creacin del mismo, el shell que ste vaya a utilizar. Estructura de una lnea de comandos Una vez iniciada una sesin UNIX y estando presente el prompt $, el interprete de comandos Shell est preparado para recibir un comando, cuya estructura es la siguiente: $ comando [parmetros] [argumentos] [separador] nombre: Nombre del comando parmetros: Posibles variaciones de actuacin del comando. argumentos: Nombre del elemento (archivo, directorio..) sobre el que se quiere aplicar el comando. separador: Delimitador que sirve para separar comandos Ejemplo: $cc Comando o Parmetros Ejemplo.c argumento ; Separador Who Otro comando

Los comandos consisten en una secuencia de letras, nmeros y caracteres. Hay que tener en cuenta que UNIX hace diferencia entre maysculas y minsculas. Hay que separar el comando de las opciones por un espacio en blanco o un tabulador. Las opciones tambin deben separase entre s por un espacio. Si un comando es ms largo que una lnea hay que teclear \ (barra invertida) y pulsar intro, para continuar introduciendo el comando en la lnea siguiente. Podemos escribir varios comandos en la misma lnea separndolos por ; (punto y coma). Un comando de una sla lnea es referido como una lnea de comando Caractersticas del shell La caracterstica ms destacable del shell es la versatilidad: facilidad de modificacin y de adaptacin a las necesidades y preferencias de cada usuario en particular. Proporciona diversas facilidades al usuario: Redireccionamiento de la salida o la entrada standard. Metacaracteres, caracteres especiales con significado propio. Filtros, que se encargan de gestionar la informacin de los ficheros. Conexionado entre rdenes, mediante el uso de tuberias (pipes). Cuando se interconexionan dos rdenes, la salida de un proceso se convierte en la entrada del siguiente. As se elimina la necesidad de crear ficheros temporales intermedios. Lenguaje de programacin del shell, que permite concatenar rdenes en un fichero de texto ejecutable con permiso de ejecucin para automatizar procesos, lo que se conoce con el nombre de Explotacin Batch o por lotes. Aspectos prcticos

Shell mantiene una historia de comandos. El histrico de comandos se guarda en el fichero .bash_history, donde estn guardados todos los comandos escritos., almacena hasta 50 comandos antiguos. Al editar .bash_history presenta una lista numerada de comandos, incluidos los introducidos en entradas anteriores al sistema. Si la lista es muy larga podemos ver los n ltimos. Ejemplo: history Lista numerada de todos los comandos. history 10 Nos visualizar los 10 ltimos comandos introducidos. Podemos volver a usar un comando de la lista tecleando el nmero asociado al comando precedido de signo admiracin. Ejemplo: !3 Si necesita repetir el ltimo comando basta con teclear dos admiraciones: !! Si quieres repetir un comando sin conocer su nmero de orden en la lista seguir los pasos de este ejemplo: more /usr/lib/X11/xdm/xdmconfig (este comando se tecle anteriormente) basta con teclear !more. Si al editar una lnea de comando pulsamos la tecla tab, el shell buscar archivos o directorios cuyos nombres comiencen por lo escrito en la lnea de comandos con el fin de completarla. Puede ocurrir que se ajuste ms de un fichero, en cuyo caso avisa con una seal sonora, tras la cual, si pulsamos de nuevo tab , nos mostrar todos los posibles casos para que completemos nosotros un poco y l pueda afinar ms el ajuste. La diferencia entre completar el nombre de comando o el de un argumento radica en el lugar donde se busca. En el primer caso se busca en todos los directorios de la variable de entorno PATH, mientras que en el segundo nicamente en el directorio de trabajo. Bash tambin puede buscar en el histrico. La combinacin de teclas que hace esto es AltTab. Cada cierto tiempo conviene borrar el fichero .bash_history. Existe uno por usuario. Tema 1. El Shell de Linux Pgina:3/3 1 El Shell de Linux Pgina:1/3

You might also like