Melhores Práticas da CLI do Linux
Um resumo condensado das 25 práticas mais importantes da CLI do Linux para equipes de backend Node.js - conteúdo portátil compartilhado; automatize tarefas comuns de operações.
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 Node.js - conteúdo portátil compartilhado; automatize tarefas comuns de operações.
Prefira SIGTERM sobre SIGKILL: kill <PID> primeiro para que Fastify/Express close() drene pools HTTP e de banco de dados; kill -9 apenas após um timeout de graceful shutdown (Inspeção de Processos).
Execute APIs Node sob systemd ou Kubernetes: Não node & solto em sessões SSH - processos morrem quando a sessão cai.
Persista sessões de operações com tmux: Longas caudas de logs e túneis de port-forward sobrevivem a desconexões.
Permita SSH antes de habilitar ufw: ufw allow 22/tcp antes de ufw enable ou você se bloqueará.
Binds de não-root em portas altas: Execute Node em 3000+; coloque nginx/caddy na porta 443 na frente - nunca execute Node como root para a porta 80.
Diagnostique com journalctl e kubectl logs: systemctl status → journalctl -u <svc> em VMs; kubectl logs + describe em k8s.
Proteja arquivos de segredos: chmod 600 em arquivos .env e de credenciais em máquinas de desenvolvedor.
Prefira ripgrep sobre grep em repositórios: rg respeita .gitignore e pula node_modules/.
Escopo de find e grep: Nunca pesquise a partir de / sem filtro - passe o diretório do projeto e exclua node_modules.
Use jq em logs JSON: Pino JSON de uma linha - jq 'select(.level=="error")' supera grep Error (Noções Básicas da CLI para Node).
curl -sf para smoke tests de saúde: Falhe scripts em 5xx; adicione -w time_total para verificações pontuais de latência.
ss substitui netstat: ss -tlnp para portas em escuta e resumo de backlog.
lsof para EADDRINUSE: lsof -i :3000 antes de matar processos node aleatórios.
Inicie scripts com set -euo pipefail: Falha rápida; variáveis indefinidas causam erro; falhas de pipe se propagam.
Use $() em vez de backticks: Substituição de comando aninhada e citações mais claras.
Redirecione stderr: cmd > out.log 2>&1: Capture ambos os fluxos para pacotes de pós-mortem.
Use npm ci em scripts de CI: Instalações reproduzíveis a partir do lockfile - nunca npm install em pipelines de deploy.
Fixe Node em CI e Docker: 24.18.0 corresponde a .nvmrc e engines.
Propague x-request-id em smoke tests curl: Correlacione verificações manuais com logs centralizados.
Libere portas de desenvolvimento travadas com SIGTERM primeiro: lsof -ti :3000 | xargs kill antes de -9.
NODE_OPTIONS heap bump é temporário: --max-old-space-size para OOM de build; OOM recorrente precisa de triagem de vazamento.
kubectl port-forward para APIs privadas: Não exponha produção à internet pública para depuração.
Commit de bin/smoke.sh no repositório: Mesmas verificações localmente, em runbooks SSH e hooks pós-deploy.
Quirk do sed no macOS para scripts portáteis: sed -i '' no macOS vs sed -i no Linux - documente em CONTRIBUTING ou use gnu-sed.
Documente operações específicas da plataforma em runbooks: AWS ECS exec vs kubectl exec - link do README do serviço.
Prefira executar jq a partir do bastion contra logs encaminhados. Contêineres de depuração podem incluir jq; imagens de produção mínimas geralmente o omitem.
Instale em um sidecar de depuração ou use top -b -n 1 one-shot. Não inche a imagem de produção para ferramentas interativas, a menos que a SRE aprove.
Dia um: curl, jq, lsof. Semana um: kubectl logs, scripts de smoke. Systemd/nginx profundo é parceria com SRE (Noções Básicas de Onboarding).
Versões da Stack: Esta página foi escrita para Node.js 24.18.0 (LTS Ativo), npm 10+, TypeScript 5.6+, Express 5, Fastify 5, e NestJS 11.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026