GUÍA PARA LAS PRÁCTICAS DE LABORATORIO, TALLER O CAMPO |
ASIGNATURA: | Sistemas Operativos | PERIODO LECTIVO: | 201951 | NIVEL: | 3ro |
DOCENTE: | Rolando Armas, PhD. | NRC: | 4847(A) / 4849 (B) | PRÁCTICA N°: | 3 |
LABORATORIO DONDE SE DESARROLLARÁ LA PRÁCTICA: | Laboratorio de Computación Nº. 4 |
TEMA DE LA PRÁCTICA: | Unidad 02-Laboratorio 3: Pipes |
INTRODUCCIÓN: |
Una tuberia (pipe) es una forma de redireccionamiento que se utiliza en Linux y otros sistemas operativos similares a Unix para enviar la salida de un programa a otro programa para su posterior procesamiento.
La redirección es la transferencia de salida estándar a otro destino, como otro programa, un archivo o una impresora, en lugar del monitor de pantalla (que es su destino predeterminado). La salida estándar, a veces abreviada stdout, es el destino de la salida de los programas de línea de comandos (es decir, modo de texto completo) en sistemas operativos tipo Unix.
Las tuberías se utilizan para crear lo que se puede visualizar como una tubería de comandos, que es una conexión directa temporal entre dos o más programas simples. Esta conexión hace posible la realización de una tarea altamente especializada que ninguno de los programas constituyentes podría realizar por sí mismo.
Una tubería se designa en los comandos mediante el carácter de barra vertical (|), que se encuentra en la misma tecla que la barra diagonal inversa (\). La sintaxis general para tuberías es:
comando_1 | comando_2 [| comando_3. . . ]
Esta cadena puede continuar para cualquier número de comandos o programas.
|
OBJETIVOS: |
Analizar la forma de usar las tuberías (pipes) |
MATERIALES: |
REACTIVOS: N/A
|
INSUMOS: Sistemas Operativo Linux
|
EQUIPOS: Computador de escritorio del Laboratorio de Computación
|
MUESTRA: |
INSTRUCCIONES: |
- Digite el comando
- $ dmesg.
- El comando dmesg, repite los mensajes de inicio que se desplazan a través de la consola (es decir, la pantalla de texto) mientras Linux realiza el boot (es decir, se inicia). Observe los mensajes que se emiten durante el booteo.
- Dmesg por sí mismo produce demasiadas líneas de salida para caber en una sola pantalla; por lo tanto, su salida se desplaza hacia abajo en la pantalla a alta velocidad y solo la pantalla final de mensajes es fácilmente legible. Sin embargo, al canalizar la salida de dmesg al filtro less, los mensajes de inicio se pueden ver convenientemente una pantalla a la vez, es decir:
- $ dmesg | less.
- El filtro less permite que la salida de dmesg avance una pantalla a la vez presionando la barra ESPACIADORA y retroceda una pantalla a la vez presionando la tecla b. El comando se puede terminar presionando la tecla q.
- El mismo resultado podría lograrse primero redirigiendo la salida de dmesg a un archivo temporal y luego mostrando el contenido de ese archivo en el monitor.
- dmesg > tempfile1
- cat tempfile1 > less
- Sin embargo, la redirección a un archivo como un paso intermedio es claramente menos eficiente, tanto porque se requieren dos comandos separados como porque el segundo comando debe esperar la finalización del primer comando antes de que pueda comenzar. El uso de dos tuberías para encadenar tres comandos juntos podría hacer que el ejemplo anterior sea aún más conveniente para algunas situaciones. Por ejemplo, la salida de dmesg primero se puede canalizar al filtro de clasificación para organizarlo en orden alfabético antes de canalizarlo a menos:
- $ dmesg | sort -f | less
- Pruebe los comandos:
- $ ls -al | less
- $ ls -al | more
- $ ls -al /bin | less
- El siguiente ejemplo emplea una tubería para combinar los comandos ls y wc (es decir, recuento de palabras) para mostrar cuántos objetos del sistema de archivos (es decir, archivos, directorios y enlaces) hay en el directorio actual:
- $ ls | wc -l
- ls enumera cada objeto, uno por línea, y esta lista se canaliza a wc, que, cuando se usa con su opción -l, cuenta el número de líneas y escribe el resultado en la salida estándar (que, como de costumbre, es la pantalla de visualización)
- La salida de una tubería de comandos se puede redirigir fácilmente a un archivo o una impresora (donde se imprime en papel). En el caso del ejemplo anterior, la salida podría redirigirse a un archivo llamado, por ejemplo, count.txt:
- $ ls | wc -l > count.txt
- El siguiente es un ejemplo un poco más complejo de combinar una tubería con la redirección a un archivo:
- echo -e "naranja \npera \ncereza" | sort > frutas.txt
- El comando echo le dice a la computadora que envíe el texto que sigue a la salida estándar, y su opción -e le dice a la computadora que interprete cada \n como el símbolo de nueva línea (que se usa para comenzar una nueva línea en la salida). La tubería redirige la salida de echo -e al comando sort, que lo ordena alfabéticamente, después de lo cual el operador de redirección de salida lo redirige al archivo frutas.txt
- Como último ejemplo, y para ilustrar aún más la gran potencia y flexibilidad que pueden proporcionar las canalizaciones, a continuación se utilizan tres canalizaciones para buscar el contenido de todos los archivos en el directorio actual y mostrar el número total de líneas que contienen la cadena “Linux” pero no la cadena “UNIX”:
- cat * | grep "Linux" | grep -v "UNIX" | wc -l
- En el primero de los cuatro segmentos de esta tubería, el comando cat, que se utiliza para leer y concatenar (es decir, unir) el contenido de los archivos, concatena el contenido de todos los archivos en el directorio actual. El asterisco es un comodín que representa todos los elementos en un directorio específico, y en este caso sirve como argumento para que cat represente todos los objetos en el directorio actual. La primera tubería envía la salida de cat al comando grep, que se usa para buscar texto. El argumento de Linux le dice a grep que devuelva sólo aquellas líneas que contienen la cadena “Linux”. La segunda tubería envía estas líneas a otra instancia de grep, que, a su vez, con su opción -v, elimina aquellas líneas que contienen la cadena “UNIX”. Finalmente, la tercera tubería envía esta salida a wc -l, que cuenta el número de líneas y escribe el resultado en la pantalla.
Referencia: Pipes: A Brief Introduction http://www.linfo.org/pipes.html
|
ACTIVIDADES POR DESARROLLAR: |
Consulte el manual de ayuda de los comando dmesg, less, sort. Conteste las siguientes preguntas: - ¿Que hace sort - f?
Ordenar líneas de los archivos de entrada a partir de criterios de ordenación. Los espacios en blanco son tomados por defecto como separadores de campo. Su sintaxis es de la forma: sort [opciones] [archivo] -f considera iguales las mayúsculas y minúsculas.
- ¿Cual es la diferencia entre less y more?
El comando more permite visualizar el contenido de un fichero de texto, con la diferencia de que more primero mostrará todo lo que se pueda visualizar sin desplazar la pantalla y después, pulsando la tecla espacio avanzará de igual modo por el fichero. El comando less es más completo, ya que puede hacer todo lo que hace more añadiendo mayor capacidad de navegación por el fichero (avanzar y retroceder) Tiene una gran cantidad de opciones y parámetros. - Revise el siguiente enlace y realice las operaciones definidas en el blog https://www.guru99.com/linux-pipe-grep.html
[pic 2]
[pic 3] [pic 4]
- ¿Que hace el comando grep? Explique con un ejemplo usando tuberías.
grep es una utilidad de la línea de comandos escrita originalmente para ser usada con el sistema operativo Unix. Usualmente, grep toma una expresión regular de la línea de comandos, lee la entrada estándar o una lista de archivos, e imprime las líneas que contengan coincidencias para la expresión regular. [pic 5] [pic 6]
|
RESULTADOS OBTENIDOS: |
Los resultados de la práctica, que se deberán entregar de forma electrónica son los siguientes: · Memoria de la práctica (en formato pdf).
|
CONCLUSIONES: |
- Mediante el comando cat podemos crea listas y a su vez observarlas.
- Con el comando grep podemos buscar datos de cualquier archivo.
- Estos dos comando se pueden usar en conjunto ya que uno crea y el otro busca.
|
RECOMENDACIONES: |
- Usar mas estos comandos con listas más grandes.
- Realizar múltiples búsquedas con el comando grep.
|
FIRMAS |
F: …………………………………………. Nombre:
DOCENTE | F: …………………………………………. Nombre: COORDINADOR DE ÁREA DE CONOCIMIENTO | F: …………………………………………….. Nombre: COORDINADOR DE LABORATORIOS
|