Está en la página 1de 5

Conceptos Fundamentales sobre UNIX

Laboratorio 7.1.7 – Redireccionamiento y Uso del Pipe


(Tiempo estimado: 45 min.)

Objetivos:
• Familiarizarse con el redireccionamiento de entrada / salida [input / output] (I/O)
• Redireccionar un resultado estándar para crear un Archivo
• Evitar la sobrescritura de archivos cuando se redirecciona
• Adjuntar resultados al final de un archivo existente
• Utilizar el pipe con el resultado de un comando para dirigirlo a otro

Trasfondo:
En este laboratorio, el alumno utilizará comandos UNIX avanzados para lograr el
redireccionamiento y el uso del pipe. Cada comando UNIX tiene un origen para la entrada estándar
y un destino para el resultado estándar. La entrada a un comando proviene normalmente del
teclado, aunque puede provenir de un archivo. El resultado o salida de un comando normalmente
se dirige al monitor o pantalla. El entorno informático UNIX permite controlar la I/O utilizando
redireccionamiento. Esto es útil al intentar guardar el resultado de un comando en un archivo para
su posterior visualización. Por medio del pipe, el usuario puede tomar el resultado de un comando
y utilizarlo como entrada para otro comando para su posterior procesamiento.

Herramientas / Preparación:
a) Antes de iniciar este laboratorio, el alumno deberá revisar el Capítulo 7, Sección 1 –
Administración Avanzada de Directorios y Archivos Utilizando la Línea de Comandos.
b) El alumno necesitará lo siguiente:
1. Una ID de login del usuario, por ejemplo user2, y una contraseña asignadas por su
instructor.
2. Una computadora que ejecute el sistema operativo UNIX con el CDE.
3. Computadoras en red en el aula con el sistema de archivos de la clase instalado.

Notas:
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________
_______________________________________________________________________________

1-5 Conceptos Fundamentales sobre UNIX 2.0 – Lab 7.1.7 Copyright ® 2002, Cisco Systems, Inc.
Utilice el diagrama del árbol de directorios del sistema de archivos de la clase de muestra
para que lo asista en este laboratorio.

Estructura del Árbol de Archivos de la Clase

Paso 1. Hacer login al CDE.


El alumno deberá hacer login con el nombre de usuario y la contraseña asignados por el instructor,
en el recuadro de entrada del CDE.

Paso 2. Acceder a la Línea de Comandos.


Haga clic con el botón derecho en el fondo del espacio de trabajo y haga clic en Tools
(Herramientas). Seleccione Terminal desde el menú para abrir una ventana de terminal.

Redireccionamiento de Entrada / Salida – Descripción General


Existen varios metacaracteres que se utilizan como símbolos de redireccionamiento. El
redireccionamiento de salida utiliza el signo mayor que (>). El redireccionamiento de entrada utiliza
el signo menor que (<). El redireccionamiento de resultado de error utiliza el signo mayor que
precedido por el número dos (2>). Este laboratorio se concentrará en el redireccionamiento de
salida.

Formato general: Comando Símbolo de Redireccionamiento Archivo


(archivo de texto o de dispositivo)

Paso 3. Redireccionamiento de salida estándar para crear un archivo.


La salida o resultado estándar se redirige mucho más frecuentemente que la entrada estándar o el
error estándar. Muchos comandos, tales como ls, cat , head , y tail generan un resultado
estándar en la pantalla y frecuentemente es deseable redirigir este resultado a un archivo para su
futura visualización, manipulación o impresión. Al sustituir un nombre de archivo, el usuario puede
capturar el resultado de un comando en lugar de dejarlo ir al monitor por defecto. Ésta es una
buena forma de crear un archivo de texto de forma mensurable para la práctica.

El símbolo mayor que (>) permite al comando enviar el resultado a un archivo. Utilizar el símbolo
mayor que creará un nuevo archivo si el nombre de archivo especificado no existe. Si el nombre de
archivo existe se sobrescribirá. Nota: los espacios entre el comando, el símbolo de
redireccionamiento y el nombre del archivo son opcionales.

2-5 Conceptos Fundamentales sobre UNIX 2.0 – Lab 7.1.7 Copyright ® 2002, Cisco Systems, Inc.
Formato del Comando: comando > archivo

a. Verifique que el directorio de trabajo sea el directorio home. ¿Qué comando se utilizó?
__pwd__ ¿Qué comando se utilizaría para cambiarse al directorio home, si
no estuviera allí? __cd__

b. Para rastrear qué hay en el directorio home, capture un listado de archivos y


directorios a un archivo del directorio home. ¿Qué comando se utilizaría para redirigir
el resultado de un listado de archivo largo y crear un nuevo resultado llamado
homedir.list? ___ls > homedir.list__

c. ¿Dónde estaba ubicado este archivo nuevo homedir.list?


_En el home del usuario_ Utilice el comando para verificar que el nuevo archivo
esté presente.

d. ¿Qué comando podría utilizarse para visualizar el contenido del archivo que acaba de
ser creado de a una página a la vez? _more homedir.list_

e. Capture las 10 primeras líneas del archivo homedir.list utilizando el comando head y
cree un nuevo archivo llamado dhomedir.list-top-10 utilizando redireccionamiento.
¿Qué comando se utilizó? __head -10 homedir.list > dhomedir.list-top-10__ Visualice el
contenido Del archivo utilizando el comando
. more

f. Capture las 10 últimas líneas del archivo homedir.list utilizando el comando tail y
cree un nuevo archivo llamado dhomedir.list-bot-10 utilizando redireccionamiento.
¿Qué comando se utilizó? _tail -10 homedir.list > dhomedir.list-bot-10_ Visualice el contenido
del archivo utilizando el comando more.

g. Capture el resultado del comando cal 2002 al archivo llamado calendar. Visualice el
contenido del archivo. ¿Qué se capturó? __El calendario del 2002_

h. Capture el resultado del comando cal 2010 al archivo llamado calendar. Visualice el
contenido del archivo. ¿Qué hay en el archivo? _El calendario del 2010_ ¿Qué pasó con el
calendario de 2002? _Se sobreescribio_

Paso 4. Evitar la sobrescritura de archivos con redireccionamiento.


En el shell Korn, puede configurarse una opción llamada noclobber para evitar la sobrescritura de
archivos durante el redireccionamiento. Esto puede llevarse a cabo en la línea de comandos
utilizando $ set -o noclobber . La ‘o’ significa opciones. Para volver a habilitar clobbering,
utilice $ set +o noclobber . Para habilitar/inhabilitar clobbering con el Shell C: % set
noclobber y % unset noclobber.

a. Introduzca el comando que sirve para activar noclobber con el shell Korn. ¿Qué
comando se introdujo? _set -o noclobber_

b. Introduzca el comando: ls –l > homedir.list. ¿Cuál fue el resultado?


_bash: homedir.list: no se puede sobreescribir un archivo existente_

c. Introduzca el comando: ls –l > homedir.list2. ¿Cuál fue el resultado?


_Se creo un nuevo archivo con la lista detallada de home de usuario_

3-5 Conceptos Fundamentales sobre UNIX 2.0 – Lab 7.1.7 Copyright ® 2002, Cisco Systems, Inc.
Paso 5. Adjuntar el resultado al final de un archivo existente.
El símbolo mayor que doble (>>) puede utilizarse si el usuario desea adjuntar, agregar al final, un
resultado a un archivo existente en lugar de sobrescribirlo. Esta opción crea un nuevo archivo si no
existe uno o adjunta a uno existente.

Formato del Comando: comando >> archivo

a. Introduzca el comando que sirva para mostrar un banner (cartel) que diga: Happy Bday
(Feliz Cumpleaños) y utilice el símbolo de redireccionamiento para capturar el
resultado a un archivo llamado bday4me. ¿Qué comando se utilizó?
__banner 'Happy Bday'> bday4me__

b. Introduzca el comando que sirva para mostrar un banner que diga: YOURNAME!,
algún nombre, y utilice los símbolos de redireccionamiento dobles para adjuntar el
resultado del archivo bday4me. Visualice el contenido del archivo bday4me. ¿Qué hay
en el archivo? __banner 'DARLIN!'>> bday4me__

c. Introduzca el comando que sirva para mostrar el calendario para un mes y año de
nacimiento específicos. Por ejemplo, si alguien nació en junio de 1965, introduzca: cal
6 1965. Utilice los símbolos de redireccionamiento dobles para adjuntar el resultado al
final del archivo bday4me. ¿Qué comando se utilizó? __cal 03 2001 >> bday4me__

d. Visualice el contenido del archivo bday4me. Nótese que el resultado de tres comandos
se ha combinado en este archivo. ¿En qué día de la semana nació esta persona?
__Sábado__

Paso 6. Utilizar pipe para pasar el resultado de un comando a otro.


Uno de los metacaracteres más potentes es el pipe (|). El pipe toma el resultado estándar de un
comando y lo pasa como entrada estándar al comando siguiente, usualmente el comando more o
el comando lp (line printer – impresora de línea). El pipe también puede pasar el resultado
estándar a un comando de procesamiento de archivos como grep, o sort, que se tratan en el
Capítulo 8. El símbolo pipe en ocasiones se denomina doble barra vertical y se halla debajo de la
tecla retroceso. El usuario siempre debe tener un comando a cada lado de un pipe. Los espacios
entre los comandos y el pipe son opcionales.

Formato del Comando: comando | comando

a. Utilice el metacarácter para enviar el resultado del comando ls –l como entrada al


comando more. ¿Qué ocurrió como resultado de utilizar el pipe con el resultado del
comando more? _Se presentó la lista como si se leyese un archivo de texto._

b. Mire los archivos que aparecen en la lista del comando ls –l | more y fíjese en
algunas de las fechas creadas o modificadas. Para ver un listado de archivos o
directorios que se crearon o modificaron durante el mismo mes, puede utilizarse el
comando grep para buscar dicho mes. Especifique el mes exactamente como se lo
mostró en el listado (por ej., Oct). Introduzca este comando: ls –l | grep Oct o
introduzca el mes deseado. ¿Cuál fue el resultado?
_Un listado con los archivos creados en el mes de noviembre ls -l | grep Nov_

c. Los directorios siempre tienen un tamaño de 512 bytes. Introduzca el comando: ls –l


| grep 512. ¿Qué había en el listado de resultado?
___Nada___

4-5 Conceptos Fundamentales sobre UNIX 2.0 – Lab 7.1.7 Copyright ® 2002, Cisco Systems, Inc.
d. En KDE, el tamaño por defecto de un directorio es 4096, por lo tanto este comando no
dará como resultado ningún valor.

e. Pueden utilizarse varios pipes para conectar múltiples comandos. Introduzca el


comando que llevará el resultado del listado de archivos largo y conéctelo con pipe al
comando tail y luego al comando sort. ¿Qué comando se introdujo?
__ls -l | tail -2 |sort -b__

f. El comando ps (process status – estado del proceso) se utiliza para ver qué procesos
se están ejecutando en un sistema UNIX. Utilice el pipe con el resultado del comando
ps –e para dirigirlo al comando more. La opción –e mostrará cada proceso que se
ejecuta en el sistema. ¿Qué ocurrió como resultado de utilizar el pipe con el resultado
para dirigirlo al comando more? __Mostró un listado de procesos como si se tratase de un
Archivo de texto.__
Paso 7. Borrar los archivos y directorios creados en este laboratorio.
Tome como referencia la estructura del árbol del sistema de archivos de la clase y borre todos los
archivos y directorios creados en el directorio home durante este laboratorio. Incluya aquéllos
creados bajo el directorio practice.

Paso 8. Cerrar la ventana de terminal y hacer logout.


Haga doble clic en el botón de raya que se encuentra en el extremo superior de la pantalla, luego
haga clic en el ícono EXIT (SALIDA) del panel frontal.

5-5 Conceptos Fundamentales sobre UNIX 2.0 – Lab 7.1.7 Copyright ® 2002, Cisco Systems, Inc.

También podría gustarte