Bash: command not found — Cómo solucionar el comando no encontrado
Solución completa al error 'command not found' en Bash/Linux/macOS. Entender el PATH, exportar variables y qué hacer cuando un programa instalado no se encuentra.
¿Por qué ocurre?
Bash no puede encontrar el comando porque: - El programa no está instalado - El directorio donde está el binario no está en la variable `$PATH` - El programa se instaló con `--prefix` en una ruta no estándar - Hay un error tipográfico en el nombre del comando - El shebang del script es incorrecto (`#!/bin/bash` vs `#!/usr/bin/env bash`) - En macOS con Homebrew: falta la línea de eval en `.zshrc`/`.bashrc`
Solución paso a paso
1. Verificar si está instalado
# ¿Existe el binario en el sistema?
which node
which python3
which git# Si no devuelve nada, no está en el PATH (o no está instalado)
type -a node # muestra TODAS las ubicaciones
2. Ver y corregir el PATH
# Ver el PATH actual
echo $PATH# Añadir directorio al PATH (sesión actual)
export PATH="/usr/local/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
# Añadir de forma permanente (~/.bashrc o ~/.zshrc)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc # aplicar sin reiniciar
3. macOS con Homebrew
# Homebrew en Apple Silicon (M1/M2/M3) instala en /opt/homebrew
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"# Verificar
brew doctor
4. Node.js / npm global packages
# Ver dónde instala npm los paquetes globales
npm config get prefix# Añadir al PATH
export PATH="$(npm config get prefix)/bin:$PATH"
5. nvm (Node Version Manager)
# Si usas nvm, añadir al .bashrc/.zshrc
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"# Luego aplicar
source ~/.bashrc
6. Scripts: dar permisos de ejecución
# El script existe pero no es ejecutable
chmod +x mi-script.sh
./mi-script.sh# O ejecutarlo con bash directamente
bash mi-script.sh
7. Shebang correcto en scripts
#!/usr/bin/env bash # ✅ Portable, usa el bash del PATH
#!/bin/bash # ✅ Ruta fija (funciona en la mayoría de sistemas)
#!bash # ❌ Incorrecto
Cómo evitarlo en el futuro
- Añade las rutas necesarias al `.bashrc` o `.zshrc` permanentemente - Usa `which comando` para verificar si algo está instalado antes de reportar un error - En scripts, usa `#!/usr/bin/env bash` para portabilidad - Documenta en el README qué herramientas necesita el proyecto y cómo instalarlas
¿Quieres que una IA te ayude? Genera el prompt perfecto para tu error:
Generador de Prompts