En Linux, la pipe
El comando le permite enviar la salida de un comando a otro. La canalización, como sugiere el término, puede redirigir la salida, la entrada o el error estándar de un proceso a otro para su posterior procesamiento.
La sintaxis del pipe
o unnamed pipe
el comando es el |
carácter entre dos comandos cualquiera:
Command-1 | Command-2 | …| Command-N
Aquí, no se puede acceder a la tubería a través de otra sesión; se crea temporalmente para adaptarse a la ejecución de Command-1
y redirigir la salida estándar. Se elimina después de una ejecución exitosa.
Más recursos de Linux
- Hoja de trucos de los comandos de Linux
- Hoja de trucos de comandos avanzados de Linux
- Curso en línea gratuito:Descripción general técnica de RHEL
- Hoja de trucos de red de Linux
- Hoja de trucos de SELinux
- Hoja de trucos de los comandos comunes de Linux
- ¿Qué son los contenedores de Linux?
- Nuestros últimos artículos sobre Linux
En el ejemplo anterior, contents.txt
contiene una lista de todos los archivos en un directorio en particular, específicamente, la salida de ls -al
dominio. Primero grep
los nombres de archivo con la palabra clave "archivo" de contents.txt
por tuberías (como se muestra), por lo que la salida del cat
El comando se proporciona como entrada para grep
dominio. A continuación, agregamos tuberías para ejecutar awk
comando, que muestra la columna 9 de la salida filtrada del grep
dominio. También podemos contar el número de filas en contents.txt
usando el wc -l
comando.
Una canalización con nombre puede durar hasta que el sistema esté en funcionamiento o hasta que se elimine. Es un archivo especial que sigue el mecanismo FIFO (first in, first out). Se puede usar como un archivo normal; es decir, puede escribir en él, leerlo y abrirlo o cerrarlo. Para crear una canalización con nombre, el comando es:
mkfifo <pipe-name>
Esto crea un archivo de canalización con nombre que se puede usar incluso en varias sesiones de shell.
Otra forma de crear una tubería con nombre FIFO es usar este comando:
mknod p <pipe-name>
Para redirigir una salida estándar de cualquier comando a otro proceso, use el >
símbolo. Para redirigir una entrada estándar de cualquier comando, use el <
símbolo.
Como se muestra arriba, la salida de ls -al
el comando se redirige a contents.txt
e insertado en el archivo. De manera similar, la entrada para tail
el comando se proporciona como contents.txt
a través del <
símbolo.
Aquí, hemos creado una tubería con nombre, my-named-pipe
, y redirigió la salida de ls -al
comando en la canalización con nombre. Podemos abrir una nueva sesión de shell y cat
el contenido de la canalización con nombre, que muestra la salida de ls -al
comando, como se proporcionó anteriormente. Observe que el tamaño de la tubería nombrada es cero y tiene una designación de "p".
Por lo tanto, la próxima vez que trabaje con comandos en la terminal de Linux y se encuentre moviendo datos entre comandos, con suerte, una canalización hará que el proceso sea rápido y fácil.