1.2 Utilizar redirección de entrada-salida (>, >>, |, 2>, etc)

En la Shell de Linux cuando se ejecuta un comando o programa automáticamente se ejecutan 3 programas adicionales el stdin, stdout y stderr.

Entrada Estándar (stdin)

Esta entrada recibe información de los dispositivos de entrada y re direcciona a los programas para que ellos realicen los procesos, en la mayoría de las ocasiones este dispositivo es el teclado, el carácter descriptivo de stdin es el “0”, pero podremos decirle al Shell que el dispositivo de entrada proviene de otro lado, de un archivo por ejemplo: en el siguiente ejemplo le daremos a less información de un archivo /var/log/messages.

Salida Estándar (stdout)

Siendo el dispositivo de salida más usado el monitor podemos redireccionar el flujo de la información hacia otro lado un archivo por ejemplo un archivo, en el siguiente ejemplo redireccionaremos las salida del comando ls a un archivo su carácter de stdout es “1”

Errores estándar (stderr)

En esta salida se envían todos los mensajes de error que un comando o programa genere regularmente es el monitor, aun así podremos re direccionar esto hacía un archivo u otro procesos, usando un usuario que no tiene permisos sobre todo el árbol de directorios podemos ejemplificar el contexto para así generar algunos errores

Caracteres de redireccionamiento

>            

Crea un archivo con la salida estándar de un comando o proceso.

Mandando todo el contenido de /etc a un archivo llamado listado_etc.txt

 

Redireccionando al archivo listado_conf.txt todos los archivos dentro de /etc que en su nombre contengan la extensión conf.

>>          

Similar al primer carácter de > con la diferencia de que agrega al final del archivo si este ya contiene algún contenido no lo reescribe.

Si deseamos que el shell nos mande un mensaje de error cuando mandamos una salida a un archivo pero este contiene información y evitar reescribir utilizamos

Desactivar

Activar

2>          

Crea un archivo únicamente con los errores de la salida

Usando > y 2> podemos enviar la salida que no genera errores stdout a un archivo y los errores stderr a otro

Si mandamos todo a /dev/null todo se pierde y no se muestra en pantalla, en el mundo Linux es común conocido como el hoyo negro de la Shell

2>>        

Crea un archivo únicamente con los errores de la salida sin reescribir el contenido, es decir lo pone después de la última línea

2&1> o &>           

Crea un archivo con los mensajes stdout y stderr del comando ejecutado

O bien

|             

PIPE Permite el tratamiento de la salida con otro programa (comando)

En el siguiente ejemplo tomamos la salida del comando cat sobre el archivo archivo1 y después lo invertimos

En el siguiente ejemplo tomamos la salida del comando cat sobre el archivo archivo1 y después lo ordenamos

 

@franklinux

Deja un comentario