En los sistemas Unix encontramos el concepto de Tubos. Estos permiten que la salida (stdout) de un comando sea la entrada (stdin) de otro comando.
Dicho de otro modo; los tubos de Unix son comandos anidados.
Se emplean con el caracter | de acuerdo con la siguiente sintaxis:
orden1 | orden2 | orden3 | ... | ordenN
Ejemplo: Mostrar el contenido de un directorio página por página
Veamos un ejemple simple: Es necesario visualizar completamente la carpeta sbin, para esto debemos ejecutar el comando ls -l, pero este comando muestra la lista completa sin dejar visualizar los primeros directorios o archivos ya que su contenido es bastante para visualizarlo en una sola pantalla.
$ ls -l /sbin/ total 15824 -rwxr-x--- 1 root root 22324 2009-10-23 19:33 acpid -rwxr-xr-x 1 root root 1754 2010-02-23 18:46 activate_dm_linear -rwxr-xr-x 1 root root 39048 2009-10-21 15:04 adjtimex -rwxr-xr-x 1 root root 18540 2009-10-21 15:04 agetty -rwxr-xr-x 1 root root 754308 2009-10-24 08:05 apparmor_parser -rwxr-xr-x 1 root root 48864 2009-10-19 10:36 arp -rwxr-xr-x 1 root root 18100 2009-10-23 19:37 arping -rwxr-x--- 1 root root 96152 2009-10-23 19:22 audispd -rwxr-x--- 1 root root 116576 2009-10-23 19:22 auditctl -rwxr-x--- 1 root root 174284 2009-10-23 19:22 auditd . . . $
Este problema se puede resolver con tuberías y el comando more de la siguiente manera:
$ ls -l /sbin/ | more total 15824 -rwxr-x--- 1 root root 22324 2009-10-23 19:33 acpid -rwxr-xr-x 1 root root 1754 2010-02-23 18:46 activate_dm_linear -rwxr-xr-x 1 root root 39048 2009-10-21 15:04 adjtimex -rwxr-xr-x 1 root root 18540 2009-10-21 15:04 agetty -rwxr-xr-x 1 root root 754308 2009-10-24 08:05 apparmor_parser -rwxr-xr-x 1 root root 48864 2009-10-19 10:36 arp -rwxr-xr-x 1 root root 18100 2009-10-23 19:37 arping -rwxr-x--- 1 root root 96152 2009-10-23 19:22 audispd -rwxr-x--- 1 root root 116576 2009-10-23 19:22 auditctl -rwxr-x--- 1 root root 174284 2009-10-23 19:22 auditd . . . --More-- . . . -rwxr-xr-x 1 root root 82600 2009-10-19 10:47 debugfs -rwxr-xr-x 1 root root 227384 2009-10-19 10:59 debugreiserfs -rwxr-xr-x 1 root root 67976 2009-10-23 19:32 depmod -rwxr-xr-x 1 root root 13912 2009-10-23 19:24 detectups -rwxr-xr-x 1 root root 453124 2009-12-17 18:45 dhclient -rwx------ 1 root root 12564 2009-12-17 18:45 dhclient-script -rwxr-xr-x 1 root root 72248 2010-01-24 18:05 dhcpcd -rwxr-xr-x 1 root root 14040 2009-10-21 15:01 dm_dso_reg_tool -r-xr-xr-x 1 root root 26636 2009-10-23 19:25 dmeventd -rwxr-xr-x 1 root root 235320 2009-10-21 15:01 dmraid --More-- . . . $
Su funcionamiento es simple: la salida del comando ls -l es enviada al comando more que se encarga de mostrar el contenido página por página.
Ejemplo: man 2 PDF
Con el comando man visualizamos la documentación de los comandos que especifiquemos, por ejemplo:
$ man tar
.
.
.
NAME
tar - The GNU version of the tar archiving utility
SYNOPSIS
tar [OPTION...] [FILE]...
.
.
.Pero… tal vez no sea muy cómodo leerlo en el Shell, entonces lo enviamos a un archivo PDF:
man -t tar | ps2pdfwr -> tar.pdf
También lo podemos enviar a la impresora:
man -t tar | lpr
Simple, ¿No?…