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.
Busque em todas as páginas da documentação
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 nohup puro 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 status seguido por journalctl -u <unit> -n 200 em VMs (Essenciais de Sysadmin).
Proteja arquivos de segredo: chmod 600 em arquivos .env e de credenciais.
Prefira ripgrep em repositórios: rg respeita .gitignore e ignora .venv/ (Pesquisa e Regex).
Escopo de find e grep: Nunca pesquise a partir de / sem filtro - comece em /var/log/app ou na raiz do projeto.
Use jq em logs JSON: Filtre level, request_id, duration_ms - não grep Error em linhas estruturadas (Pipes e Processamento de Texto).
curl -sf para verificação de integridade: Scripts falham em 5xx; adicione -w time_total para verificações pontuais de latência.
ss substitui netstat: ss -tlnp para portas em escuta e backlog.
lsof para conflitos de porta: lsof -i :8000 antes 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>&1 para pacotes de pós-mortem.
Use uv sync --frozen no deploy: Ambiente reproduzível a partir do lockfile - não pip install -r sem 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.
htop como padrão interativo; top quando a imagem mínima não possui o pacote htop.
Shell para "cola" no servidor; Python quando a lógica excede ~20 linhas ou precisa de testes no repositório.
WSL2 para o mesmo documento da CLI; a triagem de produção ainda é via SSH Linux.
kubectl logs -f deploy/billing-api - mesmos filtros jq na saída padrão do contêiner.
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+.
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026