Por que demora tanto tempo para o Ubuntu dizer "comando não encontrado"

24

Por alguma razão, com minha instalação, o Ubuntu pode demorar alguns segundos para responder com "comando não encontrado" quando digito um comando acidentalmente. Por que demora tanto tempo? Existe alguma maneira de reduzir o período de tempo que tenho que esperar?

Eu tenho 13 diretórios no meu PATH, mas mesmo assim (a maioria deles tem apenas alguns arquivos), não deve demorar alguns segundos para pesquisar 13 diretórios por um comando, certo?

mltsy
fonte

Respostas:

34

O shell faz mais do que apenas olhar $PATH. Se um comando não for encontrado, a função bash command_not_found_handleé executada, que por sua vez chama o script python /usr/lib/command-not-found. Isso procura na lista de pacotes programas que devem ser instalados para que o comando funcione. No caso de um erro de digitação que você saiba resolver, basta pressionar Ctrl+ Cpara abortar o processo de pesquisa.

Exemplo de uma mensagem útil para um erro de digitação:

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

Exemplo de uma mensagem útil para um pacote ausente:

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

Veja também a lógica por trás disso, https://wiki.ubuntu.com/CommandNotFoundMagic

Lekensteyn
fonte
5
Linus postou algo sobre isso: plus.google.com/u/0/102150693225130002912/posts/iz7zR9B1Prv
bcbc 01/11/11
E considero que este é um recurso realmente incrível! Se você usar um comando que espera estar presente, mas não estiver lá, será informado diretamente o que digitar para instalá-lo.
Thorbjørn Ravn Andersen
8

É por causa de um pacote chamado "comando não encontrado". Você pode desinstalá-lo para reduzir o tempo de resposta.

cartunista
fonte