Arquitectura de computadoras. Guía 5 1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Arquitectura de computadoras Lugar de ejecución: Lab. de arquitectura de computadoras, edif. de electrónica. Tema: Uso de Bash en Linux. 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 Linux (Cualquier distribución que incluya gnome y bash, preferiblemente CentOS o Ubuntu). Introducción teórica Dentro del ámbito de los sistemas operativos, existen diferentes tipos de interfases de usuario, de las cuales las más comunes son las de tipo gráfico y las de línea de comando; sin embargo, las interfases de tipo gráfico requieren muchos más recursos (poder de procesamiento) y la correcta configuración del hardware de vídeo de la PC, cosa que no siempre ha estado disponible históricamente. Inicialmente, cuando las computadoras no poseían el poder de procesamiento que las caracteriza hoy día, y los sistemas operativos no contaban con interfases de tipo gráfico, sino que en vez utilizaron interfases mucho mas “simples” desde el punto de vista de programación. Tales interfases se trataban comúnmente de terminales de texto (sin capacidades gráficas), donde el usuario indica a la computadora qué hacer por medio de escribir comandos a la PC, mostrándose en pantalla dichos comandos así como los resultados de los mismos. Arquitectura de computadoras. Guía 5 2 Si bien las interfases de línea de comando han decaído en uso a lo largo de los años, muchos sistemas operativos modernos todavía cuentan con interfases de ese tipo, pero con propósitos únicamente de mantenimiento, reparación o diagnóstico. En este sentido, incluso sistemas operativos como Windows o Linux en sus versiones más modernas incluyen tales interfases. El caso particular que se (Bourne again shell), el Bourne y que se ha vuelto estando disponible en una abordará en la guía es el del programa bash cual fue creado para GNU/Linux por Stephen un estándar defacto a lo largo de los años, gran cantidad de distribuciones de Linux. Bash es un potente intérprete de comandos, el cual no sólo permite ejecutar otros programas, sino que además, posee capacidades de manejo de archivos, ejecución de guiones automatizados (scripts), un lenguaje estructurado con sentencias de control de flujo, variables de entorno, redirección de entradas y salidas, etc. Todas estas capacidades, así como su estabilidad y robustez son las que le han permitido establecerse como la interfase de línea de comandos por defecto en muchas distribuciones de Linux. A continuación se detalla brevemente una lista de algunos de los comandos o programas que se pueden ejecutar desde bash. • • • • • • • PWD Imprime el directorio actual LS (opciones) (directorio) Muestra los contenidos del directorio seleccionado. CD (directorio) Cambia el directorio actual. MKDIR (directorio) Crea un directorio en la ubicación seleccionada. CP (origen) (destino) Copia el archivo o directorio origen al nombre de archivo o directorio de destino. MV (origen) (destino) Mueve (o también renombra) el archivo o directorio origen al archivo o directorio de destino. RM (archivo) Elimina el archivo seleccionado. Arquitectura de computadoras. Guía 5 • • • • • • • • • 3 RMDIR (directorio) Elimina el directorio seleccionado. CHMOD (Opciones) (archivo o directorio) Cambia los permisos del archivo o directorio seleccionado. CHOWN (Nombre de usuario) (archivo o directorio) Cambia el usuario que es dueño del archivo o directorio seleccionado CHGRP (Nombre de grupo) (archivo o directorio) Cambia el grupo actual que es dueño el archivo o directorio seleccionado. MAN (nombre de comando) Muestra la ayuda del comando seleccionado INFO (nombre de comando) Muestra información detallada del comando seleccionado. CAT (nombre de archivo) Muestra el contenido del archivo de texto seleccionado. CLEAR Limpia la pantalla de todo texto existente y deja únicamente la linea de comandos actual. EXIT Cierra la sesión de bash o la ventana donde se está ejecutando. Procedimiento PARTE I - Manejo de archivos y directorios. 1. Arranque su computadora utilizando el sistema operativo Linux e inicie sesión con el nombre de usuario y clave que su docente le indique. 2. Inicie una ventana de bash, ya sea presionando las teclas Alt+F2 y digitando “gnome-terminal”, o bien desde el menú de Gnome: Aplicaciones->Accesorios->Terminal. 3. Utilice el comando “pwd” para ver el directorio actual. Anote la ruta que obtuvo: __________________________________. Note que por defecto, bash inicia en el directorio home del usuario que tiene la sesión activa. 4. Haga un listado de los directorios que existen en su ubicación actual con los siguientes comandos: Arquitectura de computadoras. Guía 5 4 $ls $ls -l $ls -a Note las diferencias de cada comando y vea cómo las opciones afectan la salida del mismo. El caso del parámetro -l provoca que se muestre información mucho más detallada de cada archivo, mientras que el parámetro -a provoca que se listen todos los archivos y directorios ocultos (cuyo nombre comienza con un punto). Note también que es posible mezclar los parámetros para obtener mucha más información en conjunto: $ls -a -l 5. Ahora cámbiese al directorio del escritorio, para ello utilice el comando: $cd Desktop Nótese que el directorio Desktop (cuidado con la D mayúscula) fue listado en el comando anterior. Note también cómo ahora el prompt (el texto que aparece antes del símbolo de dólar) ahora refleja la nueva ruta actual. 6. Proceda a crear un nuevo directorio con el siguiente comando: $mkdir practica5 Vea cómo el nuevo directorio aparece automáticamente en el entorno gráfico del escritorio. Proceda a cambiarse a ese directorio de manera similar al paso anterior. 7. Ahora se verá cómo puede iniciar un programa desde la línea de comandos. Crearemos un nuevo archivo de texto por medio del editor de texto gedit, de la siguiente manera: $gedit documento1.txt Esto provocará que se inicie el programa en una nueva ventana. Como se le dio un nombre de archivo, el mismo editor reconoce que lo queremos hacer dentro del directorio actual (practica5). Escriba cualquier texto de prueba y salve el archivo con las teclas ctrl+S. Luego cierre el programa. Puede confirmar que el archivo de texto realmente existe dentro del directorio que se creó abriéndolo con doble click. 8. Proceda a visualizar el texto que está en el archivo de la siguiente manera: $cat documento1.txt Arquitectura de computadoras. Guía 5 5 9. Ahora proceda a cambiar los permisos del archivo para que ya no se pueda realizar ninguna acción en él (ni escritura ni lectura) $chmod -rw documento1.txt Intente utilizar cat para ver si puede visualizar el contenido del archivo y note como esto no es posible ahora. Utilice el comando “ls -l” y vea cómo los permisos aparecen como una serie de guiones, indicando que no se puede realizar ninguna acción con el archivo. 10. Restablezca únicamente el permiso de escritura con el siguiente comando: $chmod +r documento1.txt Utilice ahora “ls -l” y vea que aparece la letra r indicando el permiso de lectura. Note también que es posible utilizar cat para ver el contenido del archivo. 11. Edite nuevamente el archivo de texto con gedit (“gedit documento1.txt”). Note que el archivo se puede abrir y leer, pero al editarlo, el programa no permite guardar, dado que no se tiene permiso de escritura. Cierre gedit (sin salvar) y restablezca los permisos de escritura de la siguiente manera: $chmod +w documento1.txt Abra de nuevo el archivo con gedit y note cómo ahora es posible salvar. Use el comando “ls -l” y vea como aparecen las letras r y w indicando que es posible tanto leer como escribir en el archivo. 12. Una vez hechas todas las operaciones sobre el archivo, proceda a borrarlo con el siguiente comando: $rm documento1.txt Note que para poder borrar archivos, es necesario que tengan el permiso de escritura habilitado. Liste el directorio con “ls” para confirmar que está vacío. 13. Cámbiese un directorio arriba (de nuevo a Desktop) con el siguiente comando: $cd .. 14. Proceda a borrar el directorio practica5 de la siguiente manera: $rmdir practica5 Note cómo al realizar la operación el directorio desaparece automáticamente en el entorno gráfico. Cabe aclarar que para poder borrar un directorio, es necesario que el mismo esté vacío (cosa Arquitectura de computadoras. Guía 5 6 que se realizó al borrar primeramente el documento de texto). PARTE II – Realización de guiones automatizados. 15. Utilice el programa gedit para crear el archivo “guion.sh” en el directorio Desktop, de manera similar a lo visto en el paso 7, y digite el siguiente contenido: #!/bin/bash #puede insertarse comentarios como este con el carácter numeral mkdir parte2 #crea el directorio cd parte2 #se cambia al directorio #crea un archivo con el texto deseado echo este es un archivo de solo lectura > solo_lectura.txt chmod -w solo_lectura.txt #quita el permiso de escritura Una vez digitado el guión, proceda a salvarlo y cierre gedit 16. Para poder ejecutar el guión, es necesario establecerle el permiso de ejecución (indicado por la letra x). Proceda a agregar dicho permiso: $chmod +x guion.sh 17. Ahora puede ejecutar el guión desde la invocando su nombre de la siguiente manera: linea de comandos ./guion.sh Note cómo al ejecutarlo, aparece de inmediato el directorio “parte2” y en su interior tiene el archivo de texto “solo_lectura.txt” con el contenido “ este es un archivo de solo lectura” y los permisos establecidos acordemente. Puede constatar esto utilizando la interfase gráfica (haciendo doble click en la carpeta). 18. Proceda ahora a diseñar su propio guión automático que elimine los archivos creados por el primer guión utilizando todos los comandos vistos anteriormente. Recuerde los siguientes puntos al realizarlo: • El guión debe comenzar con la linea “#!/bin/bash” para que el Arquitectura de computadoras. Guía 5 sistema lo reconozca como permiso de ejecución (x). tal. Además, el guión debe 7 tener • Es necesario que el permiso de escritura esté presente en el archivo antes de borrarlo. Además, se debe estar dentro del directorio del archivo (parte2) para poder interactuar con él. • Es necesario que el directorio esté vacío al borrarlo y no debe estar trabajando dentro de él al momento de hacerlo (hay que cambiarse al directorio que lo contiene). 19. Una vez termine su trabajo, avise a su docente para que le sea evaluado. Procure dejar una copia de los archivos generados durante la práctica para que quede constancia. Cuando termine su evaluación, apague su equipo. Análisis de resultados • • • Al listar los directorios “ls -l”, ¿qué otra información aparte de los permisos se puede obtener? ¿Considera que es posible renombrar un archivo de manera automática con un guión? ¿De que manera se puede lograr? ¿Que ocurre si al ejecutar un guión se produce algún error? Arquitectura de computadoras. Guía 5 Hoja de cotejo: 5 Guía 5: USO DE BASH EN LINUX. Puesto No: Alumno: GL: Docente: Fecha: EVALUACION % 1-4 5-7 8-10 CONOCIMIENTO 25 Explica la utilización de los comandos para manipulación de archivos de manera deficiente. Explica claramente todos los conceptos. APLICACIÓN DEL CONOCIMIENTO 35 No realizó correctamente la parte de manipulación de archivos. No realizó correctamente la parte de guiones automatizados. Explica bien los comandos para manipulación de archivos, pero desconoce el proceso de creación de guiones. Realizó la manipulación de archivos, pero falló en uno o varios punto. Realizó bien el primer guión automatizado, pero el segundo falló al ejecutarlo. 35 ACTITUD TOTAL 2.5 Es un observador pasivo. 2.5 Es ordenado pero no hace un uso adecuado de los recursos. 100 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. Realizó correctamente todos los puntos asociados a la manipulación de archivos. Realizó correctamente el primer guión y el segundo guión funcionó correctamente. 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. Nota 8