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