$ ls -lah
Lista tudo — inclusive arquivos ocultos — com tamanhos legíveis. O -h transforma bytes em K, M e G.
sysadmin — guia de sobrevivência para o terminal Linux
sysadmin [--cafe=FORTE] [--backup=SEMPRE] [--panico=OFF] <comando>
Os comandos que resolvem a maior parte do dia a dia de quem administra servidores Linux. Sem enrolação: o comando, o que ele faz e quando usar. Copie, cole e siga o baile.
$ ls -lah
Lista tudo — inclusive arquivos ocultos — com tamanhos legíveis. O -h transforma bytes em K, M e G.
$ cd -
Volta para o diretório anterior. O "desfazer" da navegação.
$ du -sh * | sort -h
Mostra o que está ocupando espaço no diretório atual, ordenado do menor para o maior.
$ df -h
Espaço livre em cada partição. Primeiro comando quando alguém grita "o disco encheu".
$ find /var/log -name "*.log" -mtime -1
Encontra arquivos .log modificados nas últimas 24 horas. Troque o caminho e o padrão à vontade.
$ tail -f /var/log/syslog
Acompanha um log em tempo real enquanto você testa. Ctrl+C para sair.
$ ps aux | grep nginx
Encontra um processo pelo nome e mostra PID, CPU e memória.
$ htop
Monitor interativo de processos, CPU e memória. Se não estiver instalado, o top já resolve.
$ kill -15 <PID>
Pede para o processo encerrar de forma limpa. Só recorra ao kill -9 se ele ignorar: é a força bruta, sem chance de limpeza.
$ systemctl status nginx
Estado do serviço, últimas linhas de log e se inicia no boot. Troque status por restart, stop ou enable.
$ journalctl -u nginx -f
Logs do serviço em tempo real via systemd. Com --since "10 min ago" você volta no tempo.
$ free -h
Uso de memória RAM e swap, em números que dá para ler.
$ ss -tulpn
Portas abertas e qual processo está ouvindo em cada uma. Com sudo, mostra tudo.
$ ip a
Interfaces de rede e seus IPs. O sucessor moderno do ifconfig.
$ ping -c 4 8.8.8.8
Testa conectividade. Se pinga o IP mas não pinga domínio, o problema é DNS.
$ dig +short seusite.com.br
Resolve o DNS de um domínio, sem enrolação: só a resposta.
$ curl -I https://seusite.com.br
Só os cabeçalhos HTTP: código de status, redirects e servidor — sem baixar a página inteira.
$ chmod 640 arquivo
6 = dono lê e escreve, 4 = grupo só lê, 0 = outros nada. A conta: leitura 4 + escrita 2 + execução 1.
$ chown -R www-data:www-data /var/www
Muda dono e grupo de uma pasta inteira, recursivamente.
$ sudo !!
Repete o último comando com sudo. Para quando você esqueceu. De novo.
$ id usuario
Mostra UID, GID e todos os grupos do usuário. Útil antes de caçar problema de permissão.
$ usermod -aG sudo usuario
Adiciona o usuário a um grupo. O -a é vital: sem ele, você remove o usuário de todos os outros grupos.
$ sudo apt update && sudo apt upgrade
Atualiza a lista de pacotes e depois os pacotes em si. Nessa ordem, sempre.
$ apt list --upgradable
Mostra o que vai ser atualizado — antes de atualizar. Sem surpresa em produção.
$ apt search termo
Procura um pacote pelo nome ou descrição.
$ apt show pacote
Detalhes do pacote: versão, dependências e tamanho instalado.
# Em RHEL, Fedora e derivados, troque apt por dnf — a lógica é a mesma.
Ctrl + R
Busca incremental no histórico do shell. Aquele comando gigante que você não lembra está lá.
$ tmux new -s deploy
Sessão persistente: se o SSH cair, nada morre. Reconecte com tmux attach -t deploy.
$ nginx -t && systemctl reload nginx
Valida a config antes de recarregar: um erro de sintaxe não derruba o site. O mesmo vale para sshd -t — e evita se trancar para fora do servidor.
$ cp app.conf app.conf.bak
Backup de dois segundos antes de editar qualquer config. O você do futuro agradece.
$ rm -rf "${DIR:?}/cache"
O :? aborta se a variável estiver vazia — sem ele, um $DIR vazio apontaria o rm -rf para a raiz. Confira o caminho duas vezes. Sempre.
$ man comando
O manual completo, offline, de qualquer comando. Este guia é só o começo — o man é o caminho.