t8.dev

🇺🇸

Linuxでcommand not foundと出た時に見るページ

公開日:2019/06/21
更新日:2021/10/28

はじめに

心理学を使ったTODOアプリを開発している、@takasqrです。

心理学を使ったTODOアプリ | todo8

心理学を使ったTODOアプリ | todo8

Linuxでcommand not foundと出た時の原因特定方法を紹介します。

command not found

とは、「指定されたコマンドが見つからない。」という意味です。

Dockerを例に紹介します。

コマンドが見つからない理由がパスが通ってないからなのか確認する方法を紹介します。

パスが通っているか確認する

パスが通っているか確認する方法を2つ紹介します。 コマンドがインストールされている場所がわかっている場合は調査方法2、わからない場合は調査方法1を行います。

パスが通ってなかった場合は、コマンドを再インストールしたりして、PATHが通るように修正します。

調査方法1. コマンドの実行ファイルの有無を確認する

which -a docker

で実行ファイルの場所を確認することができます。

ちなみにwhichコマンドは実行ファイルのフルパスを表示するコマンドです。 Macでも使えます。

MBP:litely t$ which npm
/usr/local/bin/npm

調査方法2. 実行ファイルの場所にPATHが通ってるか確認する

PATHとはプログラムをファイル名だけで実行するための仕組みです。

ファイル名だけで実行したいプログラムを特定のフォルダに集めて、「PATH」という環境変数に登録しておきます。

そうしておくと、コマンドを実行しようとしたときにPATHに登録してあるディレクトリの中ファイル名とコマンド名が一致するものを探してプログラムを実行してくれます。

PATHに登録されているディレクトリを確認するには、環境変数のPATHを呼び出します。

echo $PATH

PATHが通っているか確認するには、プログラムの実行ファイルの場所がPATHに含まれているか確認します。

もしなかった場合は実行ファイルの場所にPATHが通ってなかったために実行できなかった可能性があります。

おまけ 本当にPATHのせいなのか確認する

手順1で調べたコマンドのPATHを省略しないで実行してみるとPATHが通ってないから実行できないのか、より正確に把握できます。

例えば、Dockerであれば、

docker ps -a

を、

/usr/bin/docker ps -a

に変更して実行してみます。パスを全て指定して実行することで、パスが通ってなくてもコマンドが実行できるので問題の特定に役立ちます。

オススメ記事

5年間ほぼ毎日プログラミングの勉強をするためにやったこと
論文と本から学ぶ、プログラミング独学のコツ
目標達成率を高める if thenプランニングとは!?【本とアプリも紹介】