Aprenda o básico de como o Linux E/S (entrada/saída) de redirecionamento funciona

Aprenda o básico de como o Linux E/S (entrada/saída) de redirecionamento funciona

Um dos tópicos mais importantes e interessantes da administração Linux é o redirecionamento de E/S. Esse recurso da linha de comando permite redirecionar a entrada e/ou a saída de comandos de e/ou para arquivos ou unir vários comandos usando tubos para formar o que é conhecido como “oleoduto de comando”.

Todos os comandos que administramos produzem fundamentalmente dois tipos de saída:

  1. o resultado do comando - dados que o programa foi projetado para produzir e
  2. As mensagens de status e erro do programa que informam um usuário dos detalhes de execução do programa.

No Linux e em outros sistemas do tipo UNIX, existem três arquivos padrão nomeados abaixo, que também são identificados pelo shell usando números de descritores de arquivos:

  1. stdin ou 0 - Está conectado ao teclado, a maioria dos programas leu a entrada deste arquivo.
  2. stdout ou 1 - Está anexado à tela e todos os programas enviam seus resultados a este arquivo e
  3. stderr ou 2 - Os programas enviam mensagens de status/erro a este arquivo, que também é anexado à tela.

Portanto, o redirecionamento de E/S permite alterar a fonte de entrada de um comando, bem como onde suas mensagens de saída e erro são enviadas para. E isso é possível pelo ““<” e ">" operadores de redirecionamento.

Como redirecionar a saída padrão para o arquivo no Linux

Você pode redirecionar a saída padrão, como no exemplo abaixo, aqui, queremos armazenar a saída do comando superior para inspeção posterior:

$ top -bn 5> top.registro 

Onde as bandeiras:

  1. -b - habilita principal Para executar no modo em lote, para que você possa redirecionar sua saída para um arquivo ou outro comando.
  2. -n - Especifica o número de iterações antes que o comando termine.

Você pode ver o conteúdo de principal.registro Arquivo usando o comando CAT da seguinte forma:

$ CAT TOP.registro 

Para anexar a saída de um comando, use o ">>" operador.

Por exemplo, para anexar a saída do comando superior acima no principal.registro Arquivo especialmente dentro de um script (ou na linha de comando), digite a linha abaixo:

$ top -bn 5 >> TOP.registro 

Observação: Usando o número do descritor de arquivo, o comando redirecionamento de saída acima é o mesmo que:

$ TOP -BN 5 1> TOP.registro 

Como redirecionar o erro padrão para arquivar no Linux

Para redirecionar o erro padrão de um comando, você precisa especificar explicitamente o número do descritor de arquivo, 2 Para a concha entender o que você está tentando fazer.

Por exemplo, o comando LS abaixo produzirá um erro quando executado por um usuário normal do sistema sem privilégios root:

$ ls -l /root / 

Você pode redirecionar o erro padrão para um arquivo como abaixo:

$ ls -l / root / 2> ls -error.Log $ CAT LS-Error.registro 
Redirecionar o erro padrão para arquivar

Para anexar o erro padrão, use o comando abaixo:

$ LS -L / ROOT / 2 >> LS -Error.registro 

Como redirecionar a saída/ erro padrão para um arquivo

Também é possível capturar toda a saída de um comando (saída padrão e erro padrão) em um único arquivo. Isso pode ser feito de duas maneiras possíveis, especificando os números do descritor de arquivos:

1. O primeiro é um método relativamente antigo que funciona da seguinte maneira:

$ ls -l / root /> ls -error.log 2> & 1 

O comando acima significa que o shell enviará primeiro a saída do comando ls para o arquivo LS-Error.registro (usando > LS-Error.registro) e depois grava todas as mensagens de erro no descritor de arquivo 2 (saída padrão) que foi redirecionada para o arquivo LS-Error.registro (usando 2> & 1). Implicando que o erro padrão também é enviado para o mesmo arquivo que a saída padrão.

2. O segundo e o método direto é:

$ ls -l / root / &> ls -error.registro 

Você também pode anexar a saída padrão e o erro padrão a um único arquivo como assim:

$ ls -l / root / & >> ls -error.registro 

Como redirecionar a entrada padrão para o arquivo

A maioria, se não todos os comandos, obtém sua entrada da entrada padrão e, por padrão padrão, a entrada é anexada ao teclado.

Para redirecionar a entrada padrão de um arquivo diferente do teclado, use o ““<” operador como abaixo:

$ cat   Redirecionar a entrada padrão para o arquivo 

Como redirecionar a entrada/saída padrão para o arquivo

Você pode executar a entrada padrão, redirecionamento de saída padrão ao mesmo tempo usando o comando de classificação como abaixo:

$ classificar.saída 

Como usar o redirecionamento de E/S usando tubos

Para redirecionar a saída de um comando como entrada de outro, você pode usar tubos, esse é um meio poderoso de criar linhas de comando úteis para operações complexas.

Por exemplo, o comando abaixo listará os cinco principais arquivos modificados recentemente.

$ LS -LT | Cabeça -n 5 

Aqui, as opções:

  1. -eu - Ativa o formato de listagem longa
  2. -t - classificar por tempo de modificação com os arquivos mais recentes são mostrados primeiro
  3. -n - especifica o número de linhas de cabeçalho para mostrar

Comandos importantes para a construção de pipelines

Aqui, revisaremos brevemente dois comandos importantes para a construção de dutos de comando e eles são:

Xargs que é usado para construir e executar linhas de comando a partir de entrada padrão. Abaixo está um exemplo de um pipeline que usa Xargs, Este comando é usado para copiar um arquivo em vários diretórios no Linux:

$ echo/home/aaronkilik/test//home/aaronkilik/tmp | xargs -n 1 cp -v/home/aaronkilik/bin/sys_info.sh 
Copie arquivos para vários diretórios

E as opções:

  1. -n 1 - Instrui Xargs a usar no máximo um argumento por linha de comando e enviar para o comando cp
  2. cp - copia o arquivo
  3. -v - Exibe o progresso do comando de cópia.

Para mais opções de uso e informações, leia o Xargs Página do homem:

$ Man Xargs 

A Tee O comando lê a partir de entrada e gravação padrão para saída e arquivos padrão. Podemos demonstrar como Tee funciona da seguinte forma:

$ echo "testando como o comando tee funciona" | Tee File1 
Exemplo de comando tee

Filtros de arquivo ou texto são comumente usados ​​com tubos para operações eficazes de arquivos Linux, para processar informações de maneiras poderosas, como reestruturar a saída de comandos (isso pode ser vital para a geração de relatórios úteis do Linux), modificando o texto em arquivos e vários outros linux do sistema Administração tarefas.

Para saber mais sobre filtros e tubos do Linux, leia este artigo Encontre os 10 melhores endereços IP acessando o Apache Server, mostra um exemplo útil de usar filtros e tubos.

Neste artigo, explicamos os fundamentos da redirecionamento de E/S no Linux. Lembre -se de compartilhar seus pensamentos através da seção de feedback abaixo.