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 < ,
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.