0 XP

DEVOPSQUEST

Minha Trilha
Módulo 0 · Boas-vindas e Ambiente

Terminal e shell do zero: conversando com o computador

Iniciante 35 min+25 XPBashTerminal

Objetivos desta aula

  • Entender a diferença entre terminal, shell e comando
  • Ler a estrutura de um comando: programa, opções e argumentos
  • Navegar, criar e apagar arquivos com segurança
  • Usar histórico, autocompletar e o manual (man/--help)
  • Encadear comandos com pipe e redirecionamento

Antes de qualquer ferramenta DevOps, existe uma habilidade base: conversar com o computador por texto. O terminal é a janela onde você digita; o shell (normalmente bash ou zsh) é o programa que entende o que você escreveu e executa. Quase todo servidor de produção não tem interface gráfica — só terminal.

Todo comando segue um padrão: programa + opções + argumentos. Em ls -l /etc, ls é o programa (listar), -l é uma opção (formato longo) e /etc é o argumento (qual pasta). Quando você entende esse padrão, qualquer comando novo fica mais fácil de ler.

Para se localizar use pwd (onde estou?), ls (o que tem aqui?) e cd (ir para outro lugar). cd .. sobe uma pasta, cd ~ volta para sua casa (home) e cd - volta para onde você estava antes. Pense como andar por pastas num explorador de arquivos, mas digitando.

Criar e mexer em arquivos: mkdir projeto cria pasta, touch notas.txt cria arquivo vazio, cp copia, mv move ou renomeia e rm apaga. Atenção: no terminal não existe lixeira. rm -rf apaga tudo sem perguntar — por isso, sempre confira com ls antes de apagar.

Você não precisa decorar nada. Use Tab para autocompletar nomes, seta para cima para repetir comandos anteriores e Ctrl+R para buscar no histórico. Para aprender um comando, comando --help mostra um resumo e man comando abre o manual completo (saia com q).

O superpoder do shell é combinar comandos pequenos. O pipe | envia a saída de um comando para outro: ls /etc | grep ssh lista a pasta e filtra só o que contém “ssh”. É assim que profissionais resolvem problemas grandes com peças simples.

Redirecionamento guarda resultados em arquivos: > sobrescreve, >> adiciona ao final e 2> captura erros. Exemplo: comando > saida.log 2>&1 grava saída normal e erros juntos — muito usado em scripts e automações.

Por fim, entenda o código de saída: todo comando termina com um número. 0 significa sucesso; qualquer outro valor indica erro. Veja com echo $?. Pipelines de CI/CD usam exatamente isso para decidir se um passo passou ou falhou.

Na prática

Primeiros passos no terminal

bash

pwd                 # mostra a pasta atual
ls -la              # lista tudo, inclusive arquivos ocultos
mkdir -p ~/lab/dia1 # cria a pasta (e as intermediárias)
cd ~/lab/dia1
echo "olá DevOps" > notas.txt   # cria arquivo com conteúdo
cat notas.txt                   # mostra o conteúdo
echo "linha 2" >> notas.txt     # adiciona no final
wc -l notas.txt                 # conta linhas

Pipe, filtros e código de saída

bash

history | grep docker     # quais comandos docker usei?
ps aux | grep nginx | head -5
ls arquivo-inexistente; echo "saída: $?"   # imprime valor diferente de 0
ls /tmp; echo "saída: $?"                 # imprime 0

Por que isso importa

Servidores, contêineres e pipelines são operados por linha de comando. Quem domina o terminal investiga incidentes em minutos em vez de horas.

Erro comum

Copiar e colar comandos da internet sem entender o que fazem — principalmente com sudo ou rm -rf. Leia cada parte antes de apertar Enter.

Dica de produção

Antes de um comando destrutivo, rode a versão que só lista (ex.: ls com o mesmo caminho) para conferir o alvo.

Alerta de segurança

Nunca cole senhas ou tokens direto na linha de comando: eles ficam salvos no histórico (~/.bash_history).

Pergunta de entrevista

O que acontece quando você digita cat app.log | grep ERROR | wc -l? Explique cada etapa.

Glossário

Terminal
Janela onde você digita comandos de texto.
Shell
Programa (bash, zsh) que interpreta e executa os comandos.
Pipe (|)
Envia a saída de um comando como entrada do próximo.
Exit code
Número que indica se o comando deu certo (0) ou falhou.
Home (~)
Pasta pessoal do usuário logado.

Conexão com o CloudShop

No CloudShop, toda investigação começa no terminal: ler logs, ver processos e testar a API com curl.

Quiz da aula

  1. 1. Em `ls -l /var/log`, o que é `-l`?

  2. 2. Qual código de saída indica sucesso?

  3. 3. Qual a diferença entre `>` e `>>`?

Minhas anotações

Salvo automaticamente neste navegador.

AnteriorPróxima