Por que demora tanto para o Ubuntu dizer “comando não encontrado”

23

Por alguma razão, com a minha configuração, o Ubuntu pode levar vários segundos para responder com "comando não encontrado" quando acidentalmente digito um comando. Por que demora tanto tempo? Existe alguma maneira de diminuir 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 neles), não deve demorar alguns segundos para pesquisar 13 diretórios para um comando certo?

    
por mltsy 27.10.2011 / 18:10

2 respostas

33

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

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, link

    
por Lekensteyn 27.10.2011 / 18:23
8

É por causa de um pacote chamado "command-not-found". Você pode desinstalá-lo para encurtar o tempo de resposta.

    
por cartoonist 27.10.2011 / 18:17