Claude Media
Claude Codeのcommand not foundをPATH設定で直す — シェル別手順

Claude Codeのcommand not foundをPATH設定で直す — シェル別手順

インストール後にclaudeが見つからないのは、PATHに反映されていないのが原因です。OS・シェル別の直し方と、競合するインストールの見つけ方をまとめます。

command not foundはPATHが原因

インストールは成功しているのにclaudeを実行するとcommand not foundが出る。この症状は、インストール先のディレクトリがシェルの検索パス(PATH)に入っていないことが原因です。ネイティブインストーラーはclaude本体をmacOS/Linuxでは~/.local/bin/claude、Windowsでは%USERPROFILE%\.local\bin\claude.exeに配置しますが、新しいディレクトリをPATHに反映するにはシェル設定への追記か、ターミナルの再起動が必要です。

エラーの出方はプラットフォームごとに違います。

プラットフォームエラーメッセージ
macOSエラーメッセージzsh: command not found: claude
Linuxエラーメッセージbash: claude: command not found
Windows CMDエラーメッセージ'claude' is not recognized as an internal or external command
Windows PowerShellエラーメッセージclaude : The term 'claude' is not recognized as the name of a cmdlet

OS・シェル別にPATHへの反映を確認する

まず、インストール先のディレクトリがすでにPATHに入っているかを確認します。

echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"

パスが1行出力されればPATHに入っています。何も出力されない場合は、シェルの設定ファイルに追記します。macOSの既定シェルであるZshなら次の通りです。

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
claude --version

多くのLinuxディストリビューションで既定のBashでは、設定ファイルを~/.bashrcに読み替えます。fishやNushellのような他のシェルでは、それぞれの設定構文に合わせて~/.local/binを追記し、ターミナルを再起動します。

Windowsでは、シェルによってPATH確認のコマンドが異なります。PowerShellでは次を実行します。

$env:PATH -split ';' | Select-String '\.local\\bin'

出力がなければ、ユーザーPATHに%USERPROFILE%\.local\binを追加します。

$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')

コマンドプロンプト(CMD)の場合はecho %PATH% | findstr /i "local\bin"で確認し、出力がなければシステム設定の環境変数からUser PATHに%USERPROFILE%\.local\binを追加します。Windowsではいずれの方法でも、変更後にターミナルを再起動しないと反映されません。インストールした直後のセッションは古いPATHを保持したままです。

複数のインストールが競合していないか確認する

PATHを直しても解決しない場合、複数のインストールが競合している可能性があります。claudeはネイティブインストーラー・レガシーなローカルnpmインストール・グローバルnpmインストールの3箇所から入る可能性があり、古いものが優先されると新しく直したPATHの設定が反映されているように見えても、実行されるのは別バージョンです。

which -a claude

このコマンドはPATH上に見つかるclaudeバイナリをすべて列挙します。何も出力されない場合はまだPATHに何も無い状態なので、前のセクションの確認からやり直します。複数出力される場合は、3つの候補を個別に確認します。

ls -la ~/.local/bin/claude
ls -la ~/.claude/local/
npm -g ls @anthropic-ai/claude-code 2>/dev/null

~/.local/bin/claudeはネイティブインストーラーの配置先、~/.claude/local/は旧バージョンのClaude Codeが作るレガシーなローカルnpmインストール、npmのグローバル一覧は-g付きインストールを示します。lsNo such file or directoryを返すのはエラーではなく、その場所には何も入っていないという意味です。

~/.claude/local/は、ネイティブインストーラーが提供される前のバージョンで使われていた配置方法の名残です。過去に一度でもClaude Codeを導入したことがあるMacやLinux環境では、この場所に古いバイナリが残ったまま、現在は気づかずネイティブインストーラーで入れ直している、というケースが少なくありません。PATHの優先順位次第では、新しく入れたはずのバージョンではなくこちらが先に見つかり、command not foundではなく別の症状(古い機能しか使えない、バージョン番号が更新されない)として現れることもあります。

複数見つかった場合は1つに絞ります。macOS/Linuxで推奨されるのは~/.local/bin/claudeのネイティブインストールです。余分な経路は削除します。

npm uninstall -g @anthropic-ai/claude-code
rm -rf ~/.claude/local

Windowsでも同じ考え方で競合を確認できます。PowerShellで次を実行すると、PATH上に見つかるclaudeをすべて列挙します。

where.exe claude
Test-Path "$env:USERPROFILE\.local\bin\claude.exe"

複数のインストールが見つかった場合、npmグローバルインストールはnpm uninstall -g @anthropic-ai/claude-codeで、WinGetインストールはwinget uninstall Anthropic.ClaudeCodeで削除し、ネイティブインストーラーによる1つだけに絞ります。

Windowsでclaudeを実行するとClaude Desktopが開く

古いバージョンのClaude Desktopをインストールしていると、WindowsAppsディレクトリにClaude.exeが登録され、PATH上でClaude Code CLIより優先されることがあります。この場合、ターミナルでclaudeと打つとCLIではなくDesktopアプリが起動します。Claude Desktopを最新版に更新すると解消します。

VS Code拡張機能だけ入れている場合は空振りする

VS Code拡張機能は、拡張機能自身のチャットパネル用にCLIのプライベートコピーを内蔵しているだけで、~/.local/binには何も置きません。拡張機能だけを入れた状態では~/.local/bin/claude自体が存在しないため、PATHをいくら見直しても解決しません。ターミナルからclaudeコマンドを使いたい場合は、拡張機能とは別にスタンドアロンインストールが必要です。

修正後にバイナリが正しく動くか確認する

PATHを直したら、バージョンが表示されるかで確認します。

claude --version

バージョン番号(例: 2.1.211 (Claude Code))が表示されれば直っています。ここでまだcommand not foundと出る場合、コマンドを実行したターミナルウィンドウ自体を新しく開き直してください。インストール元のセッションは古いPATHを保持したままのことがあります。

一方、claude --versionは動くのにclaude本体がクラッシュしたり起動時に固まったりする場合は、原因はもうPATHではありません。バイナリの実体と実行権限を確認します。

ls -la "$(command -v claude)"

Linuxでは、共有ライブラリの不足も起動時のクラッシュの原因になります。

ldd "$(command -v claude)" | grep "not found"

不足しているライブラリが表示された場合、システムのパッケージマネージャーで該当パッケージを追加します。Alpine Linuxのようなmuslベースのディストリビューションでは、標準ではbashcurlすら入っておらず、libgcclibstdc++ripgrepを別途インストールする必要があります。

それでも直らないときの次の一手

ここまでの手順で直らない場合、原因はPATH以外にあります。ネットワーク・証明書・権限エラーなど、インストール時の他のエラーメッセージから原因を切り分けたい場合はClaude Codeインストールエラーの切り分けチェックリストを、そもそもの導入手順を最初から見直したい場合はClaude Code install完全ガイドを確認してください。Windows固有の詳しい導入手順はClaude Code Windowsインストールにまとめています。

よくある質問

PATHを直したのに新しいターミナルでも直りません

シェルの設定ファイルへの追記先を間違えている可能性があります。macOSでログインシェルとして使っているのがZshかBashかはecho $SHELLで確認できます。Zshなら~/.zshrc、Bashなら~/.bashrcまたは~/.bash_profileに追記されているか見直してください。macOSのTerminal.appはBashを既定でログインシェルとして起動するため、~/.bashrcではなく~/.bash_profileにPATHを書く必要がある場合があります。~/.bash_profileから~/.bashrcをsourceする設定にしていないと、片方だけに書いた内容が反映されません。

sudoを付けて実行すればPATHの問題を回避できますか

回避できません。sudoはコマンドの実行権限を変えるだけで、PATHの検索先には影響しません。むしろsudo npm install -gのようにインストール自体にsudoを使うと、ファイルの所有権が壊れて別の権限エラーを引き起こします。

WSL環境でもこの手順は同じですか

同じです。WSL上のClaude CodeはLinuxと同じ~/.local/bin/claudeに配置されるため、Bash/Zshの設定ファイルへの追記手順がそのまま使えます。ただしWSLはデフォルトでWindows側のPATHを取り込むため、Windows側に同名の古いバイナリや、Windows版Node.jsのnvmが先にPATHへ入っていると、意図した実行ファイルより優先されることがあります。WSL用の設定ファイル(~/.bashrcまたは~/.zshrc)にPATHを追記したのに反映されない場合は、echo $PATHの並び順を見て、Windows側のパスが~/.local/binより前に来ていないか確認してください。

まとめ

command not found: claudeはほぼ常にPATHの未反映が原因です。echo $PATHで確認し、シェル設定ファイルに~/.local/binを追記してターミナルを再起動します。それでも直らない場合はwhich -a claudeで複数インストールの競合を疑い、WindowsならClaude.exeによるコマンド横取りも確認します。

この記事を共有:XはてブLinkedIn