我注意到,在 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:没有这样的文件或目录”消息。如何在 Debian 上的 bash 命令行中实现相同的功能?是的,我知道如果我想要的是软件包建议,我可以简单地使用正则表达式搜索apt-cache 搜索。然而,我希望在输入程序名称时立即得到更简单的建议。
根据讨论,该功能由包提供找不到命令。但是即使安装了它,并且安装了 bash-completion 包,它在 Debian bash shell 上仍然不可用。
答案1
安装没有开始为未安装的软件包提供建议的原因command-not-found
是我在安装过程中错过了 dpkg 的一个小通知。
应该update-command-not-found
在运行后立即运行该命令apt-get install command-not-found
。事实上 dpkg 会提示运行此命令。
答案2
debian 软件包似乎不完整。自述文件说你应该/etc/bash_command_not_found
在你的.bashrc
.奇怪的是,该文件不包含在包中。
德比安command-not-found
包裹是基于ubuntu 包。 ubuntu 包在这方面似乎更完整。
ubuntu版本的内容bash_command_not_found:
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
功能应该可以工作。
答案3
我通过以下方式解决这个问题:
首先安装命令未找到
sudo apt update
sudo apt install command-not-found
在那之后
sudo update-command-not-found
sudo apt update
答案4
在 Debian 中,安装 command-not-found 后,您应该发出以下命令:
apt-get update
或者
apt-file update
请注意,该命令update-command-not-found
不会产生影响。此外,您还应该注销并再次登录,以使 /etc/profile 中的新命令未找到 shell 脚本运行。或者您可以手动运行/获取它们。