La salida de los comandos que ponemos en nuestra terminal pueden ser redirigidos a un archivo o ser reutilizados por otro comando. Por ejemplo, imprimiremos en pantalla el famoso Hola mundo

[tusysadmin@localhost ~]$ echo "Hola mundo"
Hola mundo

Por otro lado, si quisiéramos mandar este mensaje a un archivo lo haríamos así:

[tusysadmin@localhost ~]$ echo "Hola mundo" > hola
[tusysadmin@localhost ~]$ cat hola 
Hola mundo

El signo > mandará la salida del comando a un archivo y sobrescribirá el contenido que tenga dicho archivo. Si lo que se quiere es conservar el contenido previo entonces usamos el doble >>.

[tusysadmin@localhost ~]$ echo "Hola mundo" >> hola
[tusysadmin@localhost ~]$ echo "Hola mundo" >> hola
[tusysadmin@localhost ~]$ echo "Hola mundo" >> hola
[tusysadmin@localhost ~]$ cat hola 
Hola mundo
Hola mundo
Hola mundo
Hola mundo
[tusysadmin@localhost ~]$ 

Las redirecciones pueden ser usadas para guardar mensajes de error usando >2 o >>2

[tusysadmin@localhost ~]$ yum install nginx 2> error.log
[tusysadmin@localhost ~]$ cat error.log 
Error: Este comando debe ejecutarse con privilegios de superusuario

Para conservar todos los mensajes de salida sin que estos se impriman en la pantalla usamos &> o &>> para evitar la sobrescritura.

Las redirecciones nos ayudan a generar archivos de logs para detectar problemas en instalaciones o ejecuciones de algún script de bash. De igual forma, pudiéramos no querer conservar ni imprimir la salida de un comando, si fuera el caso simplemente desechamos esta información mandándola a /dev/null.

[tusysadmin@localhost ~]$ du -sh /* 2> /dev/null 
0        /bin
193M     /boot
0        /dev
30M      /etc
25M      /home
0        /lib
0        /lib64
16K      /lost+found
4.0K     /media
4.0K     /mnt
8.0K     /opt
0        /proc
4.0K     /root
1.7M     /run
0        /sbin
4.0K     /srv
0        /sys
96K      /tmp
8.2G     /usr
6.0G     /var

De esta manera tenemos una impresión en pantalla limpia y sin conservar errores.

Tuberías

Las tuberías nos permite utilizar la salida de texto de un comando como entrada de otro. De esta forma podemos simplificar la salida deseada. Ejemplo, el siguiente comando muestra todos los usuarios que inician con la letra t.

[tusysadmin@localhost ~]$ grep ^t /etc/passwd 
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
tusysadmin:x:1001:1001::/home/tusysadmin:/bin/bash

Como puede observarse, imprime información que no necesitamos si quisiéramos crear una lista. Para tomar este comando lo conectamos con «|»

[tusysadmin@localhost ~]$ grep ^t /etc/passwd | cut -d ":" -f1
tss
tcpdump
tusysadmin

De este modo corté todo lo que aparece antes del signo : quedando en una sola columna. Si necesitamos saber el uso en disco de los directorios de nuestro sistema ordenado de mayor a menor.

[tusysadmin@localhost ~]$ du -sh /* 2> /dev/null | sort -hr
8.2G    /usr
6.0G    /var
193M    /boot
30M     /etc
25M     /home
1.7M    /run
156K    /tmp
16K     /lost+found
8.0K    /opt
4.0K    /srv
4.0K    /root
4.0K    /mnt
4.0K    /media
0       /sys
0       /sbin
0       /proc
0       /lib64
0       /lib
0       /dev
0       /bin