2.2 Piping e redirecionamento

Lição 17/50 | Tempo de Estudo: 10 Min

Processos Unix geralmente abrem três descritores padrões de arquivos, que os permitem processar entrada e saída de dados. Podem ser redirecionados de e para outros arquivos ou processos. Muito utilizado nas atividades diárias de um sysadmin.

- Por padrão, a entrada de dados padrão (stdin) é o teclado.
- A saída padrão de dados (stdout) é a tela do computador.
- A saída padrão de erros (stderr) também é a tela do computador

Os valores numéricos para esses descritores são:

- 0 para o stdin;
- 1 para stdout e;
- 2 para stderr.

Também podem ser acessados através dos dispositivos virtuais, /dev/stdin, /dev/stdout e /dev/stderr.

Redirecionando para um novo arquivo


Para redirecionar a saída de um comando para um arquivo, utiliza-se o operador > após o mesmo. Detalhes importantes:

- Se o arquivo não existir ele será criado.
- Se o arquivo existir ele será sobrescrito.

Exemplos:


cat /etc/services > /home/sysadmin/teste.txt




cat /etc/resolv.conf > /home/sysadmin/teste.txt



Redirecionando para um arquivo existente


Para adicionar conteúdo ao fim de um arquivo sem sobrescrevê-lo usamos o operador `>>` após o mesmo. Se o arquivo não existir ele será criado.


cat /etc/resolv.conf >> /home/sysadmin/resultado.txt



Redirecionando de um arquivo


Como você deve ter adivinhado, podemos usar o operador < para enviar dados “para o outro lado”. No exemplo a seguir, redirecionamos o STDIN do comando wc com dados originados diretamente do arquivo que geramos na seção anterior. Vamos tentar isso com wc -l que conta caracteres no arquivo. Exemplo:



wc -l < /home/sysadmin/teste.txt


Redirecionando STDERR


De acordo com a especificação POSIX, e informado acima, os descritores de arquivo para STDIN, STDOUT e STDERR são definidos como 0, 1 e 2, respectivamente. Esses números são importantes, pois podem ser usados ​​para manipular os fluxos de dados correspondentes da linha de comando enquanto executa ou junta diferentes comandos juntos.

Para entender melhor como os números do descritor de arquivo funcionam, considere este exemplo que redireciona o erro padrão (STDERR):


cat /etc/andre 2> erros.txt
cat erros.txt


piping


Canalização (Pipe),  envia a saída de um comando para a entrada de outro comando, utilizando o caractere de canalização |. Muito utilizado para se fazer filtros.

Exemplos:


cat /etc/passwd | wc -l
netstat -nat | grep :80 | grep ESTAB | wc -l



Encanamento (tee)

É possível redirecionar simultaneamente a saída de um comando tanto para um arquivo quanto para a saída padrão, através do comando tee. Será exibida a saída do comando na tela e para dentro de um arquivo ao mesmo tempo.

Exemplo:


# cat /etc/passwd | cut -d : -f1 | tee usuarios.txt

💻 Guia Prático: Fazendo tudo que aprendemos acima

André Albuquerque

André Albuquerque

Designer de Produto
4.00
Perfil

Sessões de Aula

1- 3.1 Netcat 2- 4.1 Introdução a comandos de rede no Linux 3- 5.1 Shell Script 4- Temas abordados 5- Temas Abordados 6- 1.1 Instalação do Linux 7- 1.3 Atividades Pós-Instalação 8- 1.4 Usuário root e Usuário comum 9- 1.2 Utilizando LVM 10- 1.5 Sistemas de Arquivos 11- 1.6 Comandos Básicos 12- 1.7 Procurando Arquivos 13- 1.8 Gerenciando Serviços no Linux 14- 1.9 Encontrando, instalando e removendo tools 15- 2.1 Ambiente do Shell 16- 2.2 Piping e redirecionamento 17- 2.3 Procurando texto e manipulação 18- 2.4 Editando arquivos 19- 2.5 Comparando arquivos 20- 2.6 Gerenciando processos 21- 2.7 Monitorando arquivos e comandos 22- 2.8 Baixando arquivos 23- Slide Módulo 2 24- 3.2 Socat 25- Atuar com Cyber Security 26- 6.1 Uma Introdução ao Docker 27- 4.2 Introdução a Análise de Rede 28- 4.3 Networking 29- 4.4 Portas e Serviços 30- 4.5 Análise com Wireshark 31- 4.6 Análise com tcpdump 32- 5.2 Variáveis 33- 5.3 Argumentos 34- 5.4 Lendo Entrada 35- 5.5 Estruturas condicionais if, else e elif 36- 5. 6 Loops 37- 5.7 Criando Menus 38- 5. 8 Funções 39- Exemplos Práticos 40- 6.2 Instalação do Docker no Windows e Linux. 41- 6.3 Imagens e Containers 42- 6.4 Mais Prática - Gerenciando Containers 43- 6.5 Criar conta/usuário no Docker Hub 44- 6.6 Docker Cleanup - Limpando a Casa 45- 6.7 Volumes Docker 46- 6.8 Redes no Docker - Isolamento e Segurança 47- 4.0 🔒 Fundamentos de Redes para Cybersecurity 48- 🎯 EXERCÍCIOS PRÁTICOS 49- 🎯 Wireshark - EXERCÍCIOS PRÁTICOS 50- 🎯 TcpDump- EXERCÍCIOS PRÁTICOS