Redirección de entrada y salida del shell ¿Qué hace?
Redirección de salida
La salida del comando no solo puede ser la visualización, sino que también se puede transferir fácilmente a un archivo, lo que se denomina redirección de salida.
La sintaxis para la redirección de salida del comando es: $ comando gt; archivo
De esta manera, la salida del contenido al monitor se puede redirigir al archivo.
Por ejemplo, el siguiente comando no mostrará ningún resultado en el monitor: $ who gt users
Al abrir el archivo de usuarios se mostrará lo siguiente: $ cat users
oko tty01 12 de septiembre 07:30
ai tty15 12 de septiembre 13:32
ruth tty21 12 de septiembre 10:10
pat tty24 12 de septiembre 13 : 07
steve tty25 12 de septiembre 13:03
$
La redirección de salida sobrescribe el contenido del archivo; consulte el siguiente ejemplo: $ echo line 1 gt;
$ usuarios cat
línea 1
$
Si no desea sobrescribir el contenido del archivo, puede usar gt ; gt; para agregarlo al final del archivo, por ejemplo: $ echo línea 2 gt; usuarios
$ cat usuarios
línea 1
línea 2
$
Redirección de entrada
Al igual que la redirección de salida, los comandos Unix también pueden obtener entrada de archivos. La sintaxis es: comando archivo
.De esta manera, los comandos que requieren entrada desde el teclado se pueden leer desde un archivo.
Nota: La redirección de salida es un signo mayor que (gt;) y la redirección de entrada es un signo menor que (lt;).
Por ejemplo, para contar el número de líneas en el archivo de usuarios, puedes usar el siguiente comando: $ wc -l usuarios
2 usuarios
$
O puede redirigir la entrada al archivo de usuarios: $ wc -l lt; usuarios
2
$
Nota: El Los resultados de los dos ejemplos anteriores son diferentes: el primer ejemplo generará el nombre del archivo; el segundo ejemplo no, ya que solo sabe leer desde la entrada estándar.
Explicación detallada de la redirección
En términos generales, cada comando de Unix/Linux abrirá tres archivos cuando se ejecute:
Archivo de entrada estándar (stdin): el descriptor del archivo. de stdin es 0 y los programas Unix leen desde stdin de forma predeterminada.
Archivo de salida estándar (stdout): el descriptor de archivo de stdout es 1, y los programas Unix envían datos a stdout de forma predeterminada.
Archivo de error estándar (stderr): el descriptor de archivo de stderr es 2 y los programas Unix escribirán información de error en la secuencia stderr.
De forma predeterminada, el comando gt;file redirige stdout a un archivo, mientras que el comando lt;file redirige stdin a un archivo.
Si desea que stderr sea redirigido a un archivo, puede escribir: $command 2 gt; file
Si desea que stderr se agregue al final del archivo, puede puede escribir: $command 2 gt; file
2 representa el archivo de error estándar (stderr).
Si desea combinar stdout y stderr y redirigirlos al archivo, puede escribir: $command gt; file 2gt;amp 1
o $command gt;gt; 2gt; amp; 1
Si desea redirigir stdin y stdout al mismo tiempo, puede escribir: $command lt; file1 gt; y salida estándar al archivo2.
Lista de todos los comandos de redirección disponibles
Comando
Descripción<
comando gt; Redirige la salida a un archivo.
comando lt; file redirige la entrada a un archivo.
comando gt; gt; file Redirige la salida a un archivo en modo agregar.
n gt; file redirige el archivo con el descriptor n al archivo.
n gt;gt; file Redirige el archivo con el descriptor de archivo n al archivo como un anexo.
n gt;amp; m fusiona los archivos de salida my n.
n gt;amp; m fusiona los archivos de salida my n.
n lt; amp; m fusiona los archivos de entrada my n.
lt;lt; tag toma el contenido entre la etiqueta inicial y la etiqueta final como entrada.