Як видалити в оболонці функцію "ти мав на увазі ..."?


19

Якщо я не можу правильно ввести команду, наприклад:

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).

Чи можливо видалити цю функцію? І як?

Я вважав, що це налаштування в моїй місцевій ~/.bashrc, але швидка перевірка нещасно не вдалася ...

Відповіді:


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

Вам потрібно перезапустити оболонку, щоб зміни вплинули.


2
Не пересувайте речі під /usrтими пакетами. У випадку з /usr/share/command-not-foundцим каталогом належить command-not-found-dataпакет. Тепер ваш менеджер пакунків буде заплутаний.
ruief

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

На відміну від іншої відповіді, ви не повинні переміщати речі вручну, /usrякщо ви не намагаєтесь зневажати менеджера пакунків.


3

Інші відповіді тут обидва припускають root, і що ви хочете видалити його глобально для системи. Якщо ви просто хочете відключити це для одного користувача (наприклад, власний обліковий запис), ви можете просто зробити:

unset command_not_found_handle

або в командному рядку для поточної оболонки, або в їх .bashrc

Ця функція , як правило , включена в глобальному масштабі шляхом визначення command_not_found_handleв /etc/bash.bashrc, так само може бути відключена там за замовчуванням, в той же час залишаючи пакет , доступний для користувача потужності для визначення функції і включити функцію в свій власний рахунок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.