GNU/Linux >> Linux の 問題 >  >> Linux

使用できないコマンドを実行するときにパッケージのインストールを提案する

ご存知かもしれませんが、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"

これがお役に立てば幸いです。


Linux
  1. テキストファイルのすべての行に対してコマンドを実行する

  2. Suオプション–別のユーザーとしてコマンドを実行しますか?

  3. ルートとして実行している場合でも、ファイルを削除できませんか?

  1. Rmコマンドが発行されたときにファイルはどこに移動しますか?

  2. バックグラウンドおよびフォアグラウンドでのLinuxコマンドの実行

  3. sudo の使用時にコマンドが見つからない

  1. Linuxでaptコマンドを使用してパッケージを管理する方法

  2. 実行中のSystemdコンテナ内でコマンドを実行する方法は?

  3. Google Cloud で SSH が閉じられているときに Java アプリを実行し続ける