Nesta aula do Curso de Linux Básico | XP IT Cursos, aprenderemos a como utilizar redirecionamentos e pipes no terminal Linux.
Depois de nossa última aula em que entendemos a utilidade e uso dos Fluxos Padrão Linux, estamos aptos para nos aprofundar no redirecionamento e encadeamento de comandos e assim ter mais agilidade na utilização do terminal Linux.
Saber como manipular estas ferramentas com os diferentes fluxos de dados Linux aumentará muito sua produtividade.
Com estes recursos será possível construir comandos no shell que permitem por exemplo que, ao invés digitarmos, 2 ou mais comandos no terminal, seja possível digitar apenas 1 único comando, que utilizando redirecionamento e pipes seja possível encadear a execução dos demais comandos, otimizando a operação do Terminal Linux.
Curso Linux : Básico
🎦 Módulo 05 : Aula 16 : Como utilizar os Redirecionamentos e Pipes Linux 🐧
🎦 Como Usar Redirecionamento e Pipe Linux ✅💻
🕐 Conteúdo
⏺ Introdução
⏺ Pré Requisitos : Aula
⏺ Revisão Fluxos Padrão Linux
⏺ Revisão Redirecionamento de fluxo de saída > e >>
⏺ Redirecionamentos de fluxo Entrada < (Padrão), << (Here Document) e <<< (Here String)
⏺ Redirecionamento de fluxo Erros 2> e 2>>
⏺ Redirecionadores Não Padrão &> e &>>
⏺ Pipe “|”
⏺ Diferença entre PIPE e Redirecionamento
Esta aula faz parte do Curso Linux Básico da XP IT Cursos, uma plataforma ensino completa que irá proporcionar seu aprendizado de uma forma rápida e consistente.
XP IT Cursos
A XP IT Cursos oferece uma oferta a preços acessíveis a Plataforma de Aprendizado com Vídeo Aulas do WebMundi.com + Trilha de Aprendizagem, Material didático em PDF, exercícios de fixação / Revisão de Conteúdo, questionários e o final do curso o Certificado de Conclusão.
+ Garanta seu desconto exclusivo em : https://www.xpitcursos.com.br
Aula # 16 : Como funcionam os Redirecionadores e os Pipes do Linux – Módulo 5 👩🏻💻🐧
[Canal Web Mundi.com + XP IT Cursos]
Revisão Fluxos Padrão Linux : Linux Standard Streams
Fluxos Padrão Linux
Com vimos na aula 15 deste curso, o Linux possui 3 Fluxos Padrão:
- entrada padrão ( stdin )
- saída padrão ( stdout )
- erro padrão ( stderr )
Os fluxos também são numerados por descritores de arquivos (file Descritors):
- stdin ( 0 )
- stdout ( 1 )
- stderr ( 2 )
Durante as interações padrão entre o usuário e o terminal, a entrada padrão é transmitida através do teclado do usuário.
A saída padrão e o erro padrão são exibidos no terminal do usuário como texto.
Os fluxos padrão Linux podem ser manipulados através de operadores de redirecionamento e pipes podemos até mesmo programar na linha de comando Linux, também conhecido como bash ou shell programming.
Você pode até se perguntar porque aprender linha de comando Linux ?
Já ouvi muita gente dizer que a Linha
A linha de comando Linux vai acabar ?
Porque usar comandos de terminal se já temos a interface gráfica no Linux?
Para aqueles que acham que é mais fácil usar a interface gráfica sinto informar que estão errados.
A Linha de comando ou shell esta mais vivo e continua muito forte no mundo Linux.
O Shell é uma maneira eficiente de coletar e processar informações rapidamente, criar novos scripts e configurar sistemas.
Revisão Redirecionadores de Saída
Como vimos podemos redirecionar os fluxos de saída do Linux usando os redirecionadores de saída.
Redirecionadores de Saída
Redirecionamento de Saída : Maior : “>“
Para isso, utilizamos o redirecionador “>” (Maior) pode enviar a saída de um comando para um arquivo, ou ler a partir de um arquivo.
Redirecionamento da Saída Padrão : Maior : “>“
O Sinal Maior ( > ) representa este operador.
Resumo sobre os Redirecionadores de Saída Linux / Unix
“>” = cria arquivos
“>>” = adiciona saída do comando utilizado no final do arquivo
Mas assim como a saída, no Linux podemos manipular todos fluxos padrão como a entrada, os erros e também redirecionar o fluxo de um programa ou comando para outro comando ou programa. Então vamos continuar aprendendo como se faz a manipulação dos fluxos padrão Linux usando redirecionadores e pipes.
Redirecionadores do Fluxo Entrada
Redirecionando a entrada padrão
O primeiro redirecionamento que vamos conhecer é o de entrada padrão.
O sinal (Menor) < representa este operador.
O redirecionador de entrada extrai dados em um fluxo de uma determinada fonte.
Normalmente, os programas recebem suas entradas do teclado.
No entanto, os dados podem ser obtidos de outra fonte, como um arquivo.
Mas vamos a mão na massa para demonstrar esta funcionalidade.
Vou acessar o Linux e com o terminal aberto vamos usar o comando cat para isso.
Antes de vermos este redirecionador , vamos ver o conteúdo do arquivo webmundi.txt
cat webmundi.txt
E veja que o cat mostra o conteúdo do arquivo webmundi.txt
Agora vamos ao comando rodar o comando com o redirecionador de entrada padrão
cat < webmundi.txt
E veja que ao utilizarmos o redirecionador de entrada padrão < vemos que o resultado é o mesmo.
Utilizando o redirecionador de entrada padrão, o comando cat receberá como entrada o arquivo “webmundi.txt” e a imprimirá na tela do terminal.
Aproveitando este momento vamos aprender mais alguns recursos do comando cat.
Além de exibir o conteúdo de um arquivo podemos também usar o cat para copiar um arquivo texto como no exemplo abaixo usando o redirecionador de saída que aprendemos em nossa ultima aula.
cat webmundi.txt > novotexto.txt
ls
Exibindo o arquivo copiado
cat < novotexto.txt
Esclarecendo o verdadeiro funcionamento e significado do comando cat é copiar e colar.
Muitas pessoas acham que o cat é usado somente para visualizar ou criar um arquivo, mas isso não é verdade, a principal função do comando cat é copiar a entrada e colar que é dar a saída para a tela.
É importante entender este conceito, pois veremos mais adiante que o comportamento do cat não sera visualizar o conteúdo ou aceitar uma entrada de texto
O nome do comando cat vem de conCAT de concatenar
Tanto podemos gerar uma saída com cat na tela do terminal informando os arquivos que queremos listar em tela.
Exemplo:
cat webmundi.txt mesatual.txt
E veja que ele copiou a entrada dos 2 arquivos e mandou a saída concatenada em tela
Redirecionamento de entrada padrão é usado para inserir dados em um comando a partir de um arquivo especificado em vez de utilizar um teclado.
Exemplo:
cat < webmundi.txt Seja bem vindo ao Canal WebMundi.com. Espero que esteja gostando desta aula, se puder, se Insreva no canal e deixe seu like neste vídeo. Para apoiar a produção de conteúdo, faça um PIX de Qualquer valor. Chave:[email protected] Obrigado . ,- Ajude-nos a Decolar ! .'. |o| .'o'. |.-.| ' ' ( ) ) ( ) ____ .-'""p 8o""`-. .-'8888P'Y.`Y[ ' `-. ,']88888b.J8oo_ '`. ,' ,88888888888[" Y`. / 8888888888P Y8\ / Y8888888P' ]88\ : `Y88' P `888: : Y8.oP '- > Y88: | `Yb __ `'| : `'d8888bo. : : d88888888ooo. ; \ Y88888888888P / \ `Y88888888P / `. d88888P' ,' `. 888PP' ,' `-. d8P' ,-' -Canal WebMundi.com Youtube- `-.,,_'__,,.-' - bit.ly/canal-webmundi-
Vamos a mais um exemplo:
Vou criar um arquivo texto chamado animais.txt
nano animais.txt
Nele vou inserir animais como abaixo:
Macaco
Galinha
Pato
Vaca
Cachorro
Gato
Zebra
Capivara
Porco
Repare que os animais não estão listados em ordem alfabética.
Depois vou salvar e sair
Agora vamos supor que você precise desta lista em ordem alfabética, para isso podemos usar o comando sort redirecionando a entrada padrão para este comando
sort < animais.txt
E veja que a saída do comando
webmundi@webmundi-VirtualBox:~$ sort < animais.txt
Cachorro
Capivara
Galinha
Gato
Macaco
Pato
Porco
Vaca
Zebra
Porém podemos sofisticar o comando um pouco mais e redirecionar a saída dos resultados classificados para um novo arquivo:
sort < animais.txt > animais-alfabetico.txt
cat < animais-alfabetico.txt
Here documents : <<
Agora vamos conhecer um redirecionador de entrada conhecido como Here Document ou documento aqui.
O sinal (Menor-Menor) << representa este operador.
Ao contrário dos redirecionamentos de saída, o operador <<
age de maneira diferente em comparação a este operadores.
O here document é um bloco de texto ou código de proposito especial que é redirecionado para um programa interativo ou um comando.
Diferentes tipos de linguagens de script, como bash
, sh
e csh
, podem receber entradas diretamente da linha de comando, sem usar nenhum arquivo de texto.
Como veremos, no exemplo a seguir com o comando cat.
cat << fim
Neste caso, o operador here document é usado para inserir dados no comando, ao passo que a palavra que vem depois do operador não especifica um nome do arquivo de arquivo a ser gerado, mas sim um delimitador de fim de arquivo.
Ou seja esta palavra é interpretada como fim da entrada de dados e não será levada em consideração como conteúdo do arquivo, portanto, o cat
não a exibirá:
cat << fim > O texto digitado aqui será utilizado como entrada para o comando cat > Para terminar a digitação / Entrada do comando basta digitar > o delimitador definido depois do operador here document << > fim O texto digitado aqui será utilizado como entrada para o comando cat Para terminar a digitação / Entrada do comando basta digitar o delimitador definido depois do operador here document <<
Com o here document podemos alimentar uma lista de comandos para um programa ou comando como por exemplo cat, ftp, editor de texto, etc…
Here Strings : <<<
O sinal (Menor-Menor-Menor) <<< representa este operador.
Este operador é uma maneira de transformar uma string na entrada padrão (stdin) de um programa ou comando
- Vamos a um exemplo com o comando tr:.
O ‘tr’ é um comando para manipular arquivos e saídas, ele basicamente muda, traduz ou deleta caracteres em uma string ou um arquivo contendo um texto
O Comando a seguir pega uma string com o comando echo e envia ao comando tr para transforma a string com letras maiúsculas.
echo “webmundi.com” | tr a-z A-Z - Porém posso digitar o comando usando o here strings que ficaria, mais limpo e simples de entender :
tr a-z A-Z <<< “webmundi.com“
Redirecionamentos de fluxo Erro
Agora vamos aprender a manipular o fluxo de erro padrão do Linux
Como já vimos o fluxo padrão stdout exibe os resultados esperados de saída de um comando bem sucedido.
Porém se ocorrer erro, ele será gerenciado de forma diferente.
Os erros são rotulados como descritor de arquivo 2 (a saída padrão é o descritor de arquivo fd1).
Quando um programa ou script não gera os resultados esperados, ele gera um erro.
O erro geralmente é enviado para o stderr e pode ser manipulado assim como os outros fluxos.
O sinal (2 – Maior ) 2> representa o operador de redirecionador de erro padrão.
E o sinal (2 – Maior – Maior) 2>> ****o operador de **redirecionador de erro de Acréscimo
(ambos usam o descritor de arquivo 2 – fd2).
Recapitulando :**
- ‘2>’ sobrescreve o arquivo em questão.
- ‘2>>’ adiciona a saída do comando ao final do arquivo, sem apagá-lo.
Vamos agora executar o comando find e salvar todas as mensagens de erro no arquivo find.error.txt:
find / -name “*.conf” 2> find.erros.txt
Veja que a execução deste comando mostra a saída do que é bem sucedido em tela pois é tratada pelo fluxo stdout
Já os erros não são exibidos em tela, pois são tratados pelo fluxo stderr que está sendo redirecionados ao nosso arquivo find.erros.txt
Ao final da execução do comando podemos visualizar o arquivo find.erros.txt com o cat :
cat find.erros.txt
Exemplo de saída do comando cat:
find: '/boot/grub2': Permissão negada
find: '/proc/tty/driver': Permissão negada
find: '/proc/1/task/1/fd': Permissão negada
find: '/proc/1/task/1/fdinfo': Permissão negada
Podemos também redirecionar o fluxo padrão de saída (stdout) para um arquivo no mesmo comando que utilizamos anteriormente.
Ou seja, a saída vai pra um arquivo, por exemplos resultados.txt e os erros para outro arquivo chamado erros.txt, para isso, vamos fazer uma pequena alteração usando o redirecionador padrão de saída através do comando:
find / -name "*.conf" >resultados.txt 2>erros.txt
vamos agora ver os resultados de ambos arquivos com cat.
cat resultados.txt
cat erros.txt
Este tipo de abordagem é útil em scripts de shell ou qualquer outra finalidade para verificar o que deu certo e errado na execução de um comando shell.
Redirecionadores Não Padrão
Além do comando que acabamos de ver para redirecionar os erros e a saída temos também temos Os Operadores Não Padrão que direcionam tanto a saída padrão (stdout) quanto o erro padrão (stderr) para um arquivo.
O sinal & (e comercial) seguido pelo sinal > (maior) ou >> (maior-maior) representam esses operadores.
Vale lembrar que estes operadores (&> &>> ) redirecionam todas as saídas (padrão e erro) do comando para um arquivo.
- ‘&>’ sobrescreve o arquivo em questão.
- ‘&>>’ adiciona a saída do comando ao final do arquivo, sem apagá-lo.
Exemplos:
find / -name “*.conf” &>resultados.txt
Pipe
Agora vamos conhecer a funcionalidade do Conector pipe que é usado para conectar um comando a outro encadeando a execução.
Com o conector Pipe podemos direcionar o processamento de comandos.
Ele passa a saída de um comando para a entrada de outro comando.
O pipe do Linux é representado por uma barra vertical ( | ).
O Pipe é semelhante a um tubo de encanamento físico de uma casa que move a agua de um local para outro.
A saída de um comando entra no pipe de um lado e deixa o pipe como entrada para outro comando do outro lado.
Apenas os dados filtrados retornados pelo segundo programa serão exibidos.
Estes comandos de filtros veremos em nossa próxima aula do nosso curso.
Alguns exemplos de uso do operador de pipe em ação.
Vamos a prática no terminal.
ls /etc | less
Este comando faz com que a listagem dos arquivos do diretório /etc seja paginada pelo aplicativo less.
Para sair do comando less digite CTRL + C e depois q (quit)
O mesmo vale para o comando more
cat webmundi.txt | more cat webmundi.txt | less
Contando arquivos com pipe, ls e wc
ls | wc -l
Ordenando uma lista com Pipe
Ordenando uma lista
cat animais.txt
cat animais.txt | sort
Invertendo a ordem de classificação com pipe e sort:
cat animais.txt | sort -r
Diferença entre PIPE e Redirecionamentos
Embora a funcionalidade do pipe possa parecer semelhante ao redirecionamento de saída, a diferença é que os pipes redirecionam dados de um comando para outro, enquanto redirecionadores de saída (> e >>) são usados para redirecionar conteúdo somente para arquivos.
O que tratamos aqui sobre pipes e redirecionamentos é só um arranhão superficial neste assunto e no que estes recursos podem oferecer.
Com a utilização dos fluxo padrão, redirecionadores e pipes é possível programar no shell Linux, através da construção de scripts ao que se da o nome de shell script ou bash script.
A programação do Shell não é o foco deste curso, pois é um assunto bem extenso que daria um curso sobre o tema, porém a ideia aqui é dar uma base para conhecimento básico sobre fluxo padrão, redirecionadores e pipes.
Em nossa próxima aula, aprenderemos a utilizar o recurso de filtros com pipes e redirecionamentos.
Os filtros são comandos que alteram o redirecionamento e a saída de pipes.
Os comandos de filtro são comandos do Linux que podem ser usados sem pipes como por exemplo find, grep, wc, etc..
Porém quando usados em conjunto com os recursos apresentados aqui permitem um tratamento maior dos dados e comandos executados.
E veremos isso no próximo vídeo do canal e publicação do site.
Materiais e leituras que recomendamos para você:
- Como instalar o Linux Mint 20 no Virtualbox 6.1 : Windows 10
- Como Instalar o SQL Developer Oracle no Linux
- Como Instalar o Servidor XAMPP no Linux – Localhost Apache MySQL PHP
- Instalação e configuração do Flutter no Windows 10
- Sobre as oportunidades em desenvolvimento Java
- Como Instalar Tema Escuro no Netbeans : Dark Mode
- Como atualizar o Windows 7 para Windows 10 Grátis
- Como aumentar sua produtividade no Windows com teclas de atalho
- Como se conectar a um computador remoto via Prompt de Comando
- Como Instalar o SQL Developer Oracle no Linux
- DBeaver : Alternativa ao SQL Server Management Studio Linux
- Como listar as maiores tabelas ou objetos Oracle
Loja WebMundi.com : Informática
-
Nova xiaomi tws fone de ouvido sem fio bluetooth 5.0 dual estéreo à prova d’ água esportes hd chamada earbud controle de toque fone de ouvido longo standby
-
Divoom Timebox Evo Bluetooth Portable Speaker with Clock Alarm Programmable LED Display for Pixel Art Creation Unique Gift
-
MIFA F10 Outdoor Wireless Bluetooth Stereo Portable Speaker Built-in mic Shock Resistance IPX6 Waterproof Speaker with Bass
-
Xcell XC-CM-19 Anvil aux 3,5mm Stereo Surround Music RGB Speakers Computer Sound Bar 2.0 PC Notebook Box
+ Ofertas Informática, Computadores e Tecnologia
Obrigado
Esperamos que esta publicação tenha lhe ajudado a aprofundar seus conhecimentos em linux.
Qual é sua experiência em Linux ?
Conte pra nós a sua experiência, adoraríamos saber.
Como entusiasta em desenvolvimento de software, queremos enriquecer sua experiência e conhecimento sobre este produto.
Se você gostou deste post, compartilhe com seus amigos ou nos acompanhe pelas redes sociais.
Tem alguma dúvida ou observação a fazer ?
Além disso, você pode nos ajudar a criar mais conteúdos como este. Como ?
Adquira produtos em nossa Loja Virtual, uma parceria do webmundi.com com as maiores plataformas de comércio eletrônico do Brasil.
Lembrando que comprando em nossa loja você apoia a criação de vídeos gratuitos aqui no site e em nosso canal do YouTube.
Prestigie também nossos apoiadores e anunciantes conhecendo seus produtos e serviços.
É simples e rápido e assim você ajuda a gente a crescer. 👍🏼
Obrigado e um grande abraço