Linuxでcommand not foundと出た時の原因特定方法
※この記事は2019/06/21に投稿されました。
はじめに
Linuxでcommand not foundと出た時の原因特定方法を紹介します。
command not found
とは、「指定されたコマンドが見つからない。」という意味です。
Dockerコマンドを実行しようとしたらこのエラーが出たテイで紹介します。
手順
1. コマンドの実行ファイルの有無を確認する
which -a docker
で実行ファイルの場所を確認することができます。
2. 実行ファイルの場所にPATHが通ってるか確認する
PATHとはプログラムをファイル名だけで実行するための仕組みです。
ファイル名だけで実行したいプログラムを特定のフォルダに集めて、「PATH」という環境変数に登録しておきます。
そうしておくと、コマンドを実行しようとしたときにPATHに登録してあるディレクトリの中ファイル名とコマンド名が一致するものを探してプログラムを実行してくれます。
PATHに登録されているディレクトリを確認するには、環境変数のPATHを呼び出します。
echo $PATH
PATHが通っているか確認するには、プログラムの実行ファイルの場所がPATHに含まれているか確認します。
もしなかった場合は実行ファイルの場所にPATHが通ってなかったために実行できなかった可能性があります。
3. 本当にPATHのせいなのか確認する
コマンドのPATHを省略しないで実行してみるとPATHが通ってないから実行できないのか、より正確に把握できます。
例えば、Dockerであれば、
docker ps -a
を、
/usr/bin/docker ps -a
に変更して実行してみます。パスを全て指定して実行することで、パスが通ってなくてもコマンドが実行できるので問題の特定に役立ちます。