domingo, 17 de octubre de 2010

PIPELINES O TUBERÍAS EN SISTEMAS GNU/LINUX

PIPELINES O TUBERÍAS


Un método muy sofisticado para la comunicación de datos entre procesos son los pipes o tuberías.

Las tuberías permiten  tomar la salida de un proceso y enviársela a otro como entrada, de esta forma podemos tomar la salida generada por un comando en la consola de un sistema GNU/LINUX y redireccionarla como entrada de otro comando.

EJEMPLOS:


1. Redireccionemos la salida del comando Ls como entrada del comando Sort -r , $ ls | sort -r.


Explicación: el comando ls produce como salida un listado de los archivos que contiene el directorio en el cual estamos ubicados o el que le pasamos como parámetro, utilizando el pipe "|", redireccionamos esta salida como una entrada del comando sort, el cual ordena los archivos alfabéticamente, y en este caso como utilizamos el parámetro -r se hará en forma inversa, es decir, de la Z a la A.







DESCARGAR DOCUMENTO DE EVIDENCIAS
LINK DE DESCARGA






EJEMPLO2:

find /bin  | grep -n 'm' | cut -c '1-10'

Explicación:
el comando find /bin ,busca todos los archivos en el directorio / bin que es el que se le envia como parámetro.












La salida de find /bin  se envia como entrada al comando grep -n 'm'  el cual marca las coincidencias de la letra m en el listado de nombres de directorios, ademas el parametro -n hace que se muestre el numero de  lineas del fichero.






La salida del proceso anterior  se  toma como entrada del comando cut -c '1-10' el cual corta el nombre del directirio y solo muestra los primeros 10 caracteres si el nombre sobrepasa este numero de caracteres.






ENCADENAMIENTO DE COMANDOS

Se pueden redireccionar dos comandos entre sí, la salida de un comando que sea la entrada del siguiente, esta estructura se denomina pipelines o tuberías,

Ejemplo:

comando1 | comando2 | comando3 # la salida del comando1 es tomada como entrada por el comando2, la utiliza, y la salida de este es tomada por el comando3 como entrada.

comando1 | comando2 > archivo1 # la salida del comando1 es tomada como entrada por el comando2 y la salida se guarda en el fichero archivo1.

comando1 < archivo1 | comando2 # comando1 toma como entrada los datos contenidos en el fichero archivo1 y la salida la toma como entrada el comando2.

Importante: pipeline se utiliza entre comandos y los redireccionamientos entre comandos y archivos.


FUENTES RELACIONADAS:


http://supercomputo.izt.uam.mx/linux/curso.pdf

http://www.scribd.com/doc/38599236/RedireccionamientoEnLinux


ENLACES DE INTERES.
DESCARGAR MANUAL COMADO DPKG