GNU/Linux >> Tutoriales Linux >  >> Linux

9 ejemplos de comandos tee en Linux

El comando Linux Tee es una herramienta de línea de comandos, lee desde la entrada estándar y escribe el resultado en la salida estándar y los archivos al mismo tiempo. En otras palabras, podemos decir, el comando tee en Linux se usa para matar dos pájaros de un tiro:leyendo desde la entrada estándar e imprimiendo el resultado en un archivo y en la salida estándar al mismo tiempo. ¿Qué queremos decir con esto? En esta guía, arrojamos más luz sobre el comando tee de Linux y usamos algunos ejemplos para demostrar su uso.

Sintaxis del comando Tee

La sintaxis del comando tee es bastante simple y tiene el siguiente formato:

$ te OPCIONES nombre de archivo

Estas son algunas de las opciones que puede usar con el comando tee:

En la sintaxis del comando tee, nombre de archivo se refiere a uno o más archivos.

Con eso en mente, veamos algunos ejemplos de cómo se usa el comando.

Ejemplo 1) Uso básico del comando tee

Como se describió anteriormente, la función principal del comando tee es mostrar la salida de un comando (stdout) y guardarla en un archivo. En el siguiente ejemplo, el comando estamos inspeccionando los dispositivos de bloque en nuestro sistema y canalizando los resultados al comando tee que muestra el resultado en el terminal mientras lo guarda simultáneamente en un nuevo archivo llamado block_devices.txt

$ lsblk | tee block_devices.txt

Siéntase libre de examinar el contenido del archivo block_devices.txt usando el comando cat como se muestra:

$ cat block_devices.txt

Ejemplo 2) Guardar la salida del comando en varios archivos usando tee

Además, puede escribir la salida de un comando en varios archivos separados por espacios como se muestra en la siguiente sintaxis.

$ comando | te archivo1 archivo2 archivo3 . . .

En el siguiente ejemplo, hemos invocado el comando hostnamectl para imprimir el nombre de host de nuestro sistema entre otros detalles y guardar la salida estándar en dos archivos archivo1.txt y archivo2.txt

$ hostnamectl | tee file1.txt file2.txt

Una vez más, puede confirmar la existencia de la salida en los dos archivos usando el comando cat como se muestra:

$ cat file1.txt
$ cat file2.txt

Ejemplo 3) Suprimir la salida del comando tee

Si desea ocultar o suprimir el comando tee para que no imprima la salida en la pantalla, redirija la salida a /dev/null como se muestra:

$ comando | archivo tee> /dev/null

Por ejemplo,

$ df -Th | tee file4.txt > /dev/null

Ejemplo 4) Agregar salida a un archivo con el comando tee

De forma predeterminada, el comando tee sobrescribe el contenido de un archivo. Para agregar la salida y evitar que se borre el contenido actual, use las opciones -a o –append.

$ comando | tee -un archivo

En el segundo comando, como se muestra, hemos agregado la salida del comando de fecha a file1.txt que ya contiene la información sobre los dispositivos USB en el sistema.

$ date | tee -a file1.txt

Ejemplo 5) Usa tee junto con el comando sudo

Suponga que, como usuario sudo, desea escribir en un archivo que es propiedad del usuario raíz. Naturalmente, cualquier operación elevada requerirá que invoque al usuario sudo antes del comando.

Para lograr esto, simplemente prefije el comando tee con sudo como se muestra a continuación.

$ echo "10.200.50.20 db-01" | sudo tee -a /etc/hosts/

Entonces, tee recibe la salida del comando echo a la izquierda y la eleva usando el comando sudo que finalmente agrega la salida al archivo.

Ejemplo 6) Redirigir la salida de un comando a otro usando el comando tee

Usando el comando tee, podemos redirigir fácilmente la salida de un comando a otro comando. Aquí la salida del primer comando actuará como entrada para el segundo comando. A continuación se muestra un ejemplo:

$ grep 'root' /etc/passwd | tee /tmp/passwd.tmp | wc -l
2
$ cat /tmp/passwd.tmp
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
$

Ejemplo 7) Guardar cambios en un archivo dentro del editor vi con el comando tee

Supongamos que está trabajando como usuario no root y está realizando cambios en el archivo propiedad de root y se olvida de poner sudo delante del comando y ahora desea guardar los cambios, el ejemplo se muestra a continuación:

$ vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.60   mail.linuxtechi.com
192.168.1.50   ns.linuxtechi.com
192.168.1.40    pxe.linuxtechi.com

Al guardar los cambios en el archivo, recibirá un mensaje de solo lectura,

Ahora, para guardar los cambios en el archivo /etc/hosts dentro del editor vi, ejecute

:w !sudo camiseta %

Le pedirá que ingrese la contraseña del usuario, si el usuario tiene derechos sudo, los cambios se guardarán.

Ejemplo 8) Ignorar la señal de interrupción mientras se usa el comando tee

El uso de la opción '-i' en el comando tee puede ignorar la señal de interrupción (CTRL-C), el ejemplo se muestra a continuación:

$ ping -c 5 linuxtechi.com  | tee -i /tmp/pingtest.tmp

Ejemplo 9) uso del comando tee en script de shell

El comando Tee también se usa con frecuencia en scripts de shell, uno de los ejemplos comunes se enumera a continuación:

$ vi basic-script.sh
#!/bin/bash
LOGFILE=/tmp/basic-logs-$(date +%d%m%Y)
FLAVOR=$(cat /etc/*-release  | grep -w 'NAME=' | cut -d"=" -f2 | awk '{print $1}'| sed 's/"//g')
if [ $FLAVOR == CentOS ];
then
   dmesg | grep -i 'error' | tee -a $LOGFILE
   grep -i 'installed' /var/log/dnf.log | tee -a $LOGFILE
else
   echo 'do nothing'
fi

Como podemos ver en el script de shell de Linux anterior, estamos usando el comando tee para agregar los resultados de dos comandos a un archivo de registro solo si el sistema operativo es CentOS.

Conclusión

Esto concluye el tema de hoy. Siéntase libre de opinar. Sus comentarios son bienvenidos. En esta guía, cubrimos el comando tee de Linux.


Linux
  1. Comando Linux Tee con ejemplos

  2. 7 ejemplos de comandos Linux df

  3. 8 ejemplos de comandos TR de Linux

  4. Ejemplos de comandos rm en Linux

  5. Ejemplos de comandos ps en Linux

16 ejemplos de comandos de eco en Linux

9 ejemplos de comandos diff en Linux

Opciones de comando y ejemplos de Tee Command en Linux

Ejemplos de comandos tee de Linux

Explicación del comando tee de Linux (con ejemplos)

Ejemplos de comandos id en Linux