Ubuntuで次のように入力すると、
mc
インストールされていない場合、以下のメッセージが表示されます。
The program 'mc' is currently not installed. You can install it by typing: Sudo apt-get install mc
ただし、Debianでは利用できません。 「-bash:/ usr/bin/mc:No such file or directory」というメッセージが表示されるだけです。 Debianのbashコマンドラインに同じ機能を実装するにはどうすればよいですか?はい、必要なパッケージの提案であれば、apt-cache searchを使用して正規表現検索を実行できることを知っています。しかし、私はプログラムの名前を入力する際の簡単な提案をすぐに期待していました。
説明に従って、機能はパッケージcommand-not-foundによって提供されます。ただし、それをインストールし、bash-completionパッケージもインストールした後でも、これはDebian bashシェルでは使用できません。
command-not-found
のインストールが、インストールされていないパッケージの提案を開始しなかった理由は、インストールの一部としてdpkgからの小さな通知を見逃していたためです。
update-command-not-found
を実行した直後にコマンドapt-get install command-not-found
を実行することになっています。実際、dpkgはこのコマンドの実行を要求します。
Debianパッケージは不完全なようです。 READMEは、/etc/bash_command_not_found
で.bashrc
をソースする必要があることを示しています。奇妙なことに、そのファイルはパッケージに含まれていません。
Debian command-not-found
パッケージ は buntuパッケージ に基づいています。その点で、ubuntuパッケージはより完全なようです。
bash_command_not_found のubuntuバージョンのコンテンツ:
command_not_found_handle() {
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "$1"
return $?
else
return 127
fi
}
これらの行を~/.bashrc
(または/etc/bash.bashrc
)に追加すると、command-not-found
機能が動作するはずです。
私はこの問題を次のように解決します:
最初にインストールされたコマンドが見つかりません
Sudo apt update
Sudo apt install command-not-found
その後
Sudo update-command-not-found
Sudo apt update