Boas-vindas a quinta parte do nosso curso de Certificação Linux LPI Essential, mais precisamente, LPI E6. Sou o Ricardo Merces e serei seu instrutor.
Ricardo Merces é uma pessoa de pele clara, rosto arredondado e olhos escuros. É careca e está com barba por fazer. Está com uma camiseta rosa e sentado em uma cadeira gamer preta e vermelha. Ao fundo, uma parede lisa na cor azul. Na lateral esquerda uma prateleira.
Além da certificação, esse curso também é voltado para quem deseja se aprofundar e entender o Linux para realizar tarefas cotidianas.
Neste módulo, vamos nos concentrar principalmente em entrada e saída, redirecionamento. Isso inclui, por exemplo, como lidar com informações que caem na saída padrão e processá-las no arquivo, como redirecionar a saída de um comando para outro comando, além de outros cenários.
Como pré-requisito, é importante que você tenha concluído os outros cursos dessa formação, afinal, daremos continuidade no aprendizado. Além disso, as explicações do módulo anterior certamente será útil para você realizar as tarefas que faremos.
Vamos começar?
Na apresentação do curso, mencionamos que nosso foco será nos redirecionamentos, entrada padrão, saída padrão e erros.
Para que tudo isso aconteça, é importante entender como o Linux trata essas saídas. A primeira parte que abordaremos é a saída padrão, que se chama stdout
.
Para esse curso, é importante que você tenha passado pelos módulos anteriores. No primeiro, usamos uma máquina virtual e fizemos todo o processo de instalação. Caso você tenha alguma dúvida, recomendamos que você retorne nesse curso.
Se você não possui todos os diretórios, não se preocupe, faremos o passo a passo. Começamos criando o diretório que usaremos.
Para isso, passamos o comando mkdir -p
seguido de LPI/redirecionamento
, pois estamos na home, isso é importante. Em seguida apertamos "Enter".
mkdir -p LPI/redirecionamento
Assim, criamos nossa estrutura. Vamos relembrar de alguns comandos. Se passarmos pwd
, dessa forma:
pwd
É exibido onde estamos. Nesse caso, estamos em home/ricardo
. Se passarmos ls
:
ls
Assim temos o diretório dead.letter
. Caso já exista, passamos cd LPI
, caso não, passamos -p
.
Dentro do diretório, criamos o redirecionamento
. Fizemos isso apenas para facilitar a organização. Mas, obviamente, você pode trabalhar isso em qualquer diretório.
Ao digitar echo "teste de mensagem"
, que é o comando echo, seguido de "Enter".
teste de mensagem
Como resultado temos a saída padrão que é o monitor onde conseguimos visualizar para realizar as interações necessárias. Portanto:
teste de mensagem
Nesse comando, não fizemos nada em relação ao redirecionamento dessa saída. Portanto, ele exibiu a informação na tela.
Porém, a habilidade está relacionada a conseguir trabalhar com essa informação. Suponhamos que você não queira que isso seja destinado à saída padrão, mas sim para um arquivo.
Para isso, após echo "teste de mensagem"
adicionamos o sinal >
seguido do arquivo no qual queremos destinar a saída, nesse caso mensagem.txt
.
echo "teste de mensagem mensagem.txt
Ao executar notamos que nada aconteceu na tela. Isso porque a saída padrão foi direcionada para o arquivo mensagem.txt
.
Para visualizar o conteúdo de um arquivo, passamos cat mensagem.txt
.
cat mensagem.txt
Ao executar esse comando, temos o seguinte retorno:
teste de mensagem
Isso significa que deu certo, o conteúdo está lá. O sinal de maior >
, seguido do nome do arquivo, redirecionou a saída padrão.
Mas, a saída padrão se limita a isso? Não! Há outras formas para explorar. Faremos isso no próximo vídeo!
Te esperamos lá!
Daremos continuidade do ponto que paramos no vídeo anterior. Temos o arquivo mensagem.txt
, para visualizá-lo, usamos o comando cat
.
cat mensagem.txt
Como retorno temos:
teste de mensagem
Agora, imagine o seguinte cenário. Queremos adicionar uma nova mensagem a esse mesmo arquivo. Para isso, usamos o comando echo
, seguido de espaço, aspas duplas e nova mensagem
. Em seguida, adicionamos o redirecionamento, ou seja, o sinal >
. Por fim, passamos o arquivo mensagem.txt
.
echo "nova mensagem" > mensagem.txt
Note que nada foi retornado para a saída padrão, indicando que o comando foi executado com sucesso. Agora, analisaremos o arquivo. Para isso, passamos novamente o comando cat
.
cat mensagem.txt
Como retorno temos:
nova mensagem
Repare que há algo de errado. O conteúdo do arquivo mensagem.txt
só está exibindo a última entrada, ou seja, só foi armazenado no arquivo a última mensagem que passamos, ele subscreveu a mensagem ao invés de salvar as duas. Esse comportamento é muito importante de ser frisado, pois o Shell executou exatamente o que lhe foi instruído.
Se analisarmos o comando e o que acontece por baixo dos panos, quando colocamos o sinal de maior que >
, se um arquivo destino não existir, então será criado. Tanto que quando fizemos o primeiro direcionamento o arquivo não existia, então foi criado e adicionou o conteúdo.
Mas, ao repetir o comando e mudar a mensagem, o arquivo foi substituído, portanto, o que já estava armazenado foi perdido. Porém, há uma forma de reaproveitarmos tudo isso.
Para isso, apertamos o botão "Seta para cima" para usarmos o mesmo comando e mudamos o texto para nova mensagem-2
. Se apertarmos "Enter", a mensagem será subscrita novamente. Para que isso não ocorra, adicionamos mais um sinal de >
. Dessa forma:
echo "nova mensagem" >> mensagem.txt
Ao rodar, não aparece nada como saída padrão. Passamos cat mensagem.txt
. Feito isso, temos o retorno abaixo:
nova mensagem nova mensagem-2
Deu certo. Repare que ele manteve o primeiro arquivo e acrescentou a nova informação. Isso pode ser aplicado em qualquer situação que envolva a saída padrão.
Outra possível questão que pode surgir é a seguinte: e se escrevermos um script que adiciona uma nova mensagem ao arquivo automaticamente?. Imagine que seu script tenha a seguinte linha echo "log xpto"
seguido de > script.log
.
Estamos escrevendo coisas aleatórias para mostrar que não há uma conexão específica com o conteúdo do arquivo, já que o Linux ignora completamente o conteúdo e executa a ação que lhe foi instruída.
Como queremos manter o arquivo, adicionamos o segundo sinal de >
. Porém, o arquivo script.log
ainda não existe. Será que funcionará? Rodaremos o comando.
echo "log xpto" >> script.log
Não aparece nada, portando passamos o comando ls
. Assim, temos o retorno abaixo:
mensagem.txt script.log
Deu certo! Portanto, o conceito de criação do arquivo, mesmo que ele não exista, se aplica tanto ao uso de maior >
quanto à utilização de dois sinais de maior >>
. Isso é muito importante, pois se você escreveu o script, não há necessidade de se preocupar caso o arquivo não exista. Assim, na primeira execução, é realizado a gravação.
Esse foi um resumo sobre a saída padrão. Recomendamos que você teste e aplique os comandos para evoluir o seu aprendizado.
Te esperamos na aula seguinte!
O curso Certificação Linux LPI Essentials: Redirecting I/O Redirection possui 69 minutos de vídeos, em um total de 20 atividades. Gostou? Conheça nossos outros cursos de Linux em DevOps, ou leia nossos artigos de DevOps.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.