ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Programación Shell en Linux


Enviado por   •  18 de Abril de 2013  •  3.514 Palabras (15 Páginas)  •  441 Visitas

Página 1 de 15

Programación Shell en Linux

El turno ahora es para los intérpretes de comandos de Linux y su programación, conocida

como programación shell. Aunque el intérprete de comandos es independiente del

lenguaje de programación utilizado, Linux permite crear programas utilizando

características propias de cada un de los shell existentes.

¿como, no hay solo un intérprete? Umm, nop; hay bastantes shells para Linux(o

intérpretes de comandos o consolas o como lo llames [de ahora en adelante shell]). No

como en windows que tan solo tiene el interprete de DOS (o cmd o command).

Como habrás podido deducir la programación en shell es “interpretada”, no compilada,

lo que reduce el desempeño del sistema; pero la ventaja es la facilidad de creación y

mantención.

Los temas a ver serán los siguientes:

● Qué es un shell y Qué shells están disponibles

● Principios de los shells (redirección)

● Variables de entorno

● Procesamiento en segundo plano

● Completación y sustitución de comandos (sustitución y creación del alias)

● Secuencias de comandos de los shell

Qué es shell

Unos dicen que es el sistema operativo, otros dicen que es una pantalla negra sin sentido

y anticuada, otros dicen que es la causa de que Linux no sea famosa entre gente

inexperta. ¿quien tiene la razón? Hagan sus apuestas!!! No, ahora en serio.

NO es el sistema operativo (el sistema operativo es el software que dirige la

computadora, habla con el hardware, carga y ejecuta programas, etc.); cuando se ve el

indicador de la computadora y se escriben comandos para ejecutar, con lo que estamos

tratando es con el shell.

Una característica interesante de Linux, es que los shells son completamente

independientes. Como usuario tenemos la libertad de elegir entre uno u otro shell.

También es posible interactuar con un shell, y escribir comandos para otro.

Shells disponibles en Linux

Piensa que el shell es un programa que está entre el usuario y el sistema operativo. Este

programa interpreta lo que el usuario le indica (en su lenguaje) para manipular el

sistema operativo.

por Cristian Castiblanco

casidiablo.blogspot.com

El shell original disponible en los sistemas UNIX era el shell Bourne (“sh”). Después dos

shells que se volvieron populares fueron shell Korn (“ksh”) y el el shell C (“csh”), cada

uno con sus características propias, ventajas y desventajas.

Los shells Bourne y el C fueron reescritos, como resultado ahora tenemos el “Bourne

again shell (Shell Bourne nuevamente)” o “bash”, y el shell T (“tcsh”). Los tres shells

están disponibles en casi todas las distros de Linux. Bash es probablemente el shell más

utilizado actualmente, y es el que viene por defecto en la mayoría de las distros.

Principios de los shell

Operación de los shell y conceptos básicos de sintaxis

El shell es un programa que nos permite interactuar con el sistema operativo. La “línea

de comandos” es la entrada del usuario para el shell. El shell examina la línea de

comandos, verifica que lo que se ha escrito es correcto, determina si se ha digitado el

nombre de un programa (un programa binario o compilado), y de ser así envia dicho

programa al núcleo (kernel) para su ejecución.

Todos los comandos shell utilizan el siguiente formato:

comando opcion1 opcion2 opcion3 ... opcionN argumento1 argumento2 ... argumentoN

Esta línea se conoce como línea de comandos; que consiste en un comando y una o más

opciones (y/o argumentos). Por lo general el espacio en blanco se ignora. En Linux los

comandos son sensibles al uso de mayúsculas y minúsculas, cosa que no pasa en

Windows. El comando se termina pulsando la tecla Enter; aunque se puede continuar el

comando en una nueva línea usando backslash (\).

comandolargisisisisisisisimo

opcion1 opcion2 opcion3 ... opcionN \

argumento1 argumento2 ... argumentoN

Además es posible concatenar varios comandos, separándolos con punto y coma (;), por

ejemplo:

clear; pwd; ls

Redirección de E/S

Cuando se ejecuta un programa en Linux se abre automáticamente tres archivos (flujos)

de E/S para ellos. Estos son: la entrada estándar, la salida estándar y el error estándar.

Aunque parezca confuso todos los sistemas UNIX utilizan este sistema, basado en el

manejo de archivos. Por ejemplo, si deseas enviar datos a tu disco extraible debes

enviar los datos al archivo asociado con dicho pendrive, por lo general /dev/sda1.

por Cristian Castiblanco

casidiablo.blogspot.com

Por defecto la salida estándar está conectada a la pantalla, la entrada de estándar al

teclado, y el error estándar a la pantalla. Es posible reasignar estos destinos antes de

ejecutar el programa, en lo que se conoce como redirección de E/S.

Supongamos que queremos crear una lista de archivos del directorio /usr/include, pero

que dichos archivos contengan la palabra “#include”. Una forma sencilla de hacer esto

sería:

grep l

“#include” /usr/include/*.h > ListaArchivos

grep comprobará los archivos de la carpeta /usr/lib cuya extensión sea *.h y

determinará cuales de ellos contienen la palabra “#include”. El carácter > es el que

indica la redirección de salida; esto ocasiona que el shell redireccione la salida estándar

a el archivo ListaArchivos. Los nombres que están en el archivo se verán así:

/usr/include/GUI.h

/usr/include/Float.h

/usr/include/Redirect.h

/usr/include/nvu.h

/usr/include/bluefish.h

Para reemplazar, por ejemplo, la cadena /usr/include al principio de cada archivo

puedes utilizar el comando sed:

sed 's#^/usr/include/##' < ListaArchivos > ListaArchivoss

El comando sed opera sobre los datos de entrada estándar, así que en este caso

utilizamos el carácter < para redireccionar la entrada. En lugar de leer del teclado, esta

vez leerá de un archivo. Después, la salida del comando sed se redirige hacia el archivo

ListaArchivoss.

Pero, ¿cómo se redirige el error estándar? Para redirigir el error estándar se utiliza >&,

por ejemplo:

sed 's#^/usr/include/##' < ListaArchivos >& ErrorSed > SalidaSed

O se puede redirigir tanto el error

...

Descargar como (para miembros actualizados) txt (26 Kb)
Leer 14 páginas más »
Disponible sólo en Clubensayos.com