Mejores Prácticas de CLI de Linux
Un resumen condensado de las 25 prácticas de CLI de Linux más importantes para equipos de backend de Node.js: contenido portátil compartido; automatiza tareas operativas comunes.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 prácticas de CLI de Linux más importantes para equipos de backend de Node.js: contenido portátil compartido; automatiza tareas operativas comunes.
Prefiere SIGTERM sobre SIGKILL: kill <PID> primero para que Fastify/Express close() drene los pools HTTP y DB; kill -9 solo después de un tiempo de espera elegante (Inspección de Procesos).
Ejecuta APIs de Node bajo systemd o Kubernetes: No node & desnudo en sesiones SSH; los procesos mueren cuando la sesión se cierra.
Persiste sesiones de operaciones con tmux: Los logs largos y los túneles de reenvío de puertos sobreviven a las desconexiones.
Permite SSH antes de habilitar ufw: ufw allow 22/tcp antes de ufw enable o te bloquearás.
Los usuarios no root enlazan puertos altos: Ejecuta Node en 3000+; pon nginx/caddy en 443 al frente; nunca ejecutes Node como root para el puerto 80.
Diagnostica con journalctl y kubectl logs: systemctl status → journalctl -u <svc> en VMs; kubectl logs + describe en k8s.
Bloquea archivos secretos: chmod 600 en .env y archivos de credenciales en máquinas de desarrolladores.
Prefiere ripgrep sobre grep en repositorios: rg respeta .gitignore y omite node_modules/.
Delimita find y grep: Nunca busques desde / sin filtrar; pasa el directorio del proyecto y excluye node_modules.
Usa jq en logs JSON: JSON de una línea de Pino: jq 'select(.level=="error")' es mejor que grep Error (Conceptos Básicos de CLI para Node).
curl -sf para comprobaciones de salud: Falla scripts en 5xx; añade -w time_total para comprobaciones rápidas de latencia.
ss reemplaza netstat: ss -tlnp para puertos de escucha y resumen de backlog.
lsof para EADDRINUSE: lsof -i :3000 antes de matar procesos de Node aleatorios.
Inicia scripts con set -euo pipefail: Falla rápido; los errores de variables indefinidas; las fallas de pipe se propagan.
Usa $() no comillas inversas: Sustitución de comandos anidada y comillas más claras.
Redirige stderr: cmd > out.log 2>&1: Captura ambos streams para paquetes post-mortem.
Usa npm ci en scripts de CI: Instalaciones reproducibles desde el lockfile; nunca npm install en pipelines de despliegue.
Fija Node en CI y Docker: 24.18.0 coincide con .nvmrc y engines.
Propaga x-request-id en pruebas smoke de curl: Correlaciona las comprobaciones manuales con los logs centralizados.
Libera puertos de desarrollo atascados con SIGTERM primero: lsof -ti :3000 | xargs kill antes de -9.
El aumento de heap de NODE_OPTIONS es temporal: --max-old-space-size para OOM de compilación; OOM recurrentes necesitan un triaje de fugas.
kubectl port-forward para APIs privadas: No expongas producción a internet público para depuración.
Confirma bin/smoke.sh en el repositorio: Las mismas comprobaciones localmente, en runbooks SSH y en hooks post-despliegue.
Particularidad de sed en macOS para scripts portátiles: sed -i '' en macOS vs sed -i en Linux; documenta en CONTRIBUTING o usa gnu-sed.
Documenta operaciones específicas de la plataforma en runbooks: AWS ECS exec vs kubectl exec; enlaza desde el README del servicio.
Prefiere ejecutar jq desde el bastión contra logs reenviados. Los contenedores de depuración pueden incluir jq; las imágenes de producción mínimas a menudo lo omiten.
Instala en un sidecar de depuración o usa top -b -n 1 de una sola vez. No infles la imagen de producción para herramientas interactivas a menos que SRE lo apruebe.
Primer día: curl, jq, lsof. Primera semana: kubectl logs, scripts smoke. systemd/nginx profundo se asocia con SRE (Conceptos Básicos de Onboarding).
Versiones de la pila: Esta página fue escrita para Node.js 24.18.0 (LTS Activo), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 y NestJS 11.
Revisado por Chris St. John·Última actualización: 16 jul 2026