Tuberías (pipes):

Los pipes (es mas correcto usar pipes que tuberías) nos permiten conectar la salida de un programa a la entrada de otro con el operador '|', por ejemplo, queremos ordenar de forma inversa (con la opción -r de sort) los nombre del contenido de la carpeta en donde estamos, lo podríamos hacer de dos formas:

#De esta manera tenemos que crear un archivo para guardar la salida de ls y luego leer desde el.
$ ls
holajuan.txt
holas
holasanti.txt
php
pruebas
public_html
web
$ ls > ls.lista
$ sort -r ls.lista
web
public_html
pruebas
php
ls.lista
holasanti.txt
holas
holajuan.txt

#De esta otra forma hacemos todo lo anterior en una sola línea y sin tener que crear ningún archivo:
$ ls|sort -r
web
public_html
pruebas
php
ls-lista
holasanti.txt
holas
holajuan.txt

¿A que es mas rápido y fácil?
Otro ejemplo interesante es hacer que podamos 'pausar' la salida del comando ls para poder ver todos los archivo si es que hay muchos:

$ ls /etc/|more

Ahora podemos examinar el contenido de /etc sin problemas gracias a los pipes.
Pero, ¡Hay mas!, podemos 'entubar' todos los comando a la vez que queramos:

$ ls|sort -r|head -1
web

head -1 escribe en la pantalla la primera línea que lee en la entrada (sort -r) que lee a su vez la salida de ls.