ターミナルに慣れてきたころ、必ず一度はぶつかるエラーがあります。
command not found
今はAIに伝えるだけで解決してくれます。
でも「なぜそうなるのか」を知っていると、AIともっとうまく話せます。
これは、仕組みをざっくり理解したい人向けの記事です。
そもそも「パス」って何?
パスとは、ファイルやフォルダの住所のようなものです。
コンピュータの中は、フォルダが階層になって並んでいます。
/Users/kk/Documents/blog/index.html
これが「絶対パス」。一番上の階層(ルート /)から住所を全部書いたものです。
Macは「/」区切り、Windowsは「¥」区切り
| OS | 区切り文字 | 例 |
|---|---|---|
| Mac / Linux | / |
/Users/hiromi/blog |
| Windows | ¥または\ |
C:¥Users¥hiromi¥blog |
絶対パスと相対パス
| 種類 | 意味 | 例 |
|---|---|---|
| 絶対パス | 一番上から全部書く | /Users/kk/blog/ |
| 相対パス | 今いる場所から書く | ./blog/や../blog/ |
駅までの道順で例えると、
絶対パス=「大阪駅から○○通りを右に…」
相対パス=「ここから右に曲がって…」みたいな感じです😊
ターミナルとシェルの関係
コンピュータを操作する方法は2種類あります。
- GUI:クリック・タップで操作
- CUI:コマンド(文字)で操作
ターミナルは、CUIで操作するための画面です。
シェルは「通訳さん」
ターミナルに打ったコマンドは、そのままコンピュータに届くわけではありません。
あなた → ターミナル → シェル → コンピュータ(カーネル)
シェルが「通訳さん」の役割を果たして、コンピュータに伝えてくれています。
シェルにはいろいろな種類があります
- zsh:Macの標準(Catalina以降)
- bash:Linuxの標準的かつ最も普及している
など
自分のPCのシェルを確認したいときはこのコマンドです
echo $0
PATHという「コマンド探しリスト」の仕組み
コンピュータは場所を指定しないと、今いる場所しか探しません。
だからターミナルでコマンドを実行するときは、原則として
場所(パス)+ ファイル名(コマンド名)
をセットで指定する必要があります。
コマンド名は、実行ファイルそのものの名前です。
たとえば claude と打つのは、claude という名前の実行ファイルを呼び出しているということです。
ただし毎回フルパスを入力するのは大変なので、よく使うフォルダをあらかじめ登録しておく仕組みがあります。それが PATH(環境変数) です。
PATHに登録されたフォルダの中にあるコマンドは、名前だけで呼び出せます。
PATHは「探す場所のリスト」
echo $PATH
このコマンドで、今設定されているPATHが確認できます。
:(コロン)区切りで、「ここを順番に探してね」というフォルダの一覧です。
コマンドが動く場合と動かない場合
コマンドを打つ
↓
PATHのリストを上から順番に探す
↓
見つかった → 実行する ✅
見つからない → command not found ❌
インストールしたのに動かないのは、インストール先のフォルダがPATHのリストに入っていないからです。
「PATHを通す」の正体
PATHのリストにフォルダを追加するには?
export コマンドでPATHに新しいフォルダを追加できます。
export PATH="追加したいフォルダのパス:$PATH"
ただし、これだけだとターミナルを閉じたときにリセットされてしまいます。
リセット対策
ターミナルには、起動時に自動で読み込まれるシェル設定ファイルがあります。
ターミナル起動
↓
シェル設定ファイルを読み込む(.zshrc など)
↓
PATHの設定が自動で反映される ✅
この設定ファイルに export の記述を書き込んでおくことで、毎回起動するたびにPATHが自動で設定されます。
「PATHを通す」の正体はまさにこれ『設定ファイルに export の記述を書き込んでおくこと』です。
Macの場合は .zshrc に書き込むのが一般的ですが、
どの設定ファイルに書けばいいかはシェルの種類によって変わります。
難しく考えずに、エラーメッセージをそのままAIに貼り付けるだけでOKです。
設定ファイルに export の記述を書き込むのはこんな感じ!
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
| コマンド | 何をしているか |
|---|---|
echo '...' >> ~/.zshrc |
.zshrcにPATHの設定を書き込む |
source ~/.zshrc |
設定ファイルをいま即反映させる |
⚠️ ちなみに、すべてのコマンドでPATHを通す必要があるわけではありません。
Macでは /bin や /usr/bin などは最初からPATHに登録済みです。
ls (ファイルやフォルダの一覧を表示)や cd (フォルダを移動)などの基本コマンドが何も設定せずに使えるのはそのためです。
仕組みを知っているとAIともっとうまく話せる
Claude Codeをインストールしたとき、まさにこの問題にぶつかりました。
✅ Installation complete!
$ claude --version
zsh: command not found
インストールは成功しているのに、claudeコマンドが動かない。
原因は ~/.local/bin がPATHに登録されていなかったことでした。
AIに状況を伝えると、すぐに解決策を教えてくれました。
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
$ claude --version
2.1.91 (Claude Code) ✅
これでバージョンの確認成功、claudeコマンドが使えるようになりました。
AIはエラーを解決してくれます。でも、仕組みを知っているかどうかで、AIとの会話の質が変わります。
- 状況の伝え方がわかれば、行き違いが起きないので、早く解決できる。
- 提案されたコマンドが、なにをしているか理解できれば、怖くて実行できないなんてこともない。
少し前まで、command not foundを自力で解決するには、シェルコマンド以外にも、シェルの種類やログインシェル、設定ファイルの読み込み順まで理解する必要がありました。
今は違います。AIが解決してくれます。
ハードルが下がった今は、手順の暗記より仕組みのざっくり理解が最強なのではと思う今日この頃です😆
2026年4月更新
