Claude Codeをインストールして、ワクワクしながらclaudeって打ったらcommand not foundが出た?インストールが壊れてるわけじゃないです。システムが実行ファイルの場所を知らないだけ。PATHを登録すればすぐ解決します。
まず解決方法から
使ってるシェルに合わせて1行打つだけです。
Zsh環境(macOSのデフォルト)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
Bash環境(Linuxのデフォルト)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
これでclaudeを打ってみてください。動くはずです。
ここまでが解決方法で、以下は「なんでこうなるの?」が気になる人向けの説明です。
Windowsと何が違うの?
Windowsはインストーラーが環境変数を自動で設定してくれますよね。だから何も考えずに使えるわけです。
でもMacとLinuxは考え方が違います。「自分の環境は自分で管理しろ」というスタンスなんです。システム設定が個人設定に触れないように分離されてる。セキュリティと効率性のための設計なんですが、Windowsから来た人には正直ちょっと戸惑いますよね。
シェル(Shell)って何?
ターミナルを使ってると「シェル」って言葉がよく出てきますよね。簡単に言うと、ユーザーとOSの間の通訳みたいなものです。
ターミナルでclaudeと打つと、シェルがそれを受け取ってOSに「これ実行して」と伝えるんです。黒い画面そのものがシェルじゃなくて、その中でコマンドを処理するソフトウェアがシェルです。
代表的なのはZshとBashで、それぞれ設定ファイルが違います。だから自分が何を使ってるか知っておくのが大事です。
なぜcommand not foundが出るのか
ターミナルでコマンドを打つと、シェルは「この名前のプログラムはどこにある?」と、事前に登録されたフォルダ一覧を探します。この一覧がPATHという環境変数です。
問題はここです。Claude Codeは~/.local/binにインストールされるんですが、ほとんどのシステムでこのパスがPATHに入ってないんです。インストールスクリプトが登録を試みますが、環境によっては漏れたり、今のターミナルにすぐ反映されないことがあります。
だから自分で登録するわけです。
自分のシェルを確認する方法
ターミナルでこれを打ってください。
echo $SHELL
/bin/zshが出たら →~/.zshrcに設定/bin/bashが出たら →~/.bashrcに設定
Bashは状況によって~/.bash_profileや~/.profileを読むこともあります。
ファイルがなくても心配しないでください。
>>演算子はファイルがなければ自動で新規作成してくれます。
コマンドを一つずつ分解してみる
上で入力したコマンドが実際に何をしてるか知っておくと、次に別のツールをインストールする時にも役立ちます。
echoと>> — テキストを出力してファイルの末尾に追加します。「設定ファイルの一番下に1行追加しろ」という意味です。
export PATH="..." — 既存のPATHの前に~/.local/binを追加します。先頭に付けるので、同じ名前のプログラムが複数あれば、指定したフォルダのものが優先的に実行されます。
source — シェル設定ファイルは本来ターミナルを開いた時しか読み込まれません。sourceは「今すぐ読み直せ」と強制するコマンドです。これをしないとターミナルを閉じて開き直す必要があります。
ターミナルコマンドの構造(おまけ)
ターミナルコマンドは基本的に**[誰に] [何を] [どうやって]**という構造です。
[実行ファイル] [サブコマンド/動詞] [オプションと引数]
- 誰に: コマンドを出すプログラム名(例:
claude,npm,git) - 何を: 具体的な動作(例:
config,install,commit) - どうやって: 追加情報や詳細設定(例:
--help,-v, ファイル名)
この構造さえ知っていれば、初めて見るコマンドでもだいたい読めるようになります。
おわりに
これからは何をインストールしてもcommand not foundが出たら慌てる必要はありません。「あ、PATHの登録だな」と思って対処すれば大丈夫です。