Jak usunąć z powłoki funkcję „miałeś na myśli…”?

19

Gdy nie mogę poprawnie wpisać polecenia, na przykład:

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

Interpretator poleceń próbuje zgadnąć, jaki program chciałem uruchomić. Jest to dla mnie bardzo denerwujące (kojarzę to z zachowaniem google).

Czy można usunąć tę funkcję? I jak?

Przypuszczałem, że został on skonfigurowany w moim lokalnym ~/.bashrc, ale szybkie sprawdzenie nie powiodło się ...

Luca
źródło

Odpowiedzi:

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

Musisz ponownie uruchomić powłokę, aby zmiany odniosły skutek.

Rinzwind
źródło
2
Nie przenoś rzeczy, /usrktóre należą do pakietów. W przypadku /usr/share/command-not-found, ten katalog należy do command-not-found-datapakietu. Teraz twój menedżer pakietów będzie zdezorientowany.
żal
9
sudo apt-get remove command-not-found command-not-found-data

W przeciwieństwie do innych odpowiedzi, należy nie ręcznie przesuwać przedmioty pod /usrchyba próbujesz defenestrate menedżera pakietów.

żal
źródło
3

Pozostałe odpowiedzi tutaj zakładają root i że chcesz go usunąć globalnie dla systemu. Jeśli chcesz to wyłączyć tylko dla jednego użytkownika (np. Własnego konta), możesz po prostu:

unset command_not_found_handle

albo w wierszu poleceń dla bieżącej powłoki, albo w ich .bashrc

Funkcja ta jest zazwyczaj włączona globalnie poprzez zdefiniowanie command_not_found_handlew /etc/bash.bashrc, więc może być również wyłączona tam domyślnie, jednocześnie pozostawiając pakietu dostępne dla użytkownika uprawnienia do określania funkcji i włączyć tę funkcję w ich własny rachunek.

Randall
źródło