「Command Not Found」という悩み
新しいツールをインストールし終えてEnterキーを押したとき、バージョン番号が表示される代わりに、恐ろしいzsh: command not foundが表示されることがあります。このエラーは、macOS開発者が必ず通る道です。通常、Node.js、Python、Flutterをセットアップした直後や、新しいM3 MacBook Proにデータを移行した際によく発生します。
実際には何が起きているのか?
macOS Catalina以降、AppleはZshをデフォルトのシェルとして採用しています。コマンドを入力すると、Zshは特定のフォルダのリスト内を探して実行ファイルを見つけようとします。このリストが$PATHです。新しいツールが含まれているフォルダがそのリストにない場合、Zshは見つけるのを諦めてしまいます。これを修正するには、ターミナルに正しい場所を教えてあげるだけです。
解決策1:.zshrcによる恒久的な修正
.zshrcファイルを修正するのが最も確実な方法です。このスクリプトは新しいターミナルウィンドウを起動するたびに実行されるため、ツールが常に使用可能な状態になります。
ステップ1:ツールの場所を確認する
まず、ソフトウェアがどこにインストールされているかを特定します。macOSのツールで最も一般的な4つの場所は以下の通りです:
- Homebrew (Intel Macs):
/usr/local/bin - Homebrew (Apple Silicon M1/M2/M3):
/opt/homebrew/bin - Flutter SDK:
~/development/flutter/bin - Python 3.12:
~/Library/Python/3.12/bin
ステップ2:設定ファイルを開く
ターミナルに内蔵されているシンプルなテキストエディタ「Nano」を使用します。以下のコマンドを実行して設定を開きます:
nano ~/.zshrc
ステップ3:PATH文字列を更新する
ファイルの最下部へ移動します。以下の行を貼り付けますが、プレースホルダーをステップ1で見つけた実際のパスに置き換えてください:
export PATH="$PATH:/your/custom/path"
例えば、新しいM2 MacBook AirでHomebrewをセットアップする場合、行は以下のようになります:
export PATH="$PATH:/opt/homebrew/bin"
ステップ4:保存して終了する
Nanoではキーボードショートカットを使って保存します。Ctrl + Oを押してからEnterを押し、変更をディスクに書き込みます。最後にCtrl + Xを押して、メインのプロンプトに戻ります。
ステップ5:変更を強制的に反映させる
ターミナルを再起動するか、手動で設定をリフレッシュするまで、変更は反映されません。今すぐ更新を適用するには、以下を実行します:
source ~/.zshrc
解決策2:Apple Silicon搭載MacでのHomebrew向けクイック修正
Apple Silicon搭載のMacでは、古いIntelモデルとはHomebrewの扱いが異なります。もしbrewコマンド自体が失敗している場合は、Homebrewに内蔵されている修正方法があります。ターミナルに以下の2行を貼り付けてEnterを押してください:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
eval "$(/opt/homebrew/bin/brew shellenv)"
このコマンドは、PATHのロジックを自動的に処理する専用の初期化スクリプトを.zshrcに追加します。
解決策3:「緊急時」のリカバリ
誰もが経験することですが、.zshrcを編集して保存した途端、lsやcdのような基本コマンドさえ動かなくなることがあります。これは、PATHに追加するのではなく、誤って上書きしてしまった場合に起こります。
慌てないでください。以下のコマンドを実行することで、一時的に標準機能を復元できます:
export PATH="/usr/bin:/bin:/usr/sbin:/sbin"
これでnanoが再び動作するようになったので、~/.zshrcを開いて間違いを探してください。exportの行に$PATH:の部分が含まれているか確認してください。この短い記述により、既存のフォルダをすべて保持したまま、リストの最後に新しいフォルダを追加するようZshに指示します。
確認:うまくいきましたか?
ファイルをsourceしたら、有効なディレクトリの新しいリストを素早く確認してみましょう:
echo $PATH
文字列の最後に新しいパス(/opt/homebrew/binなど)が表示されているはずです。また、Macがそのツールをどこで認識しているかを正確に確認するには、以下を入力します:
which <command_name>
有効なファイルパスが返ってくれば、準備完了です。
ターミナルをより快適に使うためのプロのヒント
- .bash_profileは忘れる: macOSは2019年以降、Bashをデフォルトとして使用していません。
.bash_profileにパスを追加しても、Zshには反映されません。 - タイポ(打ち間違い)に注意: コロン(
:)が1つ抜けていたり、=記号の前後に余計なスペースがあったりするだけで、設定全体が壊れてしまいます。 - 「奥の手」:
source ~/.zshrcを実行してもうまくいかない場合は、Cmd + Qでターミナルアプリを完全に終了させてから再起動してください。これにより、環境設定が強制的にクリーンに読み込まれます。

