martes, 12 de octubre de 2010

Redireccionamiento

El objetivo es enseñar a controlar la salida estándar, en la ejecución de los comandos, redireccionado la información hacia ficheros planos.


Cuando se redirecciona puede enviarse la salida de la ejecución de un determinado comando a otro dispositivo diferente a la pantalla, en este caso puede ser a un fichero.
Las formas más comunes de redireccionar son:
>: Comando > Archivo
Redirecciona la salida de la ejecución del comando hacia un archivo existente, si este no existe el archivo es creado. Si el archivo existe su contenido será modificado.

>: Comando > Archivo
Redirecciona la salida de la ejecución del comando hacia un archivo existente, si este no existe el archivo es creado. Si el archivo existe
su contenido será modificado.


>>: Comando >> Archivo
Esta es otra forma de redireccionar la salida de la ejecución de un comando hacia un archivo existente pero añadiendo o anexando, a la información que ya existe en el archivo mencionado. Si este no existe el
archivo será creado.

<: Comando < Archivo

La entrada estándar o argumentos del comando a ejecutarse se leen desde el archivo, en este caso no se producen cambios en el fichero de donde se tomo la entrada.

Ejemplos de manejo de redireccionamiento:

Si deseamos almacenar en un fichero plano el listado de todos los ficheros que se encuentran en el directorio de trabajo de un usuario del sistema con toda su información ejecutamos el siguiente comando:


esteban@esteban:~$ ls -al > misFicheros


El comando ls -al permite listar el contenido del directorio de trabajo del usuario pedro en el cual me encuentro y redirecciona la salida almacenando la información en el archivo de nombre  misFicheros, luego si queremos ver su contenido simplemente se digitan  alguno de estos dos comandos comando:

esteban@adriana:~$ cat misFicheros 

esteban@adriana:~$ gedit misFicheros

Si quiero enviar el contenido del fichero que contiene la información de los usuarios creados en el sistema a un fichero de fácil acceso en mi directorio de trabajo utilizo el comando:

esteban@adriana:~$ cat /etc/passwd > misUsuarios

El comando cat /etc/passwd muestra la información de los usuarios del sistema y la salida se almacena en el directorio de trabajo del usuario pedro, en un archivo llamado misUsuarios, luego si queremos ver su contenido simplemente se digitan alguno de estos dos comandos:


esteban@adriana:~$ cat misUsuarios


esteban@adriana:~$ gedit misUsuarios


A continuación se escribirla una cadena de texto la cual se almacenara en un fichero llamado ingSistemas, como el fichero no existe este se crea en el directorio en el que me encuentro:


esteban@adriana:~$ echo "Ingeniería de Sistemas Linea Uno" > ingSistemas

El comando echo permite mostrar por pantalla una cadena de texto, en este caso la cadena de texto se almacena en el fichero ingSistemas. Entonces el contenido del fichero será:


esteban@adriana:~$ cat ingSistemas 

Ingeniería de Sistemas Linea Uno

esteban@adriana:~$


Ahora si quiero anexar una nueva línea al fichero ingSistemas sin perder la información ya almacenada utilizo el siguiente comando:


esteban@adriana:~$ echo "Ingeniería de Sistemas Linea Dos" >> ingSistemas


Entonces el contenido del fichero será la información anterior mas la nueva información que se anexo o añadió, sin que se perdiera la información que existía en el fichero:

esteban@adriana:~$ cat ingSistemas 

Ingeniería de Sistemas Línea Uno

Ingeniería de Sistemas Línea Dos

esteban@adriana:~$

Cuando se desea tener la información de un fichero en otro que ya exista sin que se borre la información del fichero hacia el cual se redirecciona la salida estándar, se utiliza el siguiente comando:


Tenemos el fichero asignarMAC el cual contiene la siguiente información:


esteban@adriana:~$ cat asignarMAC

****** Asignar Dirección MAC ******

esteban@adriana:~$ sudo ifdown eth0

esteban@adriana:~$ sudo ifconfig eth0 hw ether 00:13:8F:47:df:30

esteban@adriana:~$ sudo ifup eth0

esteban@adriana:~$



Entonces quiero agregarle a asignarMAC la información del fichero asignarIP, entonces se utiliza el comando:

esteban@adriana:~$ cat asignarIP >> asignarMAC



Si observamos el contenido del fichero asignarMAC se anexo el contenido del fichero asignarIP:


esteban@adriana:~$ cat asignarMAC

****** Asignar Dirección MAC ******

esteban@adriana:~$ sudo ifdown eth0

esteban@adriana:~$ sudo ifconfig eth0 hw ether 00:13:8F:47:df:30

esteban@adriana:~$ sudo ifup eth0



****** Asignar Dirección IP Universidad******

SSistemas

IP = 172.16.9.250

Mascara = 255.255.254.0

Puerta de enlace = 172.16.8.1

DNS = 172.16.14.12

esteban@adriana:~$


Para guardar la información de los usuarios del sistema en un fichero llamado usuarios, donde la entrada estándar del comando a ejecutar, será la información que contenga el fichero /etc/passwd:


esteban@adriana:~$ tee usuarios < /etc/passwd



El comando tee se utiliza para guardar la información que se toma del fichero /etc/passwd, en este caso la entrada del comando se toma del fichero.


Informacion tomada de:

Modulo GNU/Linux – Electiva Libre II. Universidad de Córdoba. Departamento de Ingeniería de Sistemas y Telecomunicaciones

http://www.espaciolinux.com/blogs-display-jid-543.html

http://linux-cd.com.ar/manuales/rh9.0/rhl-gsg-es-9/s1-navigating-usingcat.html