Uso de la línea de comando de canalización de Linux

que es un oleoducto

¿Qué hacen las tuberías en la vida real, como las tuberías de agua? Las tuberías de agua se pueden usar para hacer fluir el agua de un lado al otro. ¿Qué pasa con las tuberías en Linux? Las funciones son similares. Las tuberías de Linux pueden generar un comando y fluir hacia el otro lado Otro comando, como entrada a otro comando, eso es lo que Linux canaliza.
En la vida real, las tuberías de agua se utilizan para conectar el agua.¿Qué pasa con la entrada y salida de los comandos de conexión en Linux? Se utiliza el carácter de comando de canalización | .
La función del carácter de comando de barra vertical "|" es usar la salida estándar del comando anterior como la entrada estándar del siguiente comando, en el formato de "comando A | comando B", por ejemplo

#在文本a.txt中寻找文本123所在段落。
cat a.txt | grep "123"

【Recordatorio】:

  1. El comando de canalización solo procesa la salida correcta del comando anterior y no procesa la salida incorrecta;

  2. El comando en el lado derecho del comando de canalización debe poder recibir el comando de flujo de entrada estándar;

El comando de canalización es en realidad un poco similar a la redirección de entrada y salida, porque ambos cambian el flujo de datos, pero los objetivos son diferentes Redirección >> significa enviar la salida de un comando a un archivo, y la canalización es poner this La salida de un comando, como entrada para el siguiente comando.

Si se usa bien el comando pipeline, puede ayudarnos a hacer muchas cosas, como por ejemplo:
Ejemplo 1: Generar una contraseña aleatoria de 8 bits

tr -dc A-Za-z0-9_ </dev/urandom | head -c 8 | xargs

Ejemplo 2: Ver todos los nombres de usuario en el sistema y ordenarlos alfabéticamente

awk -F: '{print $1}' /etc/passwd | sort

Ejemplo 3: enumere los 5 comandos principales utilizados por el usuario actual (el número de columnas impresas depende de la situación real)

history | awk '{print $2}' | sort | uniq -u | sort -rn | head -5

Ejemplo 4: Ver los shells de inicio de sesión de los usuarios en el sistema /bin/bash

cat /etc/passwd | grep "/bin/bash" | cut -d: -f1,6   

#cut -d: -f1,6 表示以:为分隔符显示第1和第6列的内容-d指定分隔符,-f指定列

Ejemplo 5: Ver el número de subdirectorios en el directorio actual

ls -l | cut -c 1 | grep "d" | wc -l

#ls -l  长格式列出当前目录的所有内容,每行的第一个字符表示文件的类

#cut -c 1 截取每行的第一个字符

#grep "d" 获取文件类型是目录的行

#wc -l  统计grep命令输出的行数,即子目录个数

Ejemplo 6: Combinar el contenido de dos archivos

cat 1.txt | paste -d: 2.txt -

#paste -d: 2.txt - 表示以:为分割符合并两个文件,合并时2.txt文件的内容在前 -代表1.txt文件

Supongo que te gusta

Origin blog.csdn.net/qq_45171957/article/details/123698265
Recomendado
Clasificación