El mejor tutorial de entrada Shell redirección / salida en 2024. En este tutorial podrás aprender redirección de la salida,redirección de entrada,aquí Documento,/ Archivo dev / null,
La mayoría de los sistemas UNIX para aceptar comandos de su terminal de entrada y de salida generado es enviado de vuelta a su terminal. Un comando normalmente leer desde una entrada local llama la entrada estándar, por defecto, esto pasa a ser su terminal. Del mismo modo, un comando normalmente escribe su salida a la salida estándar, por defecto, esto es su terminal.
Redirigir lista de comandos es la siguiente:
comando | explicación |
---|---|
comando> archivo | Redirigir la salida a un archivo. |
<Archivo de comandos | Redirigir la entrada en el archivo. |
>> Archivo de comandos | La salida se redirige al archivo adjuntas. |
n> archivo | El descriptor de archivo para los archivos n redirigido a presentar. |
n >> Archivo | El archivo descriptor de archivo n de formas adicionales para redirigir el archivo. |
n> & m | El archivo de salida m y n se combinan. |
n <& m | El archivo de entrada m y n se combinan. |
<< Tag | El contenido de la etiqueta etiqueta etiqueta inicial y la etiqueta final entre como entrada. |
Tenga en cuenta que el descriptor de archivo 0 suele ser la entrada estándar (stdin), 1 es la salida estándar (stdout), 2 es la salida de error estándar (STDERR).
Redirigir normalmente entre un comando para insertar símbolos específicos para alcanzar. En particular, estos símbolos muestran en la siguiente sintaxis:
command1 > file1
El comando anterior se ejecutará comando1 y luego la salida del contenido almacenado en archivo1.
Archivo1 Tenga en cuenta que cualquier contenido que ya existe será sustituido por el nuevo contenido. Si desea añadir nuevos contenidos al final del archivo, utilice el operador >>.
Ejecute el siguiente comando que completan volverá a dirigir la salida de un comando en los archivos de usuario (usuarios):
$ who > users
Después de la ejecución, no hay salida en el terminal, es porque la salida se ha redirigido desde el dispositivo de salida estándar por defecto (terminal) en el archivo especificado.
Puede utilizar el comando cat para ver el contenido del archivo:
$ cat users _mbsetupuser console Oct 31 17:35 tianqixin console Oct 31 17:35 tianqixin ttys000 Dec 1 11:33
redirección de la salida sobrescribe el contenido del archivo, consulte el siguiente ejemplo:
$ echo "本教程:www.w3write.com" > users $ cat users 本教程:www.w3write.com $
Si no desea que el contenido del archivo se sobrescribe, se puede utilizar el >> anexar a un archivo, por ejemplo:
$ echo "本教程:www.w3write.com" >> users $ cat users 本教程:www.w3write.com 本教程:www.w3write.com $
Y como redirección de la salida, comando de Unix puede obtener información de un archivo, la sintaxis es:
command1 < file1
Por lo tanto, la necesidad original para obtener la entrada del teclado será transferido al archivo de comando para leer el contenido.
Nota: La redirección de la salida símbolo mayor que (>), redirección de entrada es menor que (<).
A continuación, el ejemplo anterior, tenemos que contar el número de usuarios de archivos filas, ejecute el siguiente comando:
$ wc -l users 2 users
También puede redirigir a los usuarios archivos de entrada:
$ wc -l < users 2
Nota: Los resultados de los dos ejemplos anteriores son diferentes: el primer ejemplo, el nombre de archivo de salida, y el segundo no, ya que no conoce más que leer de la entrada estándar.
command1 < infile > outfile
Reemplazar tanto de entrada como de salida, ejecutar comando1, archivoentrada leer el archivo, y luego escribir el resultado en el archivo de salida.
En circunstancias normales, cada uno ejecuta el comando Unix / Linux se abrirán tres archivos:
Por defecto, el comando> salida estándar de redirección de archivos en un archivo, el comando <archivo será redireccionada la entrada estándar a un archivo.
Si desea redirigir stderr al archivo, se puede escribir:
$ command 2 > file
Si desea anexar al final del archivo archivo stderr, se puede escribir:
$ command 2 >> file
2 representa el archivo de error estándar (stderr).
Si desea combinar después de la stdout y stderr redirigida al archivo, se puede escribir:
$ command > file 2>&1 或者 $ command >> file 2>&1
Si desea redirigir entrada y salida estándar, se puede escribir:
$ command < file1 >file2
la entrada estándar de comandos de comandos redirigido a archivo1, archivo2 redirigir stdout a.
Aquí Documento Shell está en una redirección de métodos especiales utilizados para redirigir la entrada a una secuencia de comandos shell interactivo o programa.
Su forma básica es la siguiente:
command << delimiter document delimiter
Es el papel de los contenidos (documento) se transmite a los dos delimitador entre comando como entrada.
Nota:
- Terminando delimitador debe ser la escritura rejilla superior, no puede tener cualquiera de los personajes frente a la parte posterior no puede tener caracteres, incluyendo espacios y ficha sangría.
- Espacios antes y después del delimitador de inicio se ignora.
El número de filas de la línea de comandos de computación Aquí documento mediante el comando wc -l:
$ wc -l << EOF 欢迎来到 本教程 www.w3write.com EOF 3 # 输出结果为 3 行 $
Podemos también Aquí documento que se utiliza en una secuencia de comandos, por ejemplo:
#!/bin/bash # author:本教程 # url:www.w3write.com cat << EOF 欢迎来到 本教程 www.w3write.com EOF
Aplicación de la secuencia de comandos anterior, la producción:
欢迎来到 本教程 www.w3write.com
Si desea ejecutar un comando, pero no quieren mostrar la salida en la pantalla, puede redirigir la salida a / dev / null:
$ command > /dev/null
/ Dev / null es un archivo especial, sus contenidos están escritos para ser desechados; si intenta leer el archivo, a continuación, lo que no puede leer. Sin embargo, / dev archivo / null es muy útil para redirigir la salida del comando a la misma, que actuará como un efecto de "prohibir la salida".
Si desea proteger a stdout y stderr, se puede escribir:
$ command > /dev/null 2>&1
Nota: 0 es la entrada estándar (stdin), 1 es la salida estándar (stdout), 2 es la salida de error estándar (STDERR).