input Shell redirecionamento / saída
A maioria dos sistemas UNIX para aceitar comandos a partir do seu terminal de entrada e saída gerada é enviada de volta para o seu terminal. Um comando normalmente ler de uma entrada local chamado de entrada padrão, por padrão, este passa a ser o seu terminal. Da mesma forma, um comando normalmente grava sua saída para a saída padrão, por padrão, este é o seu terminal.
Redirecionar lista de comandos é a seguinte:
comando | explicação |
---|---|
command> arquivo | Redirecionar a saída para um arquivo. |
comando <file | Redirecionar a entrada para o arquivo. |
arquivo de comando >> | A saída para ser redirecionado para o arquivo acrescentando. |
n> arquivo | O descritor de arquivo para os arquivos n redirecionados para o arquivo. |
n Arquivo >> | O descritor n arquivo para arquivo formas adicionais para redirecionar o arquivo. |
n> & m | O arquivo de saída m e n são mesclados. |
N <& m | O arquivo de entrada m e n são mesclados. |
<< Tag | O conteúdo tag tag tag de início e marca final entre como entrada. |
Note-se que o descritor de arquivo 0 é geralmente entrada padrão (STDIN), 1 é a saída padrão (STDOUT), 2 é a saída de erro padrão (STDERR).
redirecionamento de saída
Redirecionar tipicamente por entre comando para inserir símbolos específicos para alcançar. Em particular, esses símbolos mostrado na seguinte sintaxe:
command1 > file1
O comando acima irá executar command1 e depois a saída do conteúdo armazenado no file1.
File1 Note que qualquer conteúdo que já existe será substituído pelo novo conteúdo. Se você quiser adicionar novos conteúdos no final do arquivo, use o operador >>.
Exemplos
Execute o seguinte comando que completam ele irá redirecionar a saída de um comando nos arquivos do usuário (usuários):
$ who > users
Após a execução, não há saída no terminal, é porque a saída foi redirecionado a partir do dispositivo padrão padrão de saída (terminal) para o arquivo especificado.
Você pode usar o comando cat para visualizar o conteúdo do arquivo:
$ cat users _mbsetupuser console Oct 31 17:35 tianqixin console Oct 31 17:35 tianqixin ttys000 Dec 1 11:33
redirecionamento de saída substitui o conteúdo do arquivo, consulte o seguinte exemplo:
$ echo "本教程:www.w3big.com" > users $ cat users 本教程:www.w3big.com $
Se você não quer que o conteúdo do arquivo é substituído, você pode usar o >> anexar um arquivo, por exemplo:
$ echo "本教程:www.w3big.com" >> users $ cat users 本教程:www.w3big.com 本教程:www.w3big.com $
redirecionamento de entrada
E, como redirecionamento de saída, comando Unix pode tirar a entrada de um arquivo, a sintaxe é:
command1 < file1
Assim, a necessidade original para obter a entrada do teclado será transferido para o arquivo de comando para ler o conteúdo.
Nota: O redirecionamento de saída símbolo maior que (>), redirecionamento de entrada é menor que (<).
Exemplos
Em seguida, o exemplo acima, temos de contar o número de arquivo de usuários de linhas, execute o seguinte comando:
$ wc -l users 2 users
Você também pode redirecionar arquivos de entrada para os usuários:
$ wc -l < users 2
Nota: Os resultados dos dois exemplos acima são diferentes: o primeiro exemplo, o nome do arquivo de saída, o segundo não vai, porque ele conhece apenas ler da entrada padrão.
command1 < infile > outfile
Substitua entrada e saída, execute command1, infile ler o arquivo, e em seguida, escrever a saída para o arquivo de saída.
Redirecionar explicação profundidade
Em circunstâncias normais, cada comando Unix / Linux roda vai abrir três arquivos:
- de arquivo padrão de entrada (stdin): descritor de arquivo stdin a 0, programa padrão Unix lê dados de stdin.
- ficheiro padrão de saída (stdout): saída padrão de descritor de arquivo 1, programas Unix padrão para dados de saída stdout.
- erro padrão (stderr): descritor de arquivo stderr a 2, programa Unix escreve mensagens de erro para fluxo de stderr.
Por padrão, command> redirecionamento stdout arquivo para um arquivo, o comando <arquivo será STDIN redirecionado para o arquivo.
Se você deseja redirecionar stderr para o arquivo, você pode escrever:
$ command 2 > file
Se você quiser adicionar ao final de arquivo do arquivo stderr, você pode escrever:
$ command 2 >> file
2 representa o arquivo de erro padrão (stderr).
Se você deseja mesclar após a stdout e stderr redirecionado para o arquivo, você pode escrever:
$ command > file 2>&1 或者 $ command >> file 2>&1
Se você deseja redirecionar stdin e stdout, você pode escrever:
$ command < file1 >file2
comando comando stdin redirecionado para file1, redirecionar stdout para file2.
aqui Documento
Aqui Documento Shell está em um métodos de redirecionamento especiais usadas para redirecionar a entrada de um script shell interativo ou programa.
A sua forma básica é a seguinte:
command << delimiter document delimiter
É a função do teor (documento) é transmitida para os dois delimitador entre comando como entrada.
Nota:
- Terminando delimitador deve ser a gravação grade superior, não pode ter qualquer um dos personagens na frente da parte de trás não pode ter quaisquer caracteres, incluindo espaços e recuo guia.
- Espaços antes e após o início delimitador é ignorado.
Exemplos
O número de linhas na linha de comando computação Aqui documento pelo comando wc -l:
$ wc -l << EOF 欢迎来到 本教程 www.w3big.com EOF 3 # 输出结果为 3 行 $
Podemos também Aqui documento utilizado em um script, por exemplo:
#!/bin/bash # author:本教程 # url:www.w3big.com cat << EOF 欢迎来到 本教程 www.w3big.com EOF
Implementação do script acima, a saída:
欢迎来到 本教程 www.w3big.com
/ Arquivo Dev / null
Se você quiser executar um comando, mas não deseja exibir a saída na tela, você pode redirecionar a saída para / dev / null:
$ command > /dev/null
/ Dev / null é um arquivo especial, seu conteúdo é escrito para ser descartado, se você tentar ler a partir do arquivo, em seguida, o que não pode ler. No entanto, / dev arquivo / null é muito útil para redirecionar a saída do comando a ele, ele vai agir como um efeito de "proibir a saída".
Se você quiser proteger stdout e stderr, você pode escrever:
$ command > /dev/null 2>&1
Nota: 0 é a entrada padrão (STDIN), 1 é a saída padrão (STDOUT), 2 é a saída de erro padrão (STDERR).