Entendiendo las tuberías y la redirección para la línea de comandos de Linux

Dos potentes características del shell de la línea de comandos de Linux son la redirección y las tuberías que permiten que la salida (o incluso la entrada) de un programa se envíe a un archivo o a otro programa. Es posible que ya haya utilizado estas funciones sin ser consciente de ello. Siempre que se ha utilizado el signo «>» en un comando o «|» entonces se ha utilizado la redirección o una tubería, respectivamente.

En todos los sistemas operativos tipo Unix, como Linux y FreeBSD, la salida de un programa de línea de comandos va automáticamente a un lugar conocido como salida estándar (stdout). Por defecto, la salida estándar es la pantalla (la consola), pero se puede cambiar usando tuberías y redireccionamiento. Del mismo modo, el teclado se considera la entrada estándar (stdin) y, al igual que en el caso de la salida estándar, se puede cambiar.

Tubos

Las tuberías le permiten canalizar la salida de un comando a otro, donde se utilizará como entrada. En otras palabras, la salida estándar de un programa se convierte en la entrada estándar de otro.

El comando «more» toma la entrada estándar y la pagina en la salida estándar (la pantalla). Esto significa que si un comando muestra más información de la que se puede mostrar en una pantalla, el programa «more» hará una pausa después de la primera pantalla llena (página) y esperará a que el usuario pulse SPACE para ver la siguiente página o RETURN para ver la siguiente línea.

Aquí hay un ejemplo que listará todos los archivos, con detalles (-la) en el directorio /dev y canalizará la salida a más. El directorio /dev debería tener docenas de archivos y por lo tanto asegurar que más necesita paginar.

ls -la /dev | más

Entendiendo las tuberías y la redirección para la línea de comandos de Linux


Observe la indicación –Más- en la parte inferior de la pantalla. Presione SPACE para ver la página siguiente y mantenga presionada la tecla SPACE hasta que la salida esté terminada.

Aquí hay otro ejemplo de tubería, esta vez usando la herramienta «wc» (conteo de palabras).

ls -1 /dev | wc

wc cuenta el número de líneas, palabras y caracteres en la entrada estándar. Si utiliza el parámetro -l sólo mostrará el número de líneas, lo que es una buena manera de ver cuántos archivos hay en un directorio.

El tutorial Analizar en profundidad los comandos de compresión y archivo de Linux tiene un ejemplo de cómo usar tar y 7-Zip juntos:

tar cvf - * | 7zr a -si somefiles.tar.7z

En este caso, el guión después de la opción f indica a tar que envíe su salida a la salida estándar y no a un archivo. La salida de alquitrán será alimentada a través de la tubería a 7zr, que está esperando la entrada del estándar debido a la opción -si.

Redirección

La redirección es similar a la de las tuberías, excepto que se utilizan archivos en lugar de otro programa. La salida estándar de un programa es la pantalla. Con el símbolo> (mayor que) se puede enviar la salida de un programa a un archivo. Aquí hay una lista de directorios de /dev otra vez pero esta vez redirigida a un archivo llamado listing.txt

ls -la> listado.txt

No se mostrará nada en la terminal ya que todo se envió al archivo. Puede echar un vistazo al archivo usando el comando cat (que puede ser insertado en más) o por conveniencia puede usar el comando more por su cuenta:

más listing.txt

Si listing.txt ya existía, se sobrescribirá. Pero puedes añadir a un archivo existente usando>>> así:

ls -la /home> listing.txt ls -la /dev>> listing.txt

La primera redirección sobrescribirá el archivo listing.txt mientras que la segunda lo añadirá.

El comando cat puede usarse para crear un archivo usando redirección, por ejemplo:

cat> atextfile.txt

Ahora, el texto que escriba se enviará al archivo atextfile.txt hasta que pulse Control-D, momento en el que se cerrará el archivo y se le devolverá a la línea de comandos. Si desea agregar más texto al archivo, use el mismo comando pero con dos signos mayores que (>>).

Conclusión

Muchos de los programas de línea de comandos de Linux están diseñados para trabajar con redirecciones y tuberías, intente experimentar con ellos y vea cómo interactúan. Por ejemplo, la salida del comando ps, que enumera los procesos actuales, puede ser canalizada a grep. Vea si puede averiguar cómo listar los procesos que pertenecen a root.

Fuente: este post proviene de Vida Tecno, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Pincha aquí.
Creado:
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

Etiquetas: Linux

Recomendamos

Relacionado

Linux

Aunque es posible obtener información sobre el uso del disco desde los distintos escritorios Linux, aquellos que se sienten cómodos con la línea de comandos pueden obtener muchos más detalles usando los comandos df y du. Con estos dos comandos, no sólo puede descubrir detalles sobre el espacio libre en los sistemas de ficheros montados, sino que también puede ver la cantidad de espacio utilizado p ...

Linux

sed significa s tream ed itor y es un comando de uso común en Linux/Unix. El nombre proviene de un portmanteau de esas dos palabras. No es un editor de texto, aunque sí modifica el texto. En su lugar, sed recibe la entrada de texto como un «stream» y edita el stream de acuerdo con sus instrucciones. En general, la gente usa sed como una versión de línea de comandos de find and replace. E ...

Linux

Todo el mundo ha estado allí: está buscando ejecutar un programa de terminal y mantenerlo en funcionamiento. El problema es que este programa es antiguo o no incluye una característica que le permite ejecutarse como un demonio en segundo plano. Afortunadamente, hay varias maneras de forzar a los programas a trabajar en segundo plano. Bash puede hacer todo esto por sí solo, y no será necesario inst ...

Linux

Enviar un correo electrónico es algo que a menudo no tienes que pensar dos veces. Simplemente encienda su cliente de correo electrónico, ya sea basado en la web o en el escritorio, escriba un mensaje, introduzca la dirección de correo electrónico del destinatario y haga clic en «Enviar». ¿Qué sucede si es necesario que envíe correo electrónico desde la línea de comandos, por ejemplo, par ...

Linux

ImageMagick es una suite de herramientas para Linux que le permite manipular imágenes desde la línea de comandos. El comando «convert» le permite realizar conversiones y transformaciones de imágenes sin embargo, hay varias otras herramientas incluidas en la suite, algunas de las cuales le permiten trabajar con los datos Exif en fotos JPEG. Es probable que su distribución de Linux ya teng ...

Linux

Si usted es un administrador de sistemas Linux, no hay duda de que debe estar pasando la mayor parte de su tiempo de trabajo en la línea de comandos – instalando y eliminando paquetes; monitoreando las estadísticas del sistema; copiando, moviendo, borrando cosas; depurando problemas; y más. Hay ocasiones en las que se dispara un comando y se tarda un tiempo en completar la operación. Sin emb ...

Linux

¿No sería genial si pudieras obtener notificaciones emergentes cuando terminan esas largas tareas que se ejecutan desde la línea de comandos? Bueno, tú puedes. En realidad, crear notificaciones de escritorio desde la línea de comandos es muy sencillo con el comando notify-send. Puede usar notify-send en sus scripts o establecer que se ejecute siguiendo un comando largo que acaba de escribir en la ...

Linux

La gente siempre tiene la impresión de que GNU/Linux es difícil de usar. La mayoría de la gente sigue pensando que GNU/Linux es igual que DOS, donde tienes que navegar escribiendo comandos. Lo bueno es que la mayoría de las distribuciones hoy en día vienen con una interfaz y aplicaciones muy bonitas, y no es necesario entender ninguna línea de comandos para usar Linux. Por otro lado, tener algún c ...

Linux

Si eres uno de esos geeks de la línea de comandos a los que les gusta escuchar música mientras trabajan, te encantará saber que también se puede acceder a Pandora, el popular servicio de radio por Internet, a través de la línea de comandos. Existe una línea de comandos de código abierto cliente de Pandora con el nombre de Pianobar , que lo hace posible. La aplicación de línea de comandos proporcio ...

Linux

Mientras trabaja con la línea de comandos, hay ocasiones en las que puede enviar manualmente un correo electrónico para comunicar información de un solo renglón, por ejemplo, un comando complejo o una nota importante para usted o para un amigo. Normalmente, esto requiere que abra un navegador web, inicie sesión en su cuenta de correo electrónico, enmarque un mensaje de correo electrónico que conte ...