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
Deja una respuesta