Asignatura: Laboratorio de Programación III
Curso: 6° Informática
Profesora: Evangelina Rivero - evangenge_rivero@hotmail.com
Shell
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:
$cc |
−o |
Ejemplo.c |
; |
Who |
Comando |
Parámetros |
argumento |
Separador |
Otro comando |
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.
No hay comentarios.:
Publicar un comentario
Nota: sólo los miembros de este blog pueden publicar comentarios.