Aula 2.1 — Automatização de tarefas no Linux: shebang, echo, comentários, Vim e o fluxo criar–permitir–executar
Shell Script é um arquivo de texto com comandos Linux que o sistema executa em sequência, como uma receita automática. Em vez de digitar os mesmos 10 comandos toda manhã para fazer backup, você escreve o script uma vez — e ele faz tudo sozinho, para sempre.
ls, cp, mkdir…).sh)⏱ 10 minutos por dia × 365 dias = 60 horas por ano economizadas! Um sysadmin que sabe Shell Script faz em segundos o que um iniciante faz em horas.
Um script Shell é um arquivo de texto simples (com extensão .sh) que contém comandos Linux, um por linha. Três elementos formam a base de qualquer script.
#!/bin/bashA primeira linha do script declara qual interpretador deve executar o arquivo. #! é o prefixo obrigatório; /bin/bash é o caminho do Bash.
⚠️ Regras do Shebang: deve estar exatamente na primeira linha, sem nenhum espaço antes do # e sem espaço entre # e !. ❌ #!/bin/bash (espaço antes) invalida o shebang.
#Linhas que começam com # (após o shebang) são ignoradas pelo Shell. Use para documentar o que cada parte faz, quem escreveu e quando.
Os mesmos comandos que você digita no terminal funcionam nos scripts. O Shell executa-os linha por linha, de cima para baixo.
O fluxo de trabalho é sempre o mesmo: criar → dar permissão → executar. Veja passo a passo:
❓ Por que ./ antes do nome? Significa “procure o arquivo aqui, nesta pasta”. Sem ele, o Shell procuraria apenas nas pastas do sistema ($PATH) e não encontraria seu script.
Memorize o fluxo de três etapas que se repete em todos os scripts que você criar:
vim script.sh
chmod +x script.sh
./script.sh
NAVEGAÇÃO E EDIÇÃO
| Tecla | Ação |
|---|---|
i | Modo INSERT (digitar) |
a | INSERT após cursor |
o | Nova linha abaixo |
Esc | Sair do INSERT |
dd | Deletar linha |
yy | Copiar linha |
p | Colar |
u | Desfazer (undo) |
SALVAR E SAIR
| Comando | Ação |
|---|---|
:w | Salvar (write) |
:q | Sair (quit) |
:wq | Salvar e sair |
:q! | Sair SEM salvar |
:wq! | Forçar salvar e sair |
🆘 Travou no Vim? Pressione Esc várias vezes → digite :q! → Enter.
echo e Substituição de ComandosO comando echo exibe texto na tela. É o principal meio de comunicar o script com o usuário. Dentro das aspas, você pode usar substituição de comandos com $(comando) para inserir a saída de outro comando dinamicamente.
💡 Aspas simples vs duplas: aspas duplas (") interpretam variáveis e substituições. Aspas simples (') tratam tudo como literal. echo "$USER" → usuario. echo '$USER' → $USER.
Variáveis armazenam valores para reutilizar ao longo do script. No Bash, não há espaço entre o nome, o = e o valor. Para usar o valor, prefixe com $.
⚠️ Erro comum: NOME = "Alice" (com espaços) causa erro. O Bash interpreta NOME como um comando. Sempre use NOME="Alice" sem espaços.
#!/bin/bash em todos os scripts, sem exceções.
# incrementa x é óbvio; # necessário para evitar race condition é útil.
NOME_ARQUIVO em maiúsculo para variáveis globais. Facilita distinguir de comandos.
chmod 750 (ou 700) em vez de 777. Dê execução apenas a quem realmente precisa.
Arraste cada descrição para o comando ou conceito correto do Shell Script.
./ indica ao Shell que deve procurar o script no diretório atual, e não no PATH do sistema# que é ignorada pelo interpretador e serve para documentar o código#!/bin/bash)
echo
chmod +x
./
#)
Esc → :wq
mkdir -p ~/scripts && vim ~/scripts/relatorio.sh. Dentro do Vim, pressione i para entrar em modo INSERT.#!/bin/bash
# Relatório do Sistema — Autor: Seu Nome
echo "==============================="
echo " RELATÓRIO DO SISTEMA"
echo "==============================="
echo "Usuário: $(whoami)"
echo "Hostname: $(hostname)"
echo "Data/Hora: $(date)"
echo "Uptime: $(uptime -p)"
echo "Memória: $(free -h | grep Mem)"
echo "==============================="chmod +x ~/scripts/relatorio.sh && ~/scripts/relatorio.sh. O relatório deve aparecer formatado na tela.vim ~/scripts/relatorio.sh). Adicione no início (logo após o shebang): ARQUIVO_LOG="$HOME/relatorio_$(date +%Y%m%d).txt". No final do script, adicione: echo "Log salvo em: $ARQUIVO_LOG". Execute redirecionando a saída: ./relatorio.sh > $HOME/relatorio_$(date +%Y%m%d).txt. Verifique o arquivo criado com cat.ls -la ~/scripts/ para ver as permissões do script (deve mostrar -rwxr-xr-x ou similar com o x ativo). Tire um screenshot mostrando: a listagem de permissões, a saída do script e o arquivo de log criado.O que é o shebang (#!) em um script Bash?
#!/bin/bash na primeira linha indica ao kernel qual programa deve interpretar o script.Qual permissão é necessária para executar um script com ./script.sh?
chmod +x script.sh para adicionar permissão de execução antes de rodar com ./script.sh.Qual comando exibe texto na saída padrão em um script Bash?
echo é o comando básico para imprimir texto. Use echo -e para interpretar sequências como \n.O que o comando chmod 755 script.sh define?