Чому Ubuntu так довго вимовляє "команду не знайдено"


24

Чомусь із моїм налаштуванням Ubuntu може зайняти кілька секунд, щоб відповісти "командою не знайдено", коли я випадково ввів команду. Чому це займає так довго? Чи є який-небудь спосіб скоротити період часу, який мені доведеться чекати?

У мене є 13 каталогів у моєму PATH, але навіть так (більшість з них має лише кілька файлів у них), щоб шукати 13 каталогів для команди, не повинно пройти кілька секунд?

Відповіді:


34

Оболонка робить більше, ніж просто заглянути $PATH. Якщо команда не знайдена, command_not_found_handleвиконується функція bash , яка в свою чергу викликає скрипт python /usr/lib/command-not-found. Це шукає у списку пакетів програм, які слід встановити для роботи команди. У разі помилки, яку ви знаєте, як вирішити, просто натисніть Ctrl+, Cщоб перервати процес пошуку.

Приклад корисного повідомлення для друку:

$ aptget update
No command 'aptget' found, did you mean:
 Command 'apt-get' from package 'apt' (main)
aptget: command not found

Приклад корисного повідомлення для відсутнього пакету:

$ deja-dup
The program 'deja-dup' is currently not installed.  You can install it by typing:
sudo apt-get install deja-dup

Дивіться також обґрунтування цього, https://wiki.ubuntu.com/CommandNotFoundMagic


5
Лінус розмістив щось на цьому: plus.google.com/u/0/102150693225130002912/posts/iz7zR9B1Prv
bcbc

І я вважаю це справді дивовижною особливістю! Якщо ви використовуєте команду, яку, як ви очікуєте, буде присутній, але її немає, вам безпосередньо повідомлять, що ввести, щоб встановити її.
Thorbjørn Ravn Andersen

8

Це через пакет з назвою "команда не знайдена". Ви можете його видалити, щоб скоротити час відповіді.

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