Desenvolvimento · Linux

Comandos Linux básicos: o guia para quem está começando no terminal

Edson Feitosa de Oliveira Junior
Edson Feitosa de Oliveira Junior Fundador e Engenheiro Líder · PruPru Digital Services

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

Praticar em um ambiente descartável é a melhor forma de perder o medo.

Navegação

ComandoO que faz
pwdMostra a pasta atual
lsLista os arquivos da pasta
ls -laLista com detalhes, incluindo arquivos ocultos
cd pastaEntra em uma pasta
cd ..Volta uma pasta
cd ~ ou cdVai 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:

  1. Confira a pasta atual com pwd antes de apagar.
  2. Use rm -i para confirmar cada arquivo.
  3. Desconfie de qualquer comando com rm -rf seguido de / ou de um asterisco, especialmente se foi copiado da internet.
  4. Antes de apagar em massa, liste com ls usando 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

  1. Crie uma pasta de projeto, entre nela e crie alguns arquivos.
  2. Inicialize um repositório Git e faça um commit. Veja Git e GitHub para iniciantes.
  3. Gere um arquivo de log de exemplo e procure linhas com grep.
  4. Verifique o espaço em disco e os processos em execução.
  5. 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.

Falar no WhatsApp agora