如何删除shell中的“你是说……”function?

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

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 

命令解释器试图猜测我想运行什么程序。 这对我来说非常烦人(我把它与google行为联系起来)。

是否可以删除此function? 如何?

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

 sudo apt-get remove command-not-found sudo mv /usr/share/command-not-found /usr/share/command-not-found.bak 

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

 sudo apt-get remove command-not-found command-not-found-data 

与其他答案相反,你不应该在/usr下手动移动东西,除非你试图破坏你的包管理器。

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

 unset command_not_found_handle 

在当前shell的命令行上,或在.bashrc

该function通常通过在/etc/bash.bashrc定义command_not_found_handle来全局启用,因此默认情况下也可以在此处禁用,同时仍然可以让超级用户定义function并在自己的帐户中启用该function。