Programación Shell en Linux
Enviado por 123478 • 18 de Abril de 2013 • 3.514 Palabras (15 Páginas) • 397 Visitas
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
...