Algunos consejos sobre cómo redirigir en Linux I /O

  

La redirección de E /S de Linux es muy simple, pero es muy útil para la administración de scripts y sistemas, y es muy útil para saber cómo usarla.
Primero, hablemos sobre qué es la redirección de E /S. La llamada redirección de E /S es simplemente un proceso que captura un archivo o un bloque de código en un comando, programa, secuencia de comandos o incluso secuencia de comandos. La salida se envía luego como entrada a otro archivo, comando, programa o script.
Cuando se trata de redirección de E /S, implica el concepto de Descriptor de archivos. En sistemas Linux, el sistema asigna un identificador de archivo a cada archivo abierto para que el sistema pueda rastrear el archivo. Algunos son similares a los manejadores de archivos en la programación en C. El identificador de archivo es un número. Diferentes números representan diferentes significados. Por defecto, el sistema ocupa 3, que son 0 entrada estándar (stdin) y 1 salida estándar (stdout). , 2 error estándar (stderr) y 3-9 son identificadores reservados, que se pueden especificar como entrada estándar, salida o error como conexión temporal. Esto generalmente resuelve muchas solicitudes de redireccionamiento complejas.
La entrada estándar generalmente se refiere a la entrada del teclado. La salida estándar generalmente se refiere a la salida del monitor. Los errores estándar generalmente se dirigen a la pantalla.
Consulte el siguiente ejemplo para describir su relación:
#ls /dev < Br> Este comando enumera todos los archivos en el directorio /dev y muestra los resultados en la pantalla.
Aquí /dev es la entrada estándar del comando ls (ingresado desde el teclado), y el resultado impreso en la pantalla es la salida estándar (el contenido del directorio /dev) o de vuelta al título, el redireccionamiento es la entrada o salida estándar Cambie a otras formas, consulte el siguiente ejemplo o equivalente a
#ls /dev 1 > filename #Nota: No hay espacio entre " 1 " y " > "
El comando anterior pondrá el estándar del comando La salida se redirige a un nombre de archivo en lugar de mostrarse en la pantalla. Si no se especifica el identificador del archivo, el sistema se establece de manera predeterminada en 1, por lo que se puede omitir 1.
Si cambia el ejemplo anterior, cambie " > " a ".; > > " significa agregar la salida al final del archivo de nombre de archivo, y crearlo si el archivo no existe. El siguiente
#ls /dev > > nombre de archivo
también puede redirigir los errores estándar a un archivo
#ls -qw /dev 2 > nombre de archivo
Obviamente, -qw es un parámetro de error, generalmente Se muestra un mensaje de error en la pantalla, pero como el error estándar 2 (stderr) se redirige al nombre de archivo del archivo, la pantalla no muestra ningún mensaje de error y el mensaje se escribe en el archivo. El siguiente comando dirige la salida estándar y el error al archivo.
#ls /dev &> nombre de archivo
" &" Aquí se refiere a la salida estándar y al error estándar, donde la salida normal o el mensaje de error se escriben en el nombre de archivo.
La redefinición de los identificadores de entrada, salida y error estándar. La redefinición de los identificadores de archivo puede usar el comando i > &j para redirigir el identificador de archivo i a j, puede poner " &" Comprender como " obtener dirección "
Vea el siguiente ejemplo:
#e xec 5 &gp; &1
significa dirigir el identificador de archivo 5 a la salida estándar, este comando generalmente se usa para temporarios Guarde la entrada estándar.
La misma entrada estándar también se puede redirigir, consulte el siguiente ejemplo
# grep search-word
En general, el comando grep busca una cadena en un archivo dado. El comando anterior usa el nombre de archivo como el comando grep. Entrada estándar en lugar de escribir desde el teclado.
Como se mencionó anteriormente, el sistema asigna un identificador de archivo a cada archivo abierto para que el sistema pueda rastrear el archivo. ¿Cuál es el identificador de archivo predeterminado? La respuesta es 0, que es una entrada estándar, o se puede decir que se ingresa desde el teclado. Por supuesto, este identificador de archivo también se puede especificar por sí mismo. Consulte el siguiente ejemplo:
#e cho 123456789 > filename Escriba la cadena en el nombre de archivo del archivo #e xec 3 < > filename Abra el nombre de archivo del archivo y especifique el identificador del archivo El carácter es 3 #read -n 4 < &3 lee 4 caracteres del archivo, el identificador se ha señalado al final del cuarto carácter #e cho -n. ≫ &3 Escriba un punto en el quinto carácter , cubriendo el quinto carácter, -n significa que no se ajusta #e xec 3 > &- cerrando el identificador de archivo
Ahora el resultado del nombre de archivo cat se convierte en 1234.6789
El comando j < > filename significa abrir el archivo E indique que el identificador de archivo es j
" &- " significa cerrar el identificador de archivo. Para obtener información sobre la operación de cierre del identificador de archivo, consulte lo siguiente: n < &- Cierre el identificador del archivo de entrada n 0 < &- o < &- cerrar entrada estándar stdin n > &- cerrar identificador de archivo de salida n 1 > &- o > &-cerrar stdout de salida estándar - Hay otros comandos , como referencia abajo
> nombre_archivo o > nombre_archivo
significa establecer el nombre de archivo en vacío, es decir, para vaciar el contenido del archivo, si el archivo no existe, cree un archivo vacío (equivalente al comando táctil): indica una salida vacía, dos comandos La única diferencia es que > filename no funciona en todos los shells.

Copyright © Conocimiento de Windows All Rights Reserved