Navegación IO en Unix / Linux

La mayoría de los comandos del sistema Unix reciben entrada de su terminal y envían la salida de vuelta a su terminal. Los comandos generalmente leen su entrada desde algo llamado entrada estándar, que ocurre en su terminal predeterminado. De la misma manera, un comando generalmente sale a la salida estándar, lo que sucede en su terminal predeterminado.

Navegar por la salida en Unix/Linux

El resultado de los comandos que tienden a esperar la salida estándar se puede dirigir fácilmente a un archivo. Esta función se denomina salida de nueva navegación.

Si asigna el carácter> a cualquier comando, generalmente escribirá su salida en la salida estándar, y la salida de ese comando se escribirá en un archivo en lugar del terminal.

verificamos QUIÉN un comando que redirigirá toda la salida del comando al archivo del usuario:

  $ who > users 

Tenga en cuenta que no hay salida de terminal. Esto se debe a que la salida se redirige desde el dispositivo de salida estándar (terminal) a un archivo específico de forma predeterminada. Si marca el usuario del archivo, el archivo contendrá el contenido completo:

  $ cat users oko tty01 Sep 12 07 : 30 ai tty15 Sep 12 13 : 32 ruth tty21 Sep 12 10 : 10 pat tty24 Sep 12 13 : 07 steve tty25 Sep 12 $ 13 : 03 

Si un comando de salida se redirige a un archivo y ese archivo ya contiene algunos datos, esos datos se perderán. Considere el siguiente ejemplo:

  $ echo line 1 > users $ cat users line 1 $ 

Puede usar el operador >> para asignar la salida a un archivo existente de la siguiente manera:

  $ echo line 2 >> users $ cat users line 1 line 2 $ 

Redirigir entrada a Unix/Linux

Al igual que la salida de un comando, la entrada de un comando también se puede redirigir desde un archivo. Se utilizan caracteres más pequeños cuando se utilizan caracteres más grandes para la navegación de entrada.

Los comandos que a menudo reciben entrada de entrada estándar se pueden ingresar desde un archivo basado en las acciones del usuario. Por ejemplo, para contar el número de líneas en un archivo personalizado, puede ejecutar el siguiente comando:

  $ wc - l users 2 users $ 

Aquí producirá 2 filas. Puede contar el número de líneas en un archivo redirigiendo la entrada estándar del comando wc del usuario.

  $ wc - l 

Remember, there is a difference in output by 2 patterns of wc command. In the first case, the name of the users file is listed with the line number, but in the second case it is not.

In the first case, wc knows that it is reading its input from users. In the second case, it only knows that it is its input from the standard input so it does not display the file name.

Here document in Unix / Linux

Here a document is used to redirect input into an interactive shell script or program.

We can run an interactive program in a shell script without the user's manipulation providing the required input for the program or the interactive shell script.

The general template for this document is:

  

Here, the shell interprets the

This limit tells the shell that here the document is done. Without it, the shell continues to read the input forever. The limit must be a single word that does not contain spaces or tabs.

Below is the input of the wc -l command to calculate the total number of lines.

  $ wc - l 

You can use here document to print multiple lines using your script as follows:

  #! / bin / sh cat 

This code will produce the following result:

  Đây là một Lookup đơn chương trình này cho good ( và sai ) restaurants trong Cape Town . 

La siguiente secuencia de comandos utiliza un pequeño editor de texto para iniciar una región y guardar la entrada en el archivo test.txt.

  #! / bin / sh filename = test .  txt vi $ filename 

If you run this script with vim that works similarly, then you will see the output like this:

  $ sh test .  sh Vim : Cảnh báo : Đầu vào không phải từ một dòng $ 

Después de ejecutar el script, verá el siguiente resultado agregado al archivo test.txt.

  $ cat test .  txt tập tin này được tạo được tự động từ một $ shell script 

Eliminar la salida en Unix / Linux

A veces, debe ejecutar un comando, pero no desea que la salida se muestre en la pantalla. En este caso, puede eliminar la salida redirigiéndola al archivo /dev/null:

  $ command > / dev / null 

Aquí el comando es el nombre del comando que desea ejecutar. El archivo /dev/null es un archivo especial que elimina automáticamente todos los datos ingresados.

Para eliminar la salida del comando y la salida del error del comando, use la redirección estándar para redirigir STDERR a STDOUT.

  $ command > / dev / null 2 > & 1 

Aquí 2 significa STDERR y 1 significa STDOUT. Puede mostrar un mensaje STDERR redirigiendo STDIN a STDERR de la siguiente manera:

  $ echo message 1 > & 2 

Redirigir comandos en Unix / Linux

Aquí está la lista completa de comandos disponibles para la redirección:

Comando Descripción pgm> archivo El resultado de pgm se dirige a un archivo. pgm pgm >> archivo La salida de pgm se asigna a un archivo. n> El archivo sale de la secuencia con el símbolo n apuntando al archivo. n >> genera un archivo de una secuencia, n se asigna a un archivo. n> & m Combina la salida del flujo n con el flujo m. n Tenga en cuenta que 0 firmas de archivo suelen ser de entrada estándar (STDIN), 1 normalmente es de salida estándar (STDOUT) y 2 normalmente es de salida de error estándar (STAERR).

Según el punto de entrenamiento

Artículo anterior: Tecnologías citadas en Unix/Linux

Próxima lección: Funciones de Shell

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir
error: Content is protected !!