| name | env-debug |
| description | Debug environment issues with PATH, permissions, environment variables, and configuration problems. Use when user asks to "fix PATH", "command not found", "permission denied", "debug environment", "env vars not working", "fix shell config", "debug node/python not found", or any environment troubleshooting tasks. |
Environment Debugging
Troubleshoot PATH, permissions, env vars, and configuration issues.
"Command Not Found"
which node
which python
command -v node
type node
echo $PATH
echo $PATH | tr ':' '\n'
which -a python
whereis python
export PATH="/usr/local/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
export PATH="$HOME/.cargo/bin:$PATH"
export PATH="$HOME/go/bin:$PATH"
export PATH="$HOME/.nvm/versions/node/v20.0.0/bin:$PATH"
Shell Configuration
echo $SHELL
echo $0
source ~/.zshrc
source ~/.bashrc
[[ $- == *i* ]] && echo "Interactive" || echo "Non-interactive"
shopt -q login_shell && echo "Login" || echo "Non-login"
[[ -o login ]] && echo "Login" || echo "Non-login"
Environment Variables
env
printenv
echo $NODE_ENV
printenv NODE_ENV
export API_KEY="abc123"
export NODE_ENV=production
NODE_ENV=test npm test
DATABASE_URL=postgres://localhost/test python manage.py migrate
unset API_KEY
[ -z "$API_KEY" ] && echo "NOT SET" || echo "SET: $API_KEY"
Permission Issues
ls -la /path/to/file
chmod +x script.sh
chmod 755 script.sh
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH="$HOME/.npm-global/bin:$PATH"
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 644 ~/.ssh/config
ls -la /usr/local/bin/node
sudo chown -R $(whoami) /usr/local/lib/node_modules
Port Issues
lsof -i :3000
ss -tlnp | grep 3000
netstat -tlnp | grep 3000
lsof -ti :3000 | xargs kill -9
fuser -k 3000/tcp
nc -z localhost 3000 && echo "IN USE" || echo "FREE"
Node.js Issues
which -a node
node --version
nvm ls
nvm use 20
nvm alias default 20
nvm current
npm cache clean --force
rm -rf node_modules package-lock.json && npm install
npm root -g
npm list -g --depth=0
npx --yes package-name
npm exec -- package-name
Python Issues
which -a python
which -a python3
python --version
python3 --version
echo $VIRTUAL_ENV
which pip
pip --version
python -m pip --version
python -c "import sys; print('\n'.join(sys.path))"
python -c "import package; print(package.__file__)"
pyenv versions
pyenv which python
pyenv shell 3.12.1
DNS / Network Issues
nslookup example.com
dig example.com
host example.com
ping -c 3 example.com
curl -v https://example.com
echo $HTTP_PROXY
echo $HTTPS_PROXY
echo $NO_PROXY
openssl s_client -connect example.com:443
nc -zv example.com 443
curl -v telnet://example.com:443
Docker Issues
docker info
sudo usermod -aG docker $USER
docker run --dns 8.8.8.8 myimage
docker inspect <container> | grep IPAddress
docker port <container>
Disk Space
df -h
du -sh *
du -sh * | sort -rh | head -20
du -sh node_modules/
npx npkill
docker system df
docker system prune -a --volumes
Quick Diagnostic Script
#!/bin/bash
echo "=== System ==="
uname -a
echo ""
echo "=== Shell ==="
echo "$SHELL ($0)"
echo ""
echo "=== PATH ==="
echo $PATH | tr ':' '\n'
echo ""
echo "=== Key Tools ==="
for cmd in node npm python python3 pip git docker; do
printf "%-10s" "$cmd:"
command -v $cmd 2>/dev/null && $cmd --version 2>/dev/null | head -1 || echo "NOT FOUND"
done
echo ""
echo "=== Env Vars ==="
for var in NODE_ENV VIRTUAL_ENV HOME USER SHELL TERM; do
printf "%-15s %s\n" "$var:" "${!var:-NOT SET}"
done
Reference
For tool-specific troubleshooting: references/troubleshooting.md