Ubuntu如何知道程序包含在某个包中?

时间:2016-01-04 19:26:02

标签: ubuntu command-line

在Ubuntu中(在命令行上)使用一个程序,例如“sar”没有安装,它告诉我哪个软件包包含这个程序。

user@comp ~$ sar
the program 'sar' can be found in the following packages
* sysstat
* atsar
Try: sudo apt-get install <selected package>

这是如何运作的?

1 个答案:

答案 0 :(得分:0)

bash shell使用一个名为command_not_found_handle()的特殊用户定义函数。要查看bash如何使用此功能的说明,请键入info bash并搜索“未找到” - 或read it online here

在Ubuntu 14.04.3 LTS上,该函数在/etc/bash.bashrc中定义,它作为bash包的一部分安装。该函数调用/usr/lib/command-not-found/usr/share/command-not-found/command-not-found

如果您希望出现此行为,可以使用以下命令:

unset command_not_found_handle

删除函数定义。