GNU/Linux >> Tutoriales Linux >  >> Linux

Tuberías y redirección en Linux - ¡Explicado!

Tiempo para algunos conceptos básicos de Linux. Porque lo más importante en todos los campos es:¡Tener los conceptos básicos en orden! Así que hablemos de Tubos y Redirección en Linux .

¿Qué son las canalizaciones y la redirección en Linux?

Redireccionamiento

Cada proceso en Linux tiene al menos 3 canales de comunicación disponibles:

  • Entrada estándar:STDIN
  • Salida estándar - STDOUT
  • Error estándar:STDERR

El propio Kernel establece esos canales en nombre del proceso. El proceso en sí no necesariamente sabe a dónde conducen. La mayoría de los comandos de Linux aceptan entradas de STDIN y escribe la salida en STDOUT . Los mensajes de error se escriben en STDERR . Esto le permite conectar comandos para crear canalizaciones.

El Shell utiliza los símbolos < ,> y >> como instrucciones para redirigir las instrucciones de una entrada o salida de comando hacia o desde un archivo. El < el símbolo está conectando el STDIN del comando al contenido de un archivo existente. El > y el >> los símbolos redireccionan STDOUT . > reemplaza el contenido existente del archivo y el >> se les agregan símbolos.

Veamos un par de ejemplos.

El siguiente comando almacenará el texto que escriba entre " " en un archivo. Si el archivo no existe, se creará.

echo "Test Message" > testmessage

El siguiente comando enviaría un correo electrónico con el contenido de ese archivo, por lo que solo el texto, no el archivo en sí, al usuario Peter.

mail -s "testmsg" peter < testmessage

Un ejemplo con el comando de búsqueda

Si usamos el comando de búsqueda, obtenemos una buena demostración de por qué querría manejar STDOUT y STDERR por separado. Si ejecutamos el siguiente comando:

find / -name core

Por lo general, recibimos muchos mensajes de error de permiso denegado. Para descartar todos esos mensajes de error, puede ejecutar el siguiente comando en su lugar:

find / -name core 2> /dev/null

Lo que nos da un resultado mucho más limpio.

Tubos

Si queremos conectar ciertos comandos, o más específicamente el STDOUT de un comando y el STDIN de otro, podemos usar el símbolo de tubería | Para hacer eso. Hagamos un ejemplo:

ls | head -4

Lo que esto hace es conectar el comando ls con el comando head a través de Pipe | . Es decir, está ejecutando el ls comando con la cabeza -4 extensiones, enumerando solo los primeros 4 archivos de esa carpeta. También puede continuar y canalizar otro comando al final de este.

Si desea que el segundo comando solo se ejecute cuando el primero haya tenido éxito, puede usar el && símbolos para eso. Por ejemplo:

lpr /tmp/test && rm /tmp/test

Solo eliminaría el archivo de prueba si primero se colocó correctamente en la cola de impresión.

Por otro lado, el || el comando solo ejecutaría el segundo comando si el primer comando fallara.

Conclusión

Si trabaja con Linux de forma regular, es muy importante saber qué hace Pipes and Redirection en Linux. Los usará mucho si necesita trabajar en la línea de comandos. Haré más de esos bits básicos de Linux más cortos en el futuro. No quiero que esos artículos se alarguen demasiado para que pueda comprender la información más fácilmente. Además, consulte otros tutoriales de código abierto y Linux.


Linux
  1. Trabajar con entrada, salida y redirección de errores en Linux

  2. Comando wc de Linux explicado para principiantes (6 ejemplos)

  3. ¿Redireccionamiento de Io y el comando principal?

  4. Comando wc de linux

  5. Comando grep de Linux

Comando Gzip en Linux

Comando Gunzip en Linux

Comando Stat en Linux

Explicación del comando Stat de Linux

Comando Arping en Linux explicado

Explicado:entrada, salida y redirección de errores en Linux