No Linux, a linha de comando torna-se incrivelmente poderosa quando você começa a conectar comandos. Em vez de executar um comando, salvar sua saída e depois executar outro, você pode criar um pipeline para passar dados diretamente entre eles.
Entendendo o Operador Pipe
Vamos começar com um comando que produz muita saída:
ls -la /etc
A lista de itens provavelmente é muito longa para caber na sua tela, dificultando a leitura. Embora você pudesse redirecionar essa saída para um arquivo, um método mais eficiente é enviá-la diretamente para outro comando, como less, para facilitar a visualização.
ls -la /etc | less
O operador pipe |, representado por uma barra vertical, é a chave para esse processo. Ele pega a saída padrão (stdout) do comando à sua esquerda e a usa como entrada padrão (stdin) para o comando à sua direita. Neste caso, nós canalizamos (piped) a saída de ls -la /etc diretamente para o comando less. O pipe é uma ferramenta fundamental que você usará constantemente.
Dividindo a Saída com o Comando Tee
E se você quiser ver a saída na sua tela e salvá-la em um arquivo simultaneamente? É aqui que entra o comando tee. O comando pipe e tee no linux é uma combinação clássica para registro e monitoramento.
ls | tee peanuts.txt
Após executar isso, você verá a saída de ls no seu terminal. Se você também verificar o conteúdo de peanuts.txt, encontrará exatamente a mesma informação. O comando tee efetivamente divide o fluxo de saída em duas direções: uma para a saída padrão e outra para um arquivo especificado.
Combinando Pipe e Tee
Você pode criar fluxos de trabalho ainda mais avançados encadeando esses comandos. Um padrão comum é usar o pipe para tee no meio de uma cadeia de comandos mais longa. Isso permite salvar um resultado intermediário enquanto continua a processar os dados.
Por exemplo, você pode usar a combinação linux pipe tee para visualizar e salvar a saída antes de filtrar mais:
ls -la /etc | tee etc_listing.txt | grep "conf"
Este comando faz três coisas:
- Lista o conteúdo do diretório
/etc. - Canaliza essa saída para o
tee, que salva uma cópia emetc_listing.txte também a repassa. - A saída do
teeé então canalizada para ogrep, que filtra por linhas contendo "conf".
Dominar esses comandos melhorará significativamente sua eficiência na linha de comando.