为什么 Ubuntu 需要很长时间才能显示“未找到命令”

为什么 Ubuntu 需要很长时间才能显示“未找到命令”

出于某种原因,在我的设置下,当我不小心输入命令时,Ubuntu 可能需要几秒钟才能响应“未找到命令”。为什么要花这么长时间?有什么方法可以缩短我必须等待的时间吗?

我的 PATH 中确实有 13 个目录,但即便如此(其中大多数只有几个文件),在 13 个目录中搜索命令也不应该花几秒钟的时间,对吗?

答案1

shell 所做的不仅仅是查找$PATH。如果找不到命令,则command_not_found_handle执行 bash 函数,然后调用 python 脚本/usr/lib/command-not-found。这将在软件包列表中搜索应安装的程序以使命令正常工作。如果输入错误(您知道如何解决),只需按Ctrl+C即可中止搜索过程。

拼写错误时有用的信息示例:

$ aptget update
No command 'aptget' found, did you mean:
 Command 'apt-get' from package 'apt' (main)
aptget: command not found

丢失包裹的有用消息示例:

$ deja-dup
The program 'deja-dup' is currently not installed.  You can install it by typing:
sudo apt-get install deja-dup

另请参阅这背后的理由,https://wiki.ubuntu.com/CommandNotFoundMagic

答案2

这是因为有一个名为“command-not-found”的软件包。您可以卸载它以缩短响应时间。

相关内容