この初心者向けチュートリアルでは、Debian、Ubuntu、およびその他のLinuxディストリビューションでBash:コマンドが見つからないというエラーを修正する方法を示しています。
Linuxでコマンドを使用すると、出力が表示されることが期待されます。ただし、端末に「コマンドが見つかりません」というエラーが表示される場合があります。
このエラーに対する簡単な単一の解決策はありません。自分で少しトラブルシューティングを行う必要があります。
正直言って、それほど難しくはありません。 「bash:コマンドが見つかりません」というエラーは、すでにいくつかのヒントを示しています。シェル(またはLinuxシステム)が入力したコマンドを見つけることができません。
コマンドが見つからない理由は3つ考えられます。
- タイプミスで、コマンド名のつづりが間違っています
- コマンドもインストールされていません
- コマンドは基本的に実行可能スクリプトであり、その場所は不明です
考えられる根本的な原因について詳しく見ていきましょう。
「bash:コマンドが見つかりません」エラーの修正
方法1:コマンド名を再確認します(いいえ、真剣に)
特にタイピング中に間違いを犯すのは人間です。入力したコマンドにタイプミス(スペルミス)がある可能性があります。
特に注意する必要があります:
- 正しいコマンド名
- コマンドとそのオプションの間のスペース
- 1(数字の1)、I(大文字のi)、およびl(小文字のL)の使用
- 大文字と小文字の使用
以下の例を見てください。ここでは、一般的なlsコマンドのスペルを間違えています。
したがって、入力内容を再確認してください。
方法2:コマンドがシステムにインストールされていることを確認します
これは、コマンドが見つからないというエラーの背後にあるもう1つの一般的な理由です。コマンドがまだインストールされていない場合、コマンドを実行することはできません。
Linuxディストリビューションにはデフォルトで膨大な数のコマンドがインストールされていますが、システムにすべてのコマンドラインツールをプレインストールすることはできません。実行しようとしているコマンドが一般的な一般的なコマンドでない場合は、最初にインストールする必要があります。
ディストリビューションのパッケージマネージャーを使用してインストールできます。
場合によっては、人気のあるコマンドが廃止され、インストールすらできなくなることがあります。結果を得るには、別のコマンドを見つける必要があります。
ifconfigコマンドの例を見てください。この非推奨のコマンドは、IPアドレスおよびその他のネットワークインターフェイス情報を取得するために使用されました。 Web上の古いチュートリアルでは、このコマンドの使用について引き続き言及されていますが、新しいLinuxバージョンでは使用できなくなりました。 ipツールに置き換えられました。
場合によっては、システムが非常に一般的なコマンドでさえ検出されないことがあります。これは、DockerコンテナでLinuxディストリビューションを実行している場合によくあります。オペレーティングシステムイメージのサイズを縮小するために、コンテナには最も一般的なLinuxコマンドすら含まれていないことがよくあります。
これが、Dockerユーザーがpingコマンドが見つからないというエラーなどに遭遇した理由です。
したがって、解決策は、不足しているコマンドをインストールするか、不足しているコマンドで実行しようとしていたのと同じことを実行できるツールを見つけることです。
方法3:コマンドがエイリアスではなく本物であることを確認してください
Linuxのエイリアスの概念をご存知だと思います。長いコマンドの入力を置き換えるために、独自の短いコマンドを構成できます。
Ubuntuのような一部のディストリビューションは、ll(ls -lのエイリアス)、la(ls -aのエイリアス)などのコマンドを自動的に提供します。
個人のシステムでllとlaを入力することに慣れていて、別のLinuxシステムにログオンして、llコマンドが存在しないことに気付いたとします。 llコマンドは実際のコマンドではないため、インストールすることもできません。
したがって、コマンドが見つからず、インストールすらできない場合は、そのコマンドが存在するかどうかをインターネットで検索してみてください。そうでない場合は、おそらく他のシステムのエイリアスでした。
方法4:パスが正しい実行可能スクリプトであるかどうかを確認します
これは、Linuxの新人がシェルスクリプトの実行中に犯すよくある間違いです。
同じディレクトリにいて、その名前だけで実行可能スクリプトを実行しようとしても、エラーが表示されます。
[email protected]:~/scripts# sample
-bash: sample: command not found
シェルインタープリターを明示的に指定するか、その絶対パスを指定する必要があります。
他のディレクトリにいて、ファイルへの正しいパスを指定せずにシェルスクリプトを実行しようとすると、ファイルが見つからないと文句を言います。
パスに追加する
場合によっては、ソフトウェア全体をtarファイルにダウンロードして解凍し、他のプログラムファイルと一緒に実行可能ファイルを見つけます。プログラムを実行するには、実行可能ファイルを実行する必要があります。
ただし、そのためには、同じディレクトリにいるか、実行可能ファイルへのパス全体を指定する必要があります。これは面倒です。
ここでは、PATH変数を使用できます。この変数にはディレクトリのコレクションがあり、これらのディレクトリにはさまざまなLinuxコマンドのバイナリ(実行可能)ファイルがあります。コマンドを実行すると、LinuxシステムはPATH変数内の上記のディレクトリをチェックして、そのコマンドの実行可能ファイルを探します。
which
を使用して、コマンドのバイナリの場所を確認できます。 コマンド:
システムのどこからでも実行可能ファイルまたはスクリプトを実行する場合は、ファイルの場所をこのPATH変数に追加する必要があります。
次に、PATH変数に加えられた変更が永続的になるように、PATH変数をシェルのrcファイルに追加する必要があります。
ここで要点を理解します。 Linuxシステムが実行可能スクリプトの場所に関する知識を持っていることが重要です。実行中にパスを指定するか、その場所をPATH変数に追加します。
役に立ちましたか?
Linuxを初めて使用する場合、物事が圧倒される可能性があることを理解しています。しかし、問題の根本的な原因を理解すると、徐々に知識が向上します。
ここでは、「コマンドが見つかりませんエラー」の簡単な解決策はありません。私はあなたにいくつかのヒントと指針を与えました、そしてそれはトラブルシューティングに役立つはずです。
それでも疑問がある場合やサポートが必要な場合は、コメントセクションでお知らせください。