出于某种原因,在我的设置下,当我不小心输入命令时,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”的软件包。您可以卸载它以缩短响应时间。