Comprender las canalizaciones y la redirección para la línea de comandos de Linux

Comprender las canalizaciones y la redirección para la línea de comandos de Linux

Dos características poderosas del shell de línea de comandos de Linux son la redirección y las canalizaciones que permiten que la salida (o incluso la entrada) de un programa se envíe a un archivo u otro programa. Es posible que ya haya utilizado estas funciones sin darse cuenta. Siempre que haya utilizado el “>” firmar en un comando o “|” entonces ha utilizado la redirección o una tubería, respectivamente.

En todos los sistemas operativos similares a 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). De forma predeterminada, la salida estándar es la pantalla (la consola), pero eso se puede cambiar mediante canalizaciones y redirección. Asimismo, el teclado se considera la entrada estándar (stdin) y, al igual que con la salida estándar, se puede cambiar.

Tubería

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

Los «moreEl comando ” 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 «moreEl programa se detendrá después de que la primera pantalla se llene (página) y esperará a que el usuario presione ESPACIO para ver la siguiente página o RETORNO para ver la siguiente línea.

Aquí hay un ejemplo que enumerará todos los archivos, con detalles (-la) en el /dev directorio y canalice la salida a more. los /dev El directorio debe tener docenas de archivos y, por lo tanto, asegurarse de que more necesita paginar.

ls tubería más

Observe la --More-- mensaje en la parte inferior de la pantalla. Presione ESPACIO para ver la página siguiente y siga presionando ESPACIO hasta que finalice la salida.

Aquí hay otro ejemplo de tubería, esta vez usando el «wcherramienta ” (recuento de palabras).

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

El tutorial de los comandos de compresión y archivado de Linux en profundidad tiene un ejemplo usando tar y 7-Zip juntos:

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

En este caso, el guión después del f opción dice tar para enviar su salida a la salida estándar y no a un archivo. La salida de tar se alimentará por 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 las tuberías excepto que usa archivos en lugar de otro programa. La salida estándar de un programa es la pantalla. Utilizando el > (mayor que) símbolo la salida de un programa se puede enviar a un archivo. Aquí hay una lista de directorios de /dev de nuevo pero esta vez redirigido a un archivo llamado listing.txt

No se mostrará nada en la terminal ya que todo se envió al archivo. Puede echar un vistazo al archivo usando el cat comando (que se puede canalizar en more) o, por comodidad, puede utilizar el more command por sí mismo:

Si listing.txt ya existía, se sobrescribirá. Pero puede agregar a un archivo existente usando >> como esto:

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

La primera redirección sobrescribirá el archivo. listing.txt mientras que el segundo se le agregará.

los cat El comando se puede usar para crear un archivo usando la redirección, por ejemplo:

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

Conclusión

Muchos de los programas de línea de comandos de Linux están diseñados para trabajar con redirección y conductos, intente experimentar con ellos y vea cómo interactúan. Por ejemplo, la salida del ps El comando, que enumera los procesos actuales, se puede canalizar en grep. Vea si puede averiguar cómo enumerar los procesos propiedad de root.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Experto Geek - Tu Guía en Tendencias Tecnológicas