如何删除 shell 中的“您的意思是...”功能?

Luc*_*uca 22 bash

当我无法正确输入命令时,例如:

luca@mostro:~$ sido
No command 'sido' found, did you mean:
 Command 'sudo' from package 'sudo' (main)
 Command 'sudo' from package 'sudo-ldap' (universe)
 Command 'sid' from package 'tendra' (universe)
sido: command not found
Run Code Online (Sandbox Code Playgroud)

命令解释器尝试猜测我想运行什么程序。这对我来说很烦人(我将它与谷歌行为联系起来)。

是否可以删除此功能?如何?

我以为它是在我的本地设置的~/.bashrc,但是快速检查失败了……

Rin*_*ind 16

sudo apt-get remove command-not-found
sudo mv /usr/share/command-not-found /usr/share/command-not-found.bak
Run Code Online (Sandbox Code Playgroud)

您需要重新启动 shell 以使更改生效。

  • 不要在`/usr` 下移动属于包的东西。在`/usr/share/command-not-found`的情况下,该目录属于`command-not-found-data`包。现在你的包管理器会感到困惑。 (4认同)

rui*_*ief 14

sudo apt-get remove command-not-found command-not-found-data
Run Code Online (Sandbox Code Playgroud)

与另一个答案相反,除非您试图保护您的包管理器,否则您应该手动移动下面的东西/usr


Ran*_*all 7

这里的其他答案都假设 root,并且您想为系统全局删除它。如果您只想为单个用户(例如,您自己的帐户)禁用此功能,您可以简单地执行以下操作:

unset command_not_found_handle
Run Code Online (Sandbox Code Playgroud)

无论是在当前 shell 的命令行上,还是在它们的 .bashrc

该功能通常通过定义in全局启用,因此默认情况下也可以在那里禁用,同时仍然让高级用户可以使用该包来定义该功能并在他们自己的帐户中启用该功能。command_not_found_handle/etc/bash.bashrc