Linux

Redirecciones y tuberías en Linux

Ya muchos deben saber que en Linux, la terminal nos brinda valiosas herramientas para refinar y optimizar los resultados que buscamos. En este post aprovechamos de enseñarte a usar redirecciones y tuberías. Y es que la terminal resulta como una caja con utilidades increíbles. Pone a nuestra disposición incontables comandos y herramientas que nos ayudan a realizar nuestras tareas cotidianas en el día a día.

Redirecciones y tuberías en Linux

Conceptos básicos

Antes de pasar explicarles en que consisten las tuberías y su importancia (la parte divertida), debemos tener claros tres conceptos fundamentales en Linux: entrada estándar, salida estándar y error estándar.

La entrada estándar: representa los datos que son necesarios para el correcto funcionamiento de una aplicación. Un ejemplo de ellos puede ser un archivo con datos estructurados o información ingresada desde la terminal. En la terminal se representa como el tipo 0.

La salida estándar: es el medio que utiliza un aplicación para mostrar información de sus procesos y/o resultados, estos pueden ser simples mensajes, avisos referentes al progreso o archivos con datos estructurados como resolución de un proceso (un reporte, por ejemplo). En la terminal se representa como el tipo 1.

El error estándar: es la manera en que las aplicaciones nos informan sobre los problemas que pueden ocurrir al momento de su ejecución. Se representa como el tipo 2 en la terminal.

Todos los tipos son representados como archivos físicos en el sistema, pues como ya deben haber leído en un post anterior, en Linux, todo es un archivo.

Redirecciones

Ahora bien, ¿qué es una redirección?

Las redirecciones consisten en trasladar información de un tipo a otro (los tipos mencionados anteriormente), por ejemplo, de error estándar a la salida estándar o de la salida estándar a la entrada estándar. A través de la terminal, logramos eso haciendo uso del símbolo >.

Redireccionar salida y error estándar

Por ejemplo, para hacer la redirección de la salida de un comando y enviarla a un archivo; nos basta con ejecutar:

[php]ls -la ~ > (nombre del archivo)[/php]

Sin embargo, si realizamos la ejecución de esa forma, el contenido de nuestro archivo sera remplazado, cada vez, por la salida del comando. Si lo que quisiéramos es que se adicione dicha salida en el archivo, entonces la ejecución seria de la siguiente manera:

[php]ls -la ~ >> (nombre del archivo)[/php]

Lo que resulta interesante es que, podemos redireccionar las salidas, los errores y las entradas estándar. Es aqui donde toman sentido los números que les mencionaba al inicio. Por ejemplo, para forzar que un programa nos muestre en pantalla los errores que se generen durante una ejecución, redireccionamos el error estándar hacia la salida estándar durante su ejecución:

[php]aplicación 2 >> &1[/php]

Donde 2, representa al error estándar y &1 representa la salida estándar.

También podemos hacer un descarte del error estándar en cierto proceso, algo común en la administración de sistemas. Para esto ejecutamos:

[php]aplicación 2 > /dev/null [/php]

Inclusive descartar la salida estándar:

[php]aplicación > /dev/null [/php]

Ya que en Linux, el archivo /dev/null,  es un archivo especial a donde se envía la información para que sea descartada.

Redireccionar la entrada

De la misma manera en que redireccionamos salidas y errores estándar, podemos hacerlo con las entradas estándar desde un archivo y para ello utilizamos el operador <.

Esto resulta útil en comandos o programas donde se introducen los argumentos por teclado, del tal forma que podemos sustituirlos por un archivo, por ejemplo:

[php]

echo "Hola mundo" > saludo
cat < saludo
Hola mundo

[/php]

Echale un vistazo a: Comandos Linux: conocer y manipular el sistema

Tuberías

Luego de comprender el funcionamiento de las redirecciones, el concepto de tuberías sera bastante sencillo. Entre los principios dela filosofía de Unix, tenemos el hecho de tener aplicaciones pequeñas que se encarguen de realizar tareas muy puntuales y que en conjunto realicen tareas complejas. Siguiendo este principio, tiene que existir una manera para que un conjunto de aplicaciones pueda interactuar entre si. Es aqui donde surgen las llamadas tuberías.

Las tuberías son un tipo especial de redirección que permiten enviar la salida estándar de un comando como entrada estándar de otro. La forma de representarlo es con el símbolo | (pipe). Su principal útilidad es que nos ofrece la posibilidad de concatenar comandos, enriqueciendo la programación.

Un ejemplo sencillo y muy útil es ver los procesos que están ejecutando en el sistema con ps y redireccionar su salida a sort para ordenarlos por PID:

[php]ps -a | sort[/php]

Como pueden ver, las redirecciones y las tuberías son conceptos de Linux fundamentales y que sin duda debemos manejar. De este modo te sentirás cada vez mas cómodo en la terminal.

Cuéntanos en los comentarios, ¿Para qué cosas utilizarías o usas las redirecciones y tuberías en la terminal?

Yeraldine

Lcda. en Computación, Programadora, Apasionada por el Desarrollo Web. A veces Bellydancer, otras veces Yogui. Amo viajar, los libros y la música. En mis RRSS: @yerita02
Los datos de carácter personal que nos facilite mediante este formulario quedarán registrados en un fichero de Miguel Ángel Navas Carrera, con la finalidad de gestionar los comentarios que realizas en este blog. La legitimación se realiza a través del consentimiento del interesado. Si no se acepta no podrás comentar en este blog. Puedes consultar Política de privacidad. Puede ejercitar los derechos de acceso, rectificación, cancelación y oposición en [email protected]
Botón volver arriba