Tema: Uso de Bash en Linux Parte II.

Documentos relacionados
Tema: Instalación de Linux.

Shell Script Sistemas Operativos III - ITS EMT - CETP

Tema: Administración y respaldo de información.

Electrónica II. Guía 4

Tema: Manejo del Puerto Serie con LabView

SEMANA N 9 NOMBRE EXPERIENCIA: Funciones, variables y arreglos en BASH UNIDAD DE APRENDIZAJE: Introducción a los SCRIPTS

TP N 4 Redirección de entrada y salida estándar

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Tema: Uso del analizador espectral.

Guía 3 1. Objetivo General Conocer las actividades básicas de gestión de un servidor SCADA.

1

Creación de Formularios y Consultas

Creación de Scripts. Qué es un script? Como funciona un shell script en Linux?

Introducción a Windows 98

Tema: Clases y Objetos en C#. Parte II.

Sesión 1. Comandos básicos. Curso 09/10. Fernando Rincón Escuela Superior de Informática Universidad de Castilla-La Mancha

Tema: Fuente de Alimentación de Rayos X

Sistemas Operativos sesión 13: shell-scripting

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

CURSO: SISTEMA OPERATIVO LINUX, ADMINISTRACIÓN Y CONFIGURACIÓN

Operaciones básicas con hojas de cálculo

Tema: Introducción al IDE de Microsoft Visual C#.

INSTITUTO ELECTORAL DEL ESTADO DE MÉXICO SECRETARÍA EJECUTIVA UNIDAD DE INFORMÁTICA Y ESTADÍSTICA

Estructuras de control

Equipamiento ADSL» Inalámbrico. Adaptador USB PAUTAS PARA LA VERIFICACION TCP/IP

Amplificador inversor y no inversor

PROCEDIMIENTO PARA GENERAR LOS REQUERIMIENTOS DE SELLOS DIGITALES

GUIA DE LABORATORIO 1(Tercera Parte) Sistemas operativos

Programación shell-scripts 1 LA SHELL

Creacion de Script. Que es un Script?

Laboratorio de Sistemas Operativos. Ingenierías Técnicas en Informática de Sistemas y Gestión 2006/2007

Tema: Configuración de red AD-HOC

Programación Avanzada

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas Creación de una Distro. Facilitador José Doñe

Curso ICA de: LINUX BÁSICO

Procesos de Fabricación I. Guía 1 1 SISTEMAS HIDRÁULICOS Y NEUMÁTICOS.

Linux Completo (Versión Ubuntu 9)

TEMA 2: Sistemas Operativos

ESCUELA DE LA SALUD PROGRAMA TÉCNICO EN SEGURIDAD Y SALUD EN EL TRABAJO SUBMÓDULO BÁSICO GUIA WINDOWS-CARPETAS Y COMPRIMIR

MANUAL DE USUARIO NOTAS PARCIALES MODULO CONFIGUARACION DE NOTAS -288

Tema: Autómata de Pila

Computadora y Sistema Operativo

LINUX - El intérprete de órdenes II

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Manual de Instrucciones para el uso con un ordenador

Shell Script de instalación y configuración para el servicio DHCP en CentOS v5.x. Manual de instrucciones.

El shell de GNU/Linux

CENTOS: SUSE Linux Slackware Linux Gentoo Linux Mandriva Linux Fedora

Tema: Herramientas UML, Análisis y diseño UML

Tema: Herramientas UML, Análisis y diseño UML

Parte 4: Estructuras de Control

Manual de Instrucción para el usuario del sistema de TELE-MAPA

Manual de instalación AutoFirma 1.4.3

Tema: Instalación de Linux.

Manual de Usuario. Aplicación de Autoevaluación de Centros

MANUAL DE USUARIO MODULO DE ACTIVOS FIJOS

Introducción. Aparición en los 50, se facilita la comunicación entre el usuario y el ordenador Cualquier persona puede utilizar un ordenador.

Aplicativos: Cómo se realiza la descarga e instalación de Aplicativos AFIP?

NATIONAL SOFT HOTELES GUÍA DE CONFIGURACIÓN DEL FORMATO DE FACTURAS

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

Temario Linux Básico para Web

Que es el Shell? Kernel. Other programs. csh. bash. X window

LINUX - Los archivos de órdenes I

Microsoft Project 2013

CANTABRIA GOBIERNO DE

FACULTAD DE INGENIERÍA

Introducción a Linux

Introducción a Linux. II.

MÓDULO 4: PLANTA DE PERSONAL

Nociones de informática. Qué es una computadora? GNU/Linux. Lo mínimo que hay que saber para empezar a trabajar con una computadora del aula

SESIÓN 6 INTRODUCCIÓN A POWER POINT

MANUAL DESCARGA DE CALIFICACIONES

Algoritmos. Diagramas de Flujo. Informática IV. L. S. C. Heriberto Sánchez Costeira

MANUAL DE ACTUALIZACIÓN DE CONSOLIDACIÓN

CÓMO INGRESAR A SU CORREO INSTITUCIONAL?

MANUAL DE USUARIO Formularios de Adquisición de Material Bibliográfico

Uso de la función Imprimir y mantener en espera

Laboratorio. Instalación de Visual Studio Community. Back To Basics Instalando Visual Studio Community. Versión: 1.0.

Tema 2: Sistemas Operativos. Linux

WorkManager E.D. Manual guía de usuario Diseñador de formularios

Tema: Enrutamiento estático

Procedimiento para obtener Certificado de Sello Digital

Unidad 2. Elementos de Word2007 (I)

COLEGIO PABLO DE TARSO IED CONSTRUCCION DE PROYECTOS DE VIDA PRODUCTIVOS DREAMWEAVER UNO- PRÁCTICAS DOC RAUL MONROY PAMPLONA

MALTED: MANUAL DE INSTALACIÓN EN LINUX

Manual de Usuario de inventarios

Actualizaciones de software Guía del usuario

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

TEMA: LOS SISTEMAS OPERATIVOS

Tema 1. Introducción a OpenOffice Writer

UNIDAD DIDACTICA 3 REDIRECCIONAMIENTO Y TUBERIAS

Escala San Martín. InstruccIones para la aplicación InformátIca. Evaluación de la Calidad de Vida de Personas con Discapacidades Significativas

Figura 41: Ejemplo de una carta para combinar correspondencia

Funciones de Network Assistant

Java desde Consola Utilizando Java sin Path

Instalación de Alcatraz...3. Activación de la cuenta...4. Descarga del software. Pasos para la instalación...5

Elementos esenciales de Word

Transcripción:

1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Arquitectura de computadoras Lab. de arquitectura de computadoras, edif. de electrónica. Tema: Uso de Bash en Linux Parte II. Objetivo general Aplicar el uso de un interprete de comandos en Linux. Objetivos específicos Ejecutar comandos del sistema Linux. Realizar tareas de mantenimiento y configuración de Linux usando programación del shell. Materiales y equipo 1 Computadora personal con sistema operativo GNU/Linux (Cualquier distribución que incluya gnome y bash, preferiblemente CentOS o Ubuntu). Introducción teórica El lenguaje de bash posee varias características avanzadas más allá de la simple ejecución de comandos. Entre ellas tenemos: Redirección de entradas y salidas. Tuberías Sentencias de control de flujo. A continuación de describirá cada una de ellas. Redirección de entradas y salidas. Normalmente, los comandos de bash emiten su salida a la consola, es decir, a la pantalla de la PC. Es posible hacer que un comando emita su salida a un archivo cualquiera utilizando los símbolos > o >> al final de un comando, seguido del nombre de archivo a donde se quiere guardar la información que se genera. la sintaxis es la

2 siguiente: $ Comando argumentos > Archivo $ Comando argumentos >> Archivo Esto permite, por ejemplo, guardar la salida de un comando ls -l a un archivo, para guardar la lista de archivos generada en un archivo en vez de mostrarla en pantalla. La diferencia que existe entre > y >> es que el primero crea siempre un archivo nuevo y lo borra en caso de existir, mientras que el segundo, abre el archivo y le anexa la información generada por el comando a la que ya contenía antes de abrirlo. Tuberías. La tubería es una forma diferente en que se puede modificar las entradas y salidas, permitiendo que la salida de un comando se utilizada como la entrada de otro comando. Esto se puede lograr mediante el símbolo de barra vertical, escribiendo los comandos juntos, de tal manera que el primer comando emite su salida al siguiente comando (en vez de a la pantalla) sin utilizar archivos intermediarios. La sintaxis es la siguiente: $ Comando1 Comando2 El comando more es un ejemplo de ello, ya que permite ver la salida de comandos que emiten información extensa, pantalla por pantalla, a través de uso de tuberías. Sentencias de control de flujo. Estas permiten que el código se ejecute de manera arbitraria, siendo extremadamente útiles en la creación de guiones inteligentes. Las sentencias de control de flujo incluyen: Ejecución condicional: if, else, elif, fi. Ejecución de casos múltiples: case, esac. Ejecución de bucles: do, done, for, in, until, while. La sintaxis de cada una de estas sentencias se verá a lo largo de la guía.

3 Procedimiento Parte I Redirección de entradas y salidas. 1. Arranque su computadora utilizando el sistema operativo Linux. Ejecute una ventana de consola ya sea desde el menú del sistema Aplicaciones->Accesorios->Terminal, o bien presionando Alt + F2 y digitando gnome-terminal. 2. Cámbiese al directorio de escritorio con cd Desktop, luego cree ahí un directorio con mkdir y nómbrelo como estime conveniente usando algún nombre como practica6 o guia6. Luego cámbiese a ese directorio con cd nombre_del_directorio. 3. Utilice el comando echo para mostrar texto en pantalla: $ echo Este es un mensaje Note como el texto aparece en pantalla justo debajo del comando. 4. Redirija la salida del comando echo a un nuevo archivo de texto con el siguiente comando: $ echo Este es un archivo de texto > Texto1.txt La salida del comando echo, en vez de aparecer en pantalla como normalmente lo hace, lo hizo ahora a través del archivo Texto1.txt, creándolo en el proceso. Confirme que el archivo existe mediante la interfase gráfica o bien mediante el comando ls. Verifique su contenido haciéndole doble click para abrirlo con gedit o bien usando el comando cat Texto1.txt. 5. Anexe nueva información al archivo de texto recién creado, usando el siguiente comando: $ echo Este contenido es nuevo >> Texto1.txt Esta vez, como se usó el símbolo >>, la información será anexada a la que ya existía en el archivo. Compruebe el contenido del archivo mediante gedit o bien con cat Texto1.txt. 6. Proceda ahora a guardar el listado de archivos que contiene el directorio /etc, mediante el siguiente comando: $ ls -l /etc > Texto2.txt

4 Note como es posible utilizar redirección de I/O con prácticamente cualquier comando que emita su salida a la consola. En este caso, el contenido del directorio /etc (un directorio del sistema) se guarda en Texto2.txt en vez de aparecer en pantalla. Verifique su existencia usando la interfase gráfica o bien el comando ls y verifique su contenido con programa el programa gedit, ya sea haciendo doble click en el archivo o bien con el comando gedit Texto2.txt. 7. Ahora se verá cómo comprimir archivos mediante el comando gzip. Utilice gzip sobre el archivo Texto2.txt así: $ gzip -c Texto2.txt Como se puede apreciar, la salida del comando (el archivo comprimido en sí, en formato binario) apareció directamente en pantalla. Esto no es muy útil, ya que la información en pantalla no quedó almacenada. 8. Para solventar la situación, redirija la salida del mismo comando a un archivo en esta ocasión: $ gzip -c Texto2.txt > comprimido.gz Confirme la existencia del archivo ahora mediante el comando ls. 9. Para descomprimir el archivo, utilice el comando gunzip aprovechando de una vez la redirección hacia un archivo, de la siguiente manera: gunzip -c comprimido.gz > descomprimido.txt Confirme que el contenido sea el mismo (el mismo listado de archivos del directorio /etc) usando la interfase gráfica y el programa gedit o bien gedit descomprimido.txt. Nota: El programa gzip es incapaz de manejar varios archivos simultáneamente, por lo que sólo es posible comprimir un archivo a la vez. Más adelante se verá como combinar gzip con tar (un utilitario para pegar varios archivos en uno solo) para obtener la funcionalidad completa de compresión de múltiples archivos. Parte II - Tuberías. 10. Proceda a visualizar en consola el contenido del archivo Texto2.txt creado en la primera parte usando el comando cat:

5 $ cat Texto2.txt Note como la salida del comando es muy extensa, ya que el archivo es grande y su contenido llena varias pantallas. La única manera de ver todo el contenido es utilizando las barras de desplazamiento de la ventana de consola. 11. En esta ocasión, despliegue el contenido del mismo comando usando tuberías y el comando auxiliar more: $ cat Texto2.txt more Ahora el contenido del archivo se muestra pantalla por pantalla al presionar la barra espaciadora. Esto es gracias a que la salida del comando cat es procesada por el comando more antes de enviarse a la pantalla. 12. Cree un tercer archivo de texto de la siguiente manera: $ echo Este es el tercer archivo > Texto3.txt 13. Ahora se utilizará el programa tar para pegar el primer y tercer archivos de textos creados, con el siguiente comando: $ tar -c Texto1.txt Texto3.txt Véase como el utilitario tar también emite su salida a la consola, por lo que la manera correcta de generar el archivo debería ser utilizando redirección: $ tar -c Texto1.txt Texto3.txt > paquete.tar Verifique posteriormente la existencia del archivo con ls. 14. Comprima el archivo.tar del paso anterior con gzip: $ gzip -c paquete.tar > paquete.tar.gz Como puede verse, de esta manera se pueden obtener los famosos archivos.tar.gz que son ampliamente utilizados en muchas de las distribuciones de Linux. Confirme la existencia del nuevo archivo con ls. El siguiente paso consistirá en realizar el mismo proceso pero en un solo comando, combinando todos los conceptos vistos anteriormente.

6 15. Cree un nuevo paquete.tar.gz mediante tuberías y redirección de entradas y salidas: $ tar -c Texto1.txt Texto2.txt Texto3.txt gzip > paquete2.tar.gz El proceso realizado en este comando consiste primeramente de la creación de un archivo.tar a partir de los 3 documentos de texto, luego, la salida de ese comando es enviada mediante tuberías a el comando gzip, el cual al ser invocado sin argumentos, toma automáticamente la salida de la tubería y la comprime. Finalmente, la salida del comando gzip (el archivo comprimido) es redirigida hacia un archivo en el disco duro para ser almacenado. Proceda a verificar que el nuevo archivo comprimido existe mediante ls. 16. Elimine los 3 archivos de texto originales de la siguiente manera: $ rm Texto1.txt Texto2.txt Texto3.txt Confirme ahora que los archivos no existen mediante ls. 17. Con los originales eliminados, proceda a restaurarlos desde el segundo archivo comprimido utilizando tuberías: $ gunzip -c paquete2.tar.gz tar -x El proceso de extracción es exactamente el inverso al de compresión, ya que primeramente se descomprime el archivo mediante gunzip, lo que nos genera un archivo.tar con los 3 archivos de texto pegados entre sí; a continuación el contenido del.tar es pasado mediante tuberías (sin que un archivo intermediario de extensión.tar realmente exista) al comando tar, el cual despega los archivos y los guarda separadamente en el disco duro. El parámetro -x indica a tar que se desea extraer información, pero nótese que no se usa redirección para mandar la información a un archivo, ya que no es posible crear múltiples archivos con éste método y también porque el comando tar automáticamente los genera separadamente en el disco duro. Parte III - Sentencias de control de flujo. 18. Proceda a crear un nuevo guión de bash mediante el programa gedit:

7 $ gedit guion1.sh Luego introduzca el siguiente contenido: #!/bin/bash #Verifica si el archivo Texto4.txt existe, y emite un mensaje #acordemente. El comando [ -a nombre_de_archivo ] permite #verificar si un archivo existe. if [ -a Texto4.txt ] then echo "El archivo Texto4.txt existe" else echo "El archivo Texto4.txt no existe" fi #Verifica si los archivos "Texto4.txt" y "Texto5.txt" existen, #emitiendo mensajes diferentes según exista uno u otro. El #operador && se trata de una operación AND que permite probar si #dos condiciones se cumplen a la vez. if [ -a Texto4.txt ] && [ -a Texto5.txt ] then echo "Ambos archivos existen" elif [ -a Texto4.txt ] then echo "Solo Texto4.txt existe" elif [ -a Texto5.txt ] then echo "Solo Texto5.txt existe" else echo "Ningun archivo existe" fi 19. Agregue el permiso de ejecución al guión y luego proceda a ejecutarlo: $ chmod +x guion1.sh $./guion1.sh Note como el guión indica que no existe ningún archivo al ejecutarlo.

8 20. Proceda a probar el guión creado los archivos Texto4.txt y Texto5.txt de manera alternada para comprobar su funcionamiento. Recuerde ejecutar el guión con./guion1.sh para cada prueba. 21. De manera similar los pasos 18 y 19, cree y ejecute el siguiente archivo de guión. Nombre el archivo como guion2.sh (no olvide agregar el permiso de ejecución). #!/bin/bash #Se imprime un menu simple mediante el comando echo echo "Menu:" echo "1- Ver usuario actual" echo "2- Ver fecha actual" echo "3- Ver directorio actual" echo "Seleccione una opción:" #Se lee el texto que digite el usuario y se guarda en la variable #"Opcion" read Opcion #Se procede ahora a ejecutar comandos de acuerdo a la eleccion #del usuario case $Opcion in 1) #Cada caso lleva el numero o palabra seguido de un parentesis #Para la opcion 1 se muestra una variable de entorno que ya de #por si contiene el nombre del usuario echo "El usuario actual es: $USER" #Notese que es posible incluir variables anteponiendo el #simbolo de dolar a las mismas ;; #Cada caso debe terminarse con 2 caracteres de punto y coma 2) echo "La fecha actual es:" date #El comando date sirve para mostrar la fecha ;; 3) pwd #En la opcion 3 se usa el comando pwd para mostrar el #directorio actual ;;

9 *) #Todos los demas casos se indican con el simbolo asterisco echo "La opcion $Opcion no es valida" ;; esac #La sentencia "case" debe terminarse con "esac" ("case" al #reves) 22. Verifique el guión ejecutándolo en varias ocasiones, y seleccionando opciones diferentes. Pruebe también introduciendo opciones no válidas. 23. Cree un guión con el nombre guion3.sh con el siguiente contenido: #!/bin/bash echo "Imprimiendo los numeros del 1 al 10:" i="1" #inicializa la variable i a 1 while [ $i -le 10 ] #La operación [ X -lt Y ] comprueba si la expresion X es menor que #la expresión Y. do echo "$i" #Imprime el valor de la variable i i=$[ $i + 1 ] #Le suma 1 a i done Recuerde agregar el permiso de ejecución antes de ejecutarlo. Verifique que se imprima una serie de números en la pantalla. 24. Presente todos sus resultados y archivos generados a su docente para que le sean evaluados. 25. Cierre la consola de bash con el comando exit. Apague el equipo y deje en orden su puesto de trabajo.

10 Análisis de resultados El método de descompresión visto en la segunda parte usa tuberías para extraer los archivos sin archivos intermediarios (.tar). Cual sería la secuencia de comandos para hacerlo mediante tal archivo? De qué manera sería posible generar la secuencia de números en orden inverso en el tercer guión?

11 Hoja de cotejo: 6 Guía 6: USO DE BASH EN LINUX PARTE II. Alumno: Puesto No: Docente: GL: Fecha: EVALUACION % 1-4 5-7 8-10 Nota CONOCIMIENTO 25 Explica el proceso de utilización de redirección de entradas y salidas deficientemente. APLICACIÓN DEL CONOCIMIENTO 20 No realizó correctamente la parte de redirección de entradas y salidas. 20 No realizó correctamente la parte de tuberías. 30 Realizó correctamente al menos uno de los guiones automatizados. ACTITUD 2.5 Es un observador pasivo. TOTAL 100 2.5 Es ordenado pero no hace un uso adecuado de los recursos. Explica bien los procesos de redirección, pero desconoce el proceso de utilización de tuberías. Realizó la parte de redirección, pero falló en uno o varios punto. Realizó la parte de tuberías, pero se cometió un fallo en uno o varios puntos. Realizó correctamente al menos 2 de los guiones. Participa ocasionalmente o lo hace constantemente pero sin coordinarse con su compañero. Hace un uso adecuado de lo recursos, respeta las pautas de seguridad, pero es desordenado. Explica claramente todos los conceptos. Realizó correctamente todos los puntos asociados a la redirección de entradas y salidas. Realizó correctamente toda la parte de tuberías. Realizó correctamente los 3 guiones. Participa propositiva e integralmente en toda la práctica. Hace un manejo responsable y adecuado de los recursos conforme a pautas de seguridad e higiene.