Comandos Linux básicos: o guia para quem está começando no terminal
Saber alguns comandos Linux básicos vira obrigação, mais cedo ou mais tarde, para quem trabalha com tecnologia: para acessar um servidor, rodar um container, configurar um deploy ou simplesmente usar o WSL no Windows. O terminal assusta no começo, mas um conjunto pequeno de comandos resolve a maior parte do trabalho do dia a dia. Este guia reúne esses comandos, com exemplos e os cuidados que evitam estragos.
Antes de começar: onde praticar
- No Windows: instale o WSL (Subsistema do Windows para Linux) com
wsl --installem um PowerShell como administrador, e use o Ubuntu. - No macOS: o Terminal já usa comandos muito parecidos.
- Em um container:
docker run -it ubuntu bashabre um Linux descartável para testar. Veja Docker para iniciantes.
Praticar em um ambiente descartável é a melhor forma de perder o medo.
Navegação
| Comando | O que faz |
|---|---|
pwd | Mostra a pasta atual |
ls | Lista os arquivos da pasta |
ls -la | Lista com detalhes, incluindo arquivos ocultos |
cd pasta | Entra em uma pasta |
cd .. | Volta uma pasta |
cd ~ ou cd | Vai para a pasta pessoal |
cd - | Volta para a pasta anterior |
Dica que economiza tempo: pressione Tab para completar nomes de arquivos e pastas, e as setas para cima e para baixo para repetir comandos anteriores. Ctrl+R busca no histórico.
Arquivos e pastas
mkdir projetos # cria uma pasta
mkdir -p projetos/site/css # cria a estrutura inteira
touch notas.txt # cria um arquivo vazio
cp notas.txt copia.txt # copia
cp -r projetos backup # copia uma pasta inteira
mv copia.txt antigo.txt # renomeia ou move
rm antigo.txt # apaga um arquivo
rm -r backup # apaga uma pasta e o conteúdo
Atenção com o rm
No terminal não existe lixeira. O que o rm apaga, some. Cuidados:
- Confira a pasta atual com
pwdantes de apagar. - Use
rm -ipara confirmar cada arquivo. - Desconfie de qualquer comando com
rm -rfseguido de/ou de um asterisco, especialmente se foi copiado da internet. - Antes de apagar em massa, liste com
lsusando o mesmo padrão.
Lendo arquivos e logs
cat arquivo.txt # mostra o arquivo inteiro
less arquivo.log # navega em arquivos grandes (q para sair)
head -n 20 arquivo.log # primeiras 20 linhas
tail -n 50 arquivo.log # últimas 50 linhas
tail -f arquivo.log # acompanha o arquivo em tempo real
O tail -f é o melhor amigo de quem investiga erros em servidores: deixe rodando e reproduza o problema. Veja logs em produção.
Buscando
grep "ERROR" app.log # linhas que contêm ERROR
grep -i "timeout" app.log # ignorando maiúsculas e minúsculas
grep -rn "senha" src/ # busca recursiva com número da linha
find . -name "*.log" # encontra arquivos por nome
find . -size +100M # arquivos maiores que 100 MB
Combinando comandos com pipe
O | envia a saída de um comando para outro:
grep "ERROR" app.log | tail -n 20 # os 20 erros mais recentes
grep "ERROR" app.log | wc -l # quantos erros existem
history | grep docker # comandos docker que você já usou
Disco e memória
df -h # espaço livre em cada disco
du -sh * # tamanho de cada item da pasta atual
free -h # uso de memória
Disco cheio é uma das causas mais comuns de servidor que para de funcionar. Veja manutenção preventiva de servidores Linux.
Processos
top # processos em tempo real (q para sair)
htop # versão mais amigável, se instalada
ps aux | grep java # encontra processos java
kill 1234 # pede para o processo 1234 terminar
kill -9 1234 # força o término (use como último recurso)
Permissões
O ls -l mostra algo como -rwxr-x---: permissões de leitura (r), escrita (w) e execução (x) para o dono, o grupo e os outros.
chmod +x script.sh # torna o script executável
chmod 600 chave.pem # só o dono lê e escreve (exigido para chaves SSH)
chown usuario:grupo arq # muda o dono
sudo
O sudo executa um comando como administrador (root). Use apenas quando necessário e leia o comando antes de confirmar. Evite chmod 777, que libera tudo para todos e é uma falha de segurança comum em servidores.
Rede
ping google.com # testa a conectividade
curl -I https://prupru.org # mostra os cabeçalhos da resposta
curl http://localhost:8080/health # testa uma API local
ss -tulpn # portas abertas e quais programas as usam
ssh usuario@servidor # acessa um servidor remoto
O curl é ótimo para testar APIs; para entender as respostas, veja códigos de status HTTP.
Instalando programas (Ubuntu e Debian)
sudo apt update # atualiza a lista de pacotes
sudo apt upgrade # atualiza os programas instalados
sudo apt install htop # instala um programa
Variáveis e scripts
echo $HOME # mostra uma variável
export APP_ENV=dev # define uma variável para a sessão
Variáveis de ambiente são a forma correta de passar configurações e segredos para aplicações. Veja variáveis de ambiente e segredos.
Um script simples, backup.sh:
#!/bin/bash
data=$(date +%Y-%m-%d)
tar -czf "backup-$data.tar.gz" projetos/
echo "Backup criado: backup-$data.tar.gz"
Torne executável com chmod +x backup.sh e rode com ./backup.sh.
Um roteiro para praticar os comandos Linux básicos
- Crie uma pasta de projeto, entre nela e crie alguns arquivos.
- Inicialize um repositório Git e faça um commit. Veja Git e GitHub para iniciantes.
- Gere um arquivo de log de exemplo e procure linhas com
grep. - Verifique o espaço em disco e os processos em execução.
- Escreva um pequeno script de backup.
Com essa base, o terminal deixa de ser um obstáculo e passa a ser a ferramenta mais rápida do seu dia.
Sistemas sob medida
A PruPru desenvolve APIs, sistemas web e integrações com as mesmas práticas descritas neste guia. Se a sua empresa precisa de software bem construído, conheça os serviços.
Ver serviços →Perguntas frequentes
Preciso instalar Linux para aprender esses comandos?
Não. No Windows, o WSL permite usar Ubuntu dentro do sistema. No macOS, o terminal usa comandos muito parecidos. Também é possível praticar em um container Docker descartável.
Existe lixeira no terminal Linux?
Não. Arquivos apagados com rm não vão para uma lixeira. Confira a pasta atual, use rm -i para confirmar e tenha backups dos arquivos importantes.
Qual a diferença entre kill e kill -9?
O kill pede para o processo terminar, permitindo que ele finalize o trabalho e libere recursos. O kill -9 força o término imediato, sem essa chance, e deve ser usado apenas quando o processo não responde.
Por que não usar chmod 777?
Porque ele dá permissão de leitura, escrita e execução para qualquer usuário do sistema. Em servidores, isso facilita que um invasor altere arquivos ou execute código. Prefira permissões mínimas.