env-debug
PATHや権限、環境変数、設定ファイルなど、開発環境で発生する様々な技術的な問題を特定し、解決策を提案するSkill。
📜 元の英語説明(参考)
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.
🇯🇵 日本人クリエイター向け解説
PATHや権限、環境変数、設定ファイルなど、開発環境で発生する様々な技術的な問題を特定し、解決策を提案するSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
環境のデバッグ
PATH、パーミッション、環境変数、および設定の問題をトラブルシューティングします。
「コマンドが見つかりません」
# コマンドが存在するか確認する
which node
which python
command -v node
type node
# PATH を確認する
echo $PATH
echo $PATH | tr ':' '\n' # 1行に1つずつ表示する
# バイナリの場所を見つける
which -a python # PATH 内のすべてのマッチ
whereis python # バイナリ、ソース、および man ページ
# よくある修正
export PATH="/usr/local/bin:$PATH" # 先頭に追加する
export PATH="$HOME/.local/bin:$PATH" # ユーザーバイナリ
export PATH="$HOME/.cargo/bin:$PATH" # Rust
export PATH="$HOME/go/bin:$PATH" # Go
export PATH="$HOME/.nvm/versions/node/v20.0.0/bin:$PATH" # nvm
# 永続化する - シェル設定ファイルに追加する:
# ~/.bashrc (bash), ~/.zshrc (zsh), ~/.profile (ログインシェル)
シェルの設定
# どのシェルを使用しているか?
echo $SHELL
echo $0
# 設定ファイルの読み込み順序:
# bash ログイン: /etc/profile → ~/.bash_profile → ~/.bashrc
# bash 非ログイン: ~/.bashrc
# zsh ログイン: ~/.zprofile → ~/.zshrc
# zsh 非ログイン: ~/.zshrc
# 設定を再読み込みする
source ~/.zshrc
source ~/.bashrc
# インタラクティブ/ログインシェルか確認する
[[ $- == *i* ]] && echo "Interactive" || echo "Non-interactive"
shopt -q login_shell && echo "Login" || echo "Non-login" # bash
[[ -o login ]] && echo "Login" || echo "Non-login" # zsh
環境変数
# すべて表示する
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"
# .env ファイルの読み込み
# Node.js: dotenv、または node --env-file=.env app.js (Node 20.6+)
# Python: python-dotenv
# Shell: source .env または export $(cat .env | xargs)
パーミッションの問題
# ファイルのパーミッションを確認する
ls -la /path/to/file
# パーミッション形式: drwxrwxrwx
# d = ディレクトリ, r = 読み取り, w = 書き込み, x = 実行
# [所有者][グループ][その他]
# 実行可能にする
chmod +x script.sh
chmod 755 script.sh # rwxr-xr-x
# npm グローバルパーミッションを修正する
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH="$HOME/.npm-global/bin:$PATH"
# SSH キーのパーミッションを修正する
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
ポートの問題
# どのプロセスがポートを使用しているか?
lsof -i :3000 # macOS/Linux
ss -tlnp | grep 3000 # Linux
netstat -tlnp | grep 3000 # Linux
# ポート上のプロセスを強制終了する
lsof -ti :3000 | xargs kill -9 # macOS/Linux
fuser -k 3000/tcp # Linux
# ポートが利用可能か確認する
nc -z localhost 3000 && echo "IN USE" || echo "FREE"
Node.js の問題
# 複数の Node バージョンがあるか?
which -a node
node --version
# nvm の問題
nvm ls # インストールされているバージョンを一覧表示する
nvm use 20 # バージョンを切り替える
nvm alias default 20 # デフォルトを設定する
nvm current # 現在のバージョン
# npm キャッシュの問題
npm cache clean --force
rm -rf node_modules package-lock.json && npm install
# グローバルパッケージの場所
npm root -g
npm list -g --depth=0
# npx がパッケージを見つけられない
npx --yes package-name # 強制インストール
npm exec -- package-name # 代替手段
Python の問題
# 複数の Python バージョンがあるか?
which -a python
which -a python3
python --version
python3 --version
# 仮想環境がアクティブか?
echo $VIRTUAL_ENV
# 間違った pip か?
which pip
pip --version # リンクされている Python を表示する
python -m pip --version # 特定の Python の pip を使用する
# モジュールが見つからないか?
python -c "import sys; print('\n'.join(sys.path))"
python -c "import package; print(package.__file__)"
# pyenv の問題
pyenv versions
pyenv which python
pyenv shell 3.12.1
DNS / ネットワークの問題
# DNS 解決
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
# SSL 証明書の問題
openssl s_client -connect example.com:443
# 特定のポートをテストする
nc -zv example.com 443
curl -v telnet://example.com:443
Docker の問題
# Docker デーモンは実行中か?
docker info
# パーミッション拒否か?
sudo usermod -aG docker $USER
# その後、ログアウトして再度ログインする
# コンテナ内の DNS の問題
docker run --dns 8.8.8.8 myimage
# コンテナに接続できないか?
docker inspect <container> | grep IPAddress
docker port <container>
ディスク容量
# ディスク使用量を確認する
df -h
# 大きなファイル/ディレクトリを見つける
du -sh *
du -sh * | sort -rh | head -20
# Node.js 固有
du -sh node_modules/
npx npkill # 対話型 node_modules クリーナー
# Docker 固有
docker system df
docker system prune -a --volumes
クイック診断スクリプト
#!/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
参考資料
ツール固有のトラブルシューティングについては、references/troubleshooting.md を参照してください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Environment Debugging
Troubleshoot PATH, permissions, env vars, and configuration issues.
"Command Not Found"
# Check if command exists
which node
which python
command -v node
type node
# Check PATH
echo $PATH
echo $PATH | tr ':' '\n' # One per line
# Find where a binary lives
which -a python # All matches in PATH
whereis python # Binary, source, and man pages
# Common fixes
export PATH="/usr/local/bin:$PATH" # Prepend
export PATH="$HOME/.local/bin:$PATH" # User binaries
export PATH="$HOME/.cargo/bin:$PATH" # Rust
export PATH="$HOME/go/bin:$PATH" # Go
export PATH="$HOME/.nvm/versions/node/v20.0.0/bin:$PATH" # nvm
# Make permanent - add to shell config:
# ~/.bashrc (bash), ~/.zshrc (zsh), ~/.profile (login shell)
Shell Configuration
# Which shell am I using?
echo $SHELL
echo $0
# Config file load order:
# bash login: /etc/profile → ~/.bash_profile → ~/.bashrc
# bash non-login: ~/.bashrc
# zsh login: ~/.zprofile → ~/.zshrc
# zsh non-login: ~/.zshrc
# Reload config
source ~/.zshrc
source ~/.bashrc
# Check if interactive/login
[[ $- == *i* ]] && echo "Interactive" || echo "Non-interactive"
shopt -q login_shell && echo "Login" || echo "Non-login" # bash
[[ -o login ]] && echo "Login" || echo "Non-login" # zsh
Environment Variables
# View all
env
printenv
# View specific
echo $NODE_ENV
printenv NODE_ENV
# Set for current session
export API_KEY="abc123"
export NODE_ENV=production
# Set for single command
NODE_ENV=test npm test
DATABASE_URL=postgres://localhost/test python manage.py migrate
# Unset
unset API_KEY
# Check if set
[ -z "$API_KEY" ] && echo "NOT SET" || echo "SET: $API_KEY"
# .env file loading
# Node.js: dotenv, or node --env-file=.env app.js (Node 20.6+)
# Python: python-dotenv
# Shell: source .env or export $(cat .env | xargs)
Permission Issues
# Check file permissions
ls -la /path/to/file
# Permission format: drwxrwxrwx
# d = directory, r = read, w = write, x = execute
# [owner][group][others]
# Make executable
chmod +x script.sh
chmod 755 script.sh # rwxr-xr-x
# Fix npm global permissions
mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH="$HOME/.npm-global/bin:$PATH"
# Fix SSH key permissions
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub
chmod 644 ~/.ssh/config
# Check who owns a file
ls -la /usr/local/bin/node
# Fix ownership
sudo chown -R $(whoami) /usr/local/lib/node_modules
Port Issues
# What's using a port?
lsof -i :3000 # macOS/Linux
ss -tlnp | grep 3000 # Linux
netstat -tlnp | grep 3000 # Linux
# Kill process on port
lsof -ti :3000 | xargs kill -9 # macOS/Linux
fuser -k 3000/tcp # Linux
# Check if port is available
nc -z localhost 3000 && echo "IN USE" || echo "FREE"
Node.js Issues
# Multiple Node versions?
which -a node
node --version
# nvm issues
nvm ls # List installed versions
nvm use 20 # Switch version
nvm alias default 20 # Set default
nvm current # Current version
# npm cache issues
npm cache clean --force
rm -rf node_modules package-lock.json && npm install
# Global packages location
npm root -g
npm list -g --depth=0
# npx not finding package
npx --yes package-name # Force install
npm exec -- package-name # Alternative
Python Issues
# Multiple Python versions?
which -a python
which -a python3
python --version
python3 --version
# Virtual environment active?
echo $VIRTUAL_ENV
# Wrong pip?
which pip
pip --version # Shows which Python it's linked to
python -m pip --version # Use specific Python's pip
# Module not found?
python -c "import sys; print('\n'.join(sys.path))"
python -c "import package; print(package.__file__)"
# pyenv issues
pyenv versions
pyenv which python
pyenv shell 3.12.1
DNS / Network Issues
# DNS resolution
nslookup example.com
dig example.com
host example.com
# Test connectivity
ping -c 3 example.com
curl -v https://example.com
# Check proxy settings
echo $HTTP_PROXY
echo $HTTPS_PROXY
echo $NO_PROXY
# SSL certificate issues
openssl s_client -connect example.com:443
# Test specific port
nc -zv example.com 443
curl -v telnet://example.com:443
Docker Issues
# Docker daemon running?
docker info
# Permission denied?
sudo usermod -aG docker $USER
# Then log out and back in
# DNS issues in container
docker run --dns 8.8.8.8 myimage
# Can't connect to container?
docker inspect <container> | grep IPAddress
docker port <container>
Disk Space
# Check disk usage
df -h
# Find large files/dirs
du -sh *
du -sh * | sort -rh | head -20
# Node.js specific
du -sh node_modules/
npx npkill # Interactive node_modules cleaner
# Docker specific
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