Asignatura: Laboratorio de Programación III
Curso: 6° Informática
Profesora: Evangelina Rivero
Shell
INTRODUCCION El intérprete de comandos es la interfaz entre el usuario y el sistema operativo. Por esta razón, se le da el nombre inglés "shell", que significa "caparazón". Por lo tanto, la shell actúa como un intermediario entre el sistema operativo y el usuario gracias a líneas de comando que este último introduce. Su función es la de leer la línea de comandos, interpretar su significado, llevar a cabo el comando y después arrojar el resultado por medio de las salidas. La shell es un archivo ejecutable que debe interpretar los comandos, transmitirlos al sistema y arrojar el resultado. Existen varios shells. La más común es sh (llamada "Bourne shell"), bash ("Bourne again shell"), csh ("C Shell"), Tcsh ("Tenex C shell"), ksh ("Korn shell") y zsh ("Zero shell"). Generalmente, sus nombres coinciden con el nombre del ejecutable. CONCEPTO DEL 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. También se le conoce con el nombre de caparazón. (Análogo al Command.com de MS−DOS). El shell es un programa del sistema operativo, pero no forma parte del núcleo del mismo. Se ejecuta cada vez que un usuario se identifica ante el sistema y comienza una sesión. 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 ejecución, analiza la línea y llama a ejecución al programa o programas que realiza la función solicitada por la orden. El shell es también un lenguaje de programación que soporta todas las estructuras propias de los lenguajes modernos. Además permite la utilización de todas las primitivas del sistema operativo de control de procesos, interrupciones y utilidades para diseñar programas de comandos por el usuario. A los programas realizados con el shell se les llama Shell Scripts, Procedimientos Shell o Guiones de Comando. Algunos de los shell más utilizados son: Bourne Shell: Es el interprete de comandos básico. Se invoca con la orden sh. C-Shell: 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 programación es prácticamente 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. Añade posibilidades de programación avanzada, facilidades aritméticas y mayor rapidez de ejecución. 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 creación del mismo, el shell que éste vaya a utilizar. ESTRUCTURA DE UNA LINEA DE COMANDO Una vez iniciada una sesión UNIX y estando presente el prompt $, el interprete de comandos Shell está preparado para recibir un comando, cuya estructura es la siguiente: $ comando [parámetros] [argumentos] [separador] · nombre: Nombre del comando · parámetros: Posibles variaciones de actuación del comando. · argumentos: Nombre del elemento (archivo, directorio.) sobre el que se quiere aplicar el comando. · separador: Delimitador que sirve para separar comandos Ejemplo:
Los comandos consisten en una secuencia de letras, números y caracteres. Hay que tener en cuenta que UNIX hace diferencia entre mayúsculas y minúsculas. Hay que separar el comando de las opciones por un espacio en blanco o un tabulador. Las opciones también deben separase entre sí por un espacio. Si un comando es más largo que una línea hay que teclear \ (barra invertida) y pulsar intro, para continuar introduciendo el comando en la línea siguiente. Podemos escribir varios comandos en la misma línea separándolos por ; (punto y coma). Un comando de una sóla línea es referido como una línea de comando. CARACTERISTICAS DEL SHELL La característica más destacable del shell es la versatilidad: facilidad de modificación y de adaptación 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 información 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 programación del shell, que permite concatenar órdenes en un fichero de texto ejecutable con permiso de ejecución para automatizar procesos, lo que se conoce con el nombre de Explotación Batch o por lotes. ASPECTOS PRACTICOS Shell mantiene una historia de comandos. El histórico de comandos se guarda en el fichero .bash_history, donde están 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 número asociado al comando precedido de signo admiración. Ejemplo: 3 Si necesita repetir el último comando basta con teclear dos admiraciones: !! Si quieres repetir un comando sin conocer su número de orden en la lista seguir los pasos de este ejemplo: more /usr/lib/X11/xdm/xdm−config (este comando se tecleó anteriormente) basta con teclear !more. Si al editar una línea de comando pulsamos la tecla tab, el shell buscará archivos o directorios cuyos nombres comiencen por lo escrito en la línea de comandos con el fin de completarla. Puede ocurrir que se ajuste más de un fichero, en cuyo caso avisa con una señal 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 más 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 también puede buscar en el histórico. La combinación de teclas que hace esto es Alt−Tab. Cada cierto tiempo conviene borrar el fichero .bash_history. Existe uno por usuario. VIDEOS TUTORIALES SOBRE SHELL: PROGRAMAR EN SHELL: |
No hay comentarios.:
Publicar un comentario
Nota: sólo los miembros de este blog pueden publicar comentarios.