ご存知かもしれませんが、Linuxで使用できないコマンドまたは認識されないコマンドを実行すると、エラーメッセージが表示されます- "bash:command not found" 。問題は、どのパッケージがその特定のコマンドを提供するかを知らない人がいることです。もう違います!今日、私は「command-not-found」と呼ばれる便利なユーティリティに出くわしました。 これは、使用できないコマンドを実行するときにパッケージのインストールを提案するのに役立ちます。
Linuxシステムでは使用できない「leafpad」という名前のコマンドを実行するとします。どのパッケージがこのコマンドを提供しているかわかりません。ここで「command-not-found」ユーティリティが役立ちます。
認識されないコマンドまたは使用できないコマンドを入力すると、公式リポジトリが自動的に検索されます。既存のプログラムとそれに関連するパッケージのキャッシュを使用して、ユーザーが日常のコマンドラインで作業できるようにします。
コマンドが見つからないユーティリティをインストールする Linuxの場合
command-not-foundユーティリティはAURで使用できます。したがって、パルなどのAURヘルパーを使用してインストールできます。 またははい。
$ paru -S command-not-found
または、
$ yay -S command-not-found
また、 pkgfile パッケージはcommand-not-foundフックを提供します。 command-not-foundユーティリティを使用するには、pkgfileをインストールするだけです。
$ sudo pacman -S pkgfile
インストールしたら、 .bashrcを編集します ファイル:
$ vi ~/.bashrc
有効にするには、最後に次の行を追加します。
source /usr/share/doc/pkgfile/command-not-found.bash
コマンドを使用して行った変更を更新します:
$ source ~/.bashrc
Ubuntuとその派生物には、プリインストールされています。
まだインストールされていない場合は、次のようにインストールできます。
$ sudo apt-get update $ sudo apt-get install command-not-found
使用できないコマンドを実行する場合のパッケージのインストールを提案する
次に、使用できないコマンド( leafpad など)を実行します。 :
どのパッケージがこのコマンドを提供するかを提案します。これが私のArchLinuxシステムからの出力です。
$ leafpad leafpad may be found in the following packages: extra/leafpad 0.8.18.1-5 /usr/bin/leafpad
上記の出力でわかるように、「leafpad」コマンドはleafpad-0.8.18.1-5パッケージによって提供されます。
Ubuntuで別のコマンドを試してみましょう:
$ emacs The program 'emacs' can be found in the following packages: * emacs24 * emacs24-nox * e3 * emacs23 * emacs23-lucid * emacs23-nox * emacs24-lucid * jove Try: sudo apt-get install <selected package>>
これは単なる例です。このユーティリティは、使用できないコマンドを実行すると、パッケージのインストールを提案します。このユーティリティを削除すると、何も提案されません。以下のような出力を表示するだけです。
"bash: emacs: command not found"
これがお役に立てば幸いです。