PDF de programación - Programación Shell

Imágen de pdf Programación Shell

Programación Shellgráfica de visualizaciones

Publicado el 24 de Julio del 2019
2.169 visualizaciones desde el 24 de Julio del 2019
381,0 KB
125 paginas
Creado hace 5a (18/10/2018)
Se permite la distribucion por cualquier medio de acuerdo con la licencia GPL
v.2 o posteriores. Puede obtener una copia de la licencia GPL o ponerse en
contacto con la Free Software Foundation en http://www.gnu.org/

Programacion Shell

Adrian de los Santos
[email protected]

Version 0.002b

Shell Programming v 0.999b

ATENCION:

Este es un documento no terminado y sin revisiones, su fucncion
fue la de servir como material de apoyo en un curso que imparti,
no es una guia definitiva de la programacion shell (ni se le
acerca por lo menos a un intento de guia).

Le faltan mucho por explicar, y algunas cosas que posiblemente
no esten explicadas de forma correcta.

Como ayudar ?

Requiero tu retroalimentacion, enviame un correo a
[email protected] con tus comentarios acerca de este documento,
que te parecio, que le cambiarias, que le falto, etc.

Esa es la mejor forma en la que podemos mejorar este documento.

Gracias.

Adrian de los Santos.

2

Indice

Introduccion
La programacion en shell
Comandos
Los basicos del shell
Caracteristicas del shell
Algunos comandos basicos
Inicializacion
Substitucion e interpretacion
Control de entrada/salida
Variables
Control de procesos
Filtros de texto
Sed
Awk
Control de flujo
Entrada y salida de datos en programas de shell
Expect

3

INTRODUCCION

No es un secreto que los sistemas operativos Unix/Linux han evolucionado en los ultimos
años como un sistema operativo popular. Para los programadores que han utilizado Unix/
Linux por muchos años, esto no es una sorpresa: Los sistemas Unix/Linux proveen una
plataforma eficiente y elegante para el desarollo de sistemas. Despues de todo, esto es lo
que Dennis Ritchie y Ken Thompson buscaban cuando ellos desarollaron Unix en los
laboratorios Bell (a finales de los 60's).

Una de las caracteristicas fuertes de los sistemas Unix/Linux es su gran coleccion de
programas. Mas de 200 comandos basicos que se incluyen con el sistema operativo. Estos
comandos, (tambien conocidos como herramientas) hacen practicamente todo, desde contar
el numero de lineas en un archivo, enviar correo electronico, desplegar un calendario de el
año deseado, etc.

Pero la real fortaleza de los sistemas Unix viene no precisamente de esta gran coleccion de
comandos, sino tambien de la elegancia y facilidad con que estos comandos pueden ser
combinados para realizar funciones mas sofisticadas.

Con el fin de proveer una interface consistente y facil para que el usuario interactuara con el
sistema Unix/Linux (el kernel) se desarollo el shell.

El shell es simplemente un programa que lee los comandos que se teclean y los convierte en
una forma mas entendible para el sistema Unix/Linux. Tambien incluye algunas sentencias
basicas de programacion que permiten: tomar desiciones, realizar ciclos y almacenar
valores en variables.

El shell estandar distribuido con Unix y Linux, se deriva de la distribucion de AT&T, el cual a
su vez, evoluciono de una version originalmente escrita por Stephen Bourne en los
laboratorios Bell. Desde entonces la IEEE ha creado estandares basados en el Bourne Shell
y otros shells mas recientes. La version actual de este estandar es "The Shell and Utilities
Volume of IEEE Std 1003.1-2001", tambien conocido como es estandar POSIX (Portable
Operating System Unix)

Debido a que el shell ofrece un lenguaje de programacion interpretado, se pueden escribir,
modificar y verificar programas rapidamente y de forma facil.

La programacion en shell es una parte fundamental de la administracion de sistemas
basados en Unix, debido a la facilidad y poderio que el conjunto de herramientas y
comandos de Unix proveen para realizar la automatizacion de procesos rutinarios, tales
como: respaldo de archivos, captura de datos, verificacion de procesos, etc.

4

Generalidades

En este curso se asume que estas familiarizado con los fundamentos de los sistemas Unix/
Linux; esto es, que sabes como entrar a el sistema, como crear archivos, editarlos,
manipularlos y como trabajar con directorios.

Dentro de este manual existe codigo de ejemplo, el cual se ejemplifica con un tipo de letra
diferente, el siguiente es un ejemplo de un segmento de codigo:

$ ls -la

5

La programacion en shell

El programar en shell es muy similar a un oficio comun, por ejemplo: un carpintero.

Un carpintero tiene una caja de herramientas que contiene todas las cosas que utiliza para
su oficio, en esa caja puede haber desarmadores, tornillos, taladros, etc. El carpintero
utiliza estas herramientas de diferente manera y en diferentes combinaciones para lograr
resultados diferentes, no se utiliza la misma herramienta para hacer un jugete que para
hacer un escritorio y es posible que si se utilice la misma no se utilice en la misma
intensidad o forma.

Aplicando estas mismas herramientas, el carpintero es capaz de construir los diferentes
elementos necesarios para construir sus proyectos.

Para constuir algun objeto de madera, se necesitan las herramientas correctas. En Unix, las
herramientas que se utilizan son llamadas "utilerias" o "comandos". Existen comandos
simples como ls y cd, y existen herramientas mas complejas como awk, sed, y el mismo
shell. Uno de los problemas mas comunes de trabajar con madera, es la de utilizar la
herramienta o tecnica incorrecta para construir algun proyecto. El saber que herramienta
utilizar, normalmente se obtiene con la experiencia. En este curso aprenderas como utilizar
las herrameintas de Unix por medio de ejemplos y ejercicios. Las herramientas simples, son
faciles de entender y aplicar. Es posible que tu ya conozcas varias de estas herramientas.
Las herramientas mas poderosas, normalmente toman mas tiempo para entender y
aprovechar.

En este curso introduce el uso de herramientas basicas y complejas. Logicamente la
focalizacion es el utilizar las herramientas mas complicadas y mas poderosas (tal como el
shell mismo).

Antes de que se puedan construir cosas con el shell, se necesitan conocer algunas
cuestiones basicas:

• Comandos
• El Shell

6

Que es un comando ?

Comandos

En Unix, un "comando" es un programa que tu puedes ejecutar. En otros sistemas
operativos, tales como Mac OS o Windows, you apuntas a el programa que deseas ejecutar
y realizas la funcion de dar doble click sobre el. Para ejecutar un comando en Unix, tu teclas
su nombre y presionas Enter.

Por ejemplo:

$ date [Enter]
Fri Mar 19 21:34:59 CST 2004
$

introducir este comando, date despliega el nombre del dia, mes, numero de dia

Al
transcurrido del mes, hora, zona horaria y año de el sistema.

Hay que hacer notar que despues de ejecutar el comando, el sistema despliega el caracter $

El caracter $ indica el prompt (o linea de comando). Cuando se esta en el prompt, se puede
teclear el nombre de un comando y presionar Enter. Esto ejecuta el comando que se tecleo.
Mientras el comando esta siendo ejecutado, el prompt ($) no es desplegado en la pantalla.
Cuando el comando finaliza su ejecucion, el prompt es desplegado nuevamente.

Hay que hacer notar que el caracter $ es el indicativo de que el sistema esta listo para
recibir un comando nuevo, esto comunmente se llama prompt. No es parte del comando
mismo.

Por ejemplo, para ejecutar el comando date, se teclea la palabra date en el prompt $. No
se teclea $ date.

7

Comandos

Ahora veamos otro ejemplo de un comando:

$ who
demon
root
tatito pts/1
$

tty1
tty2

Mar 16 02:26
Mar 16 01:26
Mar 14 00:23

Aqui, se introdujo el comando who, el cual despliega los usuarios que se encuentran dentro
del sistema, la terminal desde la cual estan conectados y la fecha en la que entraron al
sistema.

Aqui podemos ver que existen 3 usuarios dentro del sistema, demon, root y tatito, la
primera columna muestra el nombre de los usuarios, la segunda columna la terminal desde
la cual el usuario entro al sistema y la tercera la fecha y hora en la que entraron a este
sistema.

El formato y valores de despliegue de cada comando puede variar ligeramente de un
sistema Unix a otro, o de un sistema Linux a otro (con diferentes versiones de kernel o
diferentes distribuciones).

Comandos Simples

Los comandos who y date son ejemlos de comandos simples. Un comando simple es el
que puedes ejecutar simplemente teclando su nombre en el prompt de la siguiente manera:

$ comando

En este ejemplo, comando es el nombre de el comando que deseas ejecutar. Los comandos
simples pueden ser comandos pequeños y con funciones especificas y sencillas, tales como
who y date, o pueden ser comandos largos, tales como un navegador de web o un
programa de hoja de calculo. Tu puedes ejecutar la mayoria de los comandos de Unix como
comandos simples.

8

Comandos complejos

Comandos

Puedes usar el comando who para obtener informacion acerca de tu usuario (que esta
dentro del sistema) cuando se ejecuta de la siguiente manera:

$ who am i
demon ttyp5 Mar 19 22:16
$

Este comando despliega la siguiente informacion:

• Mi nombre de usuario es demon
• Estoy entrando desde la terminal ttyp5
• Entre a las 22:16 del 3 de Marzo

Este comando tambien nos sirve para introducir el concepto de comando complejo, lo cual
es un comando que consiste en un comando (valga la redundancia) y una lista de
argumentos.

Los argumentos son modificadores que cambian el comportamiento de un comando. En este
caso, el nombre del comando es who y los argumentos am e i.

Cuando el comando who se ejecuta como un comando simple, despliega informacion acerca
de todos los usuarios que estan en el sistema. La salida que es generada cuando un
comando es ejecutado como un comando simple es llamado el comportamiento por defecto
de ese comando (default behavior).

Los argumentos am e i cambian el comportamiento del comando who para listar
informacion acerca de ti solamente. En Unix/Linux, la mayoria de los comandos aceptan
argumentos que modifican su comportamiento.

La sintaxis formal para un comando complejo:

$ comando argumento1 argumento2 argumento3 ... argumentoN

Aqui, comando es el nombre del comando que deseas ejecut
  • Links de descarga
http://lwp-l.com/pdf16365

Comentarios de: Programación Shell (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad