command not foundとは?パスを通す方法を初心者向けにやさしく解説

ターミナルでコマンドを打ったら、「command not found」と返ってきて先に進めない——。

ターミナルを使い始めた人が、ほぼ必ず一度はぶつかるエラーです。

その原因の多くは、「パスが通っていない」こと。

この記事では、command not foundの意味と、「パスを通す」方法を初心者にもわかりやすく解説します。

インストールしたはずやのに「ない」って言われるねん。意味わからんわ…

目次

この記事の対象読者

  • 「command not found」が出て困っている
  • 「パスを通す」の意味がよく分からない方
  • ターミナルを使い始めたばかりの方
  • インストールしたのに使えず、原因を知りたい方

command not foundとは?

これは、「そのコマンドが見つかりません」という意味のエラーです。

原因は大きく2つに分かれます。

  • そもそもインストールされていない
  • インストールはされているが、パスが通っていない

「インストールしたのに使えない」場合は、たいてい後者のパスの問題です。

そもそも「パスを通す」とは?

ターミナルは、コマンド名だけで実行できるように、「PATH」という一覧に登録された場所からコマンドを探しています

PATHは、いわば「コマンドを探しに行く場所の住所録」のようなものです。

コマンド本体があっても、その置き場所が住所録(PATH)に載っていないと、ターミナルは見つけられません。

この住所録に置き場所を追加することを、「パスを通す」と言います。

まず確認すること

①本当にインストールされているか

Bash
# コマンドの場所を調べる
which node

# バージョンが表示されれば使える状態
node -v
Bash

何も表示されなければ、インストール自体ができていない可能性があります。

②PATHに含まれているか確認する

Bash
# 今のPATH(探しに行く場所の一覧)を表示する
echo $PATH
Bash

コマンドを置いた場所が、この一覧に入っているかを確認しましょう。

なるほど、住所録に載ってへんだけで、モノ自体はあるってことか。

パスを通す方法(Mac・Linux)

Mac・Linuxでは、シェルの設定ファイルにPATHを追記して通します。

よく使うzshなら、設定ファイルは「.zshrc」です。

Bash
# ~/.zshrc に追記する例(bashなら ~/.bashrc)
export PATH="$HOME/.local/bin:$PATH"

# 設定を再読み込みして反映する
source ~/.zshrc
Bash

「$HOME/.local/bin」の部分は、実際にコマンドを置いている場所に置き換えてください。

Windowsの場合

Windowsでも考え方は同じで、環境変数「Path」に実行ファイルのフォルダを追加します。

「システムのプロパティ」→「環境変数」から、Pathを編集して対象のフォルダを追加しましょう。

設定後は、ターミナルを開き直すと反映されます。

よくあるつまずき

  • 再読み込みを忘れている:設定後はsourceかターミナル再起動が必要
  • コマンド名のタイプミス:スペルを今一度確認する
  • 編集する設定ファイルを間違えている:使っているシェルに合ったファイルに書く

ターミナルの基本操作に不安がある方は、こちらもあわせてどうぞ。

まとめ

command not foundは、コマンドが見つからない(未インストール、またはパス未設定)状態です。

まずwhichで存在を確認し、必要ならPATHに置き場所を追加して「パスを通す」のが基本の流れです。

設定後の再読み込みを忘れないことだけ意識すれば、たいていは解決できます。

PATHの正体が分かったらスッキリしたわ。再読み込み忘れんとこ、ありがとう!

よくある質問

インストールしたのにcommand not foundになるのはなぜ?

コマンドの置き場所がPATHに登録されていない可能性が高いです。あるいは、設定後にターミナルを再読み込みしていないだけのこともあります。まずwhichで存在を確認しましょう。

echo $PATH では何が見られますか?

ターミナルがコマンドを探しに行く場所の一覧が表示されます。コロンで区切られた各フォルダのどこにも目的のコマンドがなければ、command not foundになります。

.bashrcと.zshrc、どちらに書けばいいですか?

使っているシェルによって異なります。zshなら.zshrc、bashなら.bashrcが基本です。今のシェルはechoコマンドで$SHELLを確認すると分かります。

設定したのに反映されません。

設定ファイルを編集しただけでは反映されません。sourceコマンドで再読み込みするか、ターミナルを開き直すと反映されます。

Windowsでも同じ考え方ですか?

基本の考え方は同じです。環境変数「Path」に、実行ファイルが入っているフォルダを追加します。設定後はターミナルを開き直すと反映されます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次