Redireccionamiento

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 20

Sistemas Operativos de Código Abierto

Pág. 2 Dpto. de TD
Sistemas Operativos de Código Abierto

LABORATORIO N° 07
REDIRECCIONAMIENTO Y TUBERIAS

Objetivo:

 Aprender a utilizar la redirección de comandos, manejo de errores y tuberías.

Requisitos:

 Una computadora con el Sistema Operativo CentOS 7.X

Procedimiento:

REDIRECCION DE COMANDOS

1. Crear una cuenta de usuario para: Jaime Ames


# useradd james
# passwd james

2. Inicie una sesión en una consola o terminal con la cuenta de james.


Sistemas Operativos de Código Abierto

3. Crear los siguientes directorios dentro del directorio hogar de james


 ventas
 informes
 docs
 docs/privados

4. Crear los siguientes archivos, con los contenidos indicados:

Archivo Contenido
/home/james/carta Ejemplo

/home/james/carta1 Prueba

/home/james/carta2 Ejemplo

/home/james/trabajo1 Ejemplo

/home/james/trabajo2 Prueba

/home/james/docs/trabajo3 Ejemplo

5. Como usuario james y estando en el directorio hogar de james muestre


el contenido de este directorio, indicar el comando utililzado.
$ ls

Pág. 4 Dpto. de TD
Sistemas Operativos de Código Abierto

6. Envíe la lista de solamente los archivos y NO de directorios a un archivo


llamado lista.txt. Indicar el comando utilizado.
$ ls -p /home/james | grep -v / > lista.txt

7. Visualice el contenido de este archivo:


$vim lista.txt

¿Cuál es el contenido del archivo lista.txt?

8. Liste los archivos que empiecen con trabaj y envíe la salida del comando al
mismo archivo anterior:
$ find -type f -name "trabaj*" >> lista.txt

9. Visualice el contenido del archivo:


$ vim lista.txt
Sistemas Operativos de Código Abierto

¿Qué pasó con el contenido anterior?


Se añadieron los archivos que empiezan con trabaj a lista.txt
10. Liste los archivos que empiecen con carta y añada la salida de este comando al
archivo anterior
$ ls carta* >> lista.txt
¿Qué pasó con el contenido anterior?
Se añadieron los archivos que empiezan con carta a lista.txt

Pág. 6 Dpto. de TD
Sistemas Operativos de Código Abierto

11. Hemos utilizado la salida del comando ls para redireccionarla a un archivo,


también podemos utilizar otros comandos, pruebe los siguientes comandos y
visualice el contenido de los archivos resultantes:
$ w > salida1.txt
$ find /etc –name motd > salida2.txt
¿Qué pasó en el primer comando?
Se listaron las sesiones iniciadas en el archivo salida1.txt

¿Qué pasó en el segundo comando?


Lista el motd del directorio etc en el archivo salida2.txt
Sistemas Operativos de Código Abierto

Nota:

También se puede utilizar los comandos de redirección para inicializar un archivo


(archivo vacío). Esto es útil para aplicativo que utilizan por ejemplo ciertos
archivos para guardar mensajes de error los cuales crecen periódicamente, pero
no pueden ser eliminados porque los requiere el aplicativo.

12. Por ejemplo supongamos que Usted necesita guardar un histórico de los
usuarios conectados al sistema en un archivo llamado usuarios.txt, entonces
periódicamente ¿Cuál sería el comando a ejecutar?

$ who > usuarios.txt

Pág. 8 Dpto. de TD
Sistemas Operativos de Código Abierto

Ejecute el comando anterior varias veces. Verifique el tamaño del archivo indicando el
tamaño del mismo.

$ ls –l usuarios.txt

13. Como notará este archivo va creciendo en tamaño. Supongamos que Usted quiere
ahora inicializar este archivo (no eliminarlo), entonces ejecute el siguiente comando:
$ > usuarios.txt
Sistemas Operativos de Código Abierto

Verifique el tamaño del archivo. ¿Cuál es su tamaño?

El tamaño se reduce a 0

Hemos visto cómo se puede redireccionar la salida de un comando con el carácter


mayor (>). También se puede redireccionar la entrada de un comando con el carácter
menor (<). Para ilustrar ésto vamos a utilizar el comando write.
14. Crear una cuenta de usuario para: Francisco García
#useradd fgarcia
#passwd fgarcia

15. Inicie una sesión en una consola o terminal con la cuenta de james. Verifique quiénes
están conectados:

16. En la consola de texto del usuario james, cree un archivo llamado mensaje utilizando el
editor de texto VI, su contenido será el siguiente:

Este es un archivo de prueba


de cómo se utiliza el caracter
de redirección de entrada

Pág. 10 Dpto. de TD
Sistemas Operativos de Código Abierto

17. Utilice el comando write para enviar el contenido del archivo mensaje al terminal de un
usuario.
Verifique que el mensaje haya llegado a la consola de texto donde ingresó como el
usuario fgarcia.
$ write fgarcia < mensaje

18. Se desea que al final del archivo procesos.txt se pueda ver la lista de usuarios
conectados y nuevamente los procesos en ejecución. ¿Cuál sería el comando?

$ who | tee -a procesos.txt


Sistemas Operativos de Código Abierto

I. MANEJO DE ERRORES

19. Ingrese a una sesión como root y cree un directorio dentro de /home con acceso
restringido.
# cd /home
# mkdir prueba
# chmod XYZ prueba (restrinja el acceso al directorio)
Nota: XYZ son valores numéricos que tendrán que reemplazarse.

20. Los errores que suceden al ejecutar un comando también se pueden


redireccionar. En la consola de texto en la que ingreso el usuario james,
Ejecute los siguientes comandos:
$ ls anual

¿Le muestra mensajes de error? ¿A qué se debe esto?


Si, ya que no existe el fichero o directorio
$ find /home –name hola

¿Le muestra mensajes de error? ¿A qué se debe esto?


Si, ya que el usuario james no tiene los permisos suficientes

Pág. 12 Dpto. de TD
Sistemas Operativos de Código Abierto

21. Redireccione los mensajes de error anteriores a un archivo, para ello utilice el
carácter de redirección 2>

¿Que información es la que se muestra?


Los mensajes de error mostrados antes

22. Verifique el contenido de los archivos:


$ cat error-ls
Sistemas Operativos de Código Abierto

$ cat error-find
¿Que contienen estos archivo?

Los mensajes de error redireccionados a este archivo de texto

23. Redireccione ahora también la salida del comando


$ find /home -name mensaje 1>resul2.txt 2>error2.txt
Visualice el contenido de estos archivos. ¿Que contiene el archivo resul2.txt?
La ruta /home/james/mensaje

¿Que contiene el archivo error2.txt? En ambos casos fundamente su respuesta


Permisos denegados para el usuario james

Pág. 14 Dpto. de TD
Sistemas Operativos de Código Abierto

Redireccione la salida del comando y los errores a un mismo archivo. Pruebe


el siguiente comando:
$ find /home -name mensaje 1>resul3.txt 2>&1
Visualice el contenido de este archivo. ¿Que contiene el archivo resul3.txt?
Los mensajes de los archivos resul2.txt y error2.txt combinados en uno solo
Sistemas Operativos de Código Abierto

24. Liste el contenido del directorio y redirecciónelo primero a un archivo llamado


lista2.txt.
$ ls -p /home/james | grep -v / > lista2.txt

25. Cuente la cantidad de líneas de cada archivo. ¿Cómo lo puede probar en un


editor VI?
$ wc error2.txt

Ayuda: Con la ayuda del comando man averigüe cómo funciona el comando
wc.

MANEJO DE TUBERIAS (PIPES)


26. Un meta-carácter muy empleado en el Sistema Operativo Linux es el pipe (|),
este símbolo permite redireccionar la salida de un comando como entrada de
otro. Por ejemplo si Usted desea ver el contenido de un directorio con pausa
puede utilizar el comando:
$ ls /etc | more

Pág. 16 Dpto. de TD
Sistemas Operativos de Código Abierto

27. Muestre la lista de usuarios conectados en forma ordenada:


$ who | sort

28. Si son demasiados los usuarios conectados necesitaría mostrarlo con pausa.
¿Cómo lo haría? Indique el comando a ejecutar.
$ who | sort | more

29. Vamos a utilizar el pipe para crear otro comando. Supongamos que queremos
ver los archivos de un directorio que corresponden a un mes determinado.
Para hacer el siguiente ejemplo vamos a crear archivos con diferente fecha.
Ingrese a una sesión como root y utilizando el comando date cambie la fecha
del sistema. (Investigue como hacerlo)
Sistemas Operativos de Código Abierto

Nota : (el mes debe corresponde a un mes anterior)

# date --set “2019-08-28 20:39”

30. En una sesión como james, cree algunos archivos con esta nueva fecha en
su directorio hogar y pruebe utilizar el siguiente comando:
$ ls –l | grep aug (donde mar es el mes que se hace referencia)

31. En una sesión como root, retorne la fecha del sistema a su estado inicial.

32. También podría utilizar el pipe para extraer algunas líneas de algún comando
esto lo puede realizar utilizando el comando head o tail según corresponda.
Por ejemplo el comando w le muestra en la primera línea el número de usuarios
conectados entonces Usted podría enviar sólo esta línea a un archivo:
$ w | head –1 > usuarios

33. Puede ser que Usted desea una estadística de número de usuarios conectados
y mantener el historial. ¿Qué comando utilizaría para realizar ésto?
$ w | head –1 >> usuarios

Pág. 18 Dpto. de TD
Sistemas Operativos de Código Abierto

34. Como Usted habrá notado solo figura la hora pero NO la fecha. Se podría
usar este comando para resolver este problema (note el uso del punto y coma
para escribir dos comando seguidos en una misma línea). Visualice el contenido
del archivo usuarios:
$ date >> usuarios ; w | head –1 >> usuarios

¿Qué hace este comando?


Muestra el número de usuarios conectados y adicionalmente la fecha
35. También con el pipe puede extraer en vez de filas columnas de un archivo,
utilizando el comando cut. Por ejemplo en el comando date se encuentra el
día de la semana el cual puede ser extraido con el siguiente
comando:
$ date | cut -c1-2

36. A partir de todo lo anterior, proponga 02 ejemplos donde use, la redirección y


las tuberías en un mismo comando. Explique los comandos propuestos. Muestre
el resultado de la ejecución de los mismos. Se tomará en cuenta para la
calificación la complejidad del comando.
NOTA: No utilizar ejemplos desarrollados en clase. Deben ser ejemplos
originales.

Ejemplo 1.
$ ls -p /home/james | grep -v / > lista.txt | sort
Lista los archivos de manera ordena en el archivo lista.txt

Ejemplo2.
Sistemas Operativos de Código Abierto

$ ps -aux | sort | more


Muestra los procesos de manera ordena y con pausa.

Pág. 20 Dpto. de TD

También podría gustarte