Boas Práticas da CLI do Linux
Um resumo condensado das 25 práticas mais importantes da CLI do Linux para equipes de backend Python - fluxos de trabalho de terminal rápidos e seguros em servidores e laptops.
-
Prefira SIGTERM sobre SIGKILL: Permita que uvicorn/Gunicorn descarreguem conexões antes de
kill -9(Gerenciamento de Processos e Recursos). -
Execute APIs sob systemd ou Kubernetes: Não
nohuppuro em sessões SSH - sobrevive a desconexões e reinicializações. -
Persista operações com tmux: Migrações longas e rastreamentos de log sobrevivem ao modo de suspensão do laptop (SSH e Trabalho Remoto).
-
Permita SSH antes de habilitar o firewall: Abra a porta 22 (ou o caminho do bastion) antes de
ufw enable- evite o bloqueio. -
Usuário de serviço não root: Execute Python em portas altas atrás de nginx/caddy - nunca como root para a porta 80.
-
Diagnostique com journalctl:
systemctl statusseguido porjournalctl -u <unit> -n 200em VMs (Essenciais de Sysadmin). -
Proteja arquivos de segredo:
chmod 600em arquivos.enve de credenciais. -
Prefira ripgrep em repositórios:
rgrespeita.gitignoree ignora.venv/(Pesquisa e Regex). -
Escopo de find e grep: Nunca pesquise a partir de
/sem filtro - comece em/var/log/appou na raiz do projeto. -
Use jq em logs JSON: Filtre
level,request_id,duration_ms- nãogrep Errorem linhas estruturadas (Pipes e Processamento de Texto). -
curl -sf para verificação de integridade: Scripts falham em 5xx; adicione
-w time_totalpara verificações pontuais de latência. -
ss substitui netstat:
ss -tlnppara portas em escuta e backlog. -
lsof para conflitos de porta:
lsof -i :8000antes de matar PIDs aleatórios do python. -
Inicie scripts bash com
set -euo pipefail: Falhe rapidamente; capture erros de pipeline. -
Use
$()em vez de backticks: Substituição de comando aninhada e citações mais claras. -
Redirecione stderr em logs:
cmd > out.log 2>&1para pacotes de pós-mortem. -
Use
uv sync --frozenno deploy: Ambiente reproduzível a partir do lockfile - nãopip install -rsem hash. -
pipx para CLIs globais: ruff, httpie, copier isolados do venv do projeto (Python no Shell).
-
Nunca use sudo pip: Quebra o Python da distribuição - apenas venv/uv.
-
ProxyJump na configuração SSH: Documente o caminho do bastion para staging/prod - sem digitação manual de IP.
-
LocalForward bind 127.0.0.1: Túneis de banco de dados não expostos em todas as interfaces.
-
df e du antes do deploy: Disco cheio quebra a escrita de logs e uploads.
-
Commite scripts de verificação para
bin/: Mesmas verificações de integridade do curl localmente, em CI e via SSH pós-deploy. -
Promova aliases repetidos para scripts:
bin/versionado com revisão é melhor que apenas o shell pessoal. -
LC_ALL=C para logs ASCII: Ordenação/awk previsível ao fazer grep em logs de acesso.
FAQs
htop ou top?
htop como padrão interativo; top quando a imagem mínima não possui o pacote htop.
Scripts bash vs. operações em Python?
Shell para "cola" no servidor; Python quando a lógica excede ~20 linhas ou precisa de testes no repositório.
Desenvolvedores Windows?
WSL2 para o mesmo documento da CLI; a triagem de produção ainda é via SSH Linux.
Rastreamento de logs em K8s?
kubectl logs -f deploy/billing-api - mesmos filtros jq na saída padrão do contêiner.
Relacionados
- Scripts Robustos - padrões bash
- Deploy de FastAPI - comandos de produção
- Pipelines de CI/CD - paridade com o local
- Depuração de Produção - ferramentas de incidentes
Versões de Stack: Esta página foi escrita para Python 3.14.0 (estável 3.14, manutenção 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+ e uv 0.6+.