How do I remove the "did you mean..." feature in the shell?

When I fail to type correctly a command, for example:

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

The command interpreter try to guess what program I wanted to run. This is very annoying to me (I associate it to google behavior).

Is it possible to remove this feature? And how?

I supposed that it were setup in my local ~/.bashrc, but the fast-check failed miserably...


Solution 1:

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

You need to restart your shell for the change to take affect.

Solution 2:

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

Contrary to the other answer, you should not manually move things around under /usr unless you're trying to defenestrate your package manager.

Solution 3:

The other answers here both assume root, and that you want to remove it globally for the system. If you just want to disable this for a single user (eg, your own account), you can simply do:

unset command_not_found_handle

either on the command line for the current shell, or in their .bashrc

The feature is typically enabled globally by defining command_not_found_handle in /etc/bash.bashrc, so could also be disabled there by default, while still leaving the package available for a power user to define the function and enable the feature in their own account.