Quando você estiver digitando um comando incorreto, diga que deseja:
$ cd ..
$ ls
Mas, em vez disso, você digita muito rápido e acaba pressionando enter entre l e s, para obter:
$ cd ..
$ l
sbash: l: command not found...
Isso acontece o tempo todo, é claro, quando digitamos rápido. O que me interessa é a origem da pausa de 2,5 segundos (no meu sistema) depois que o texto de comando incorreto aparece na tela. Parece-me que reconhece o comando incorreto instantaneamente, imprime uma mensagem de erro sobre ele, mas apenas por diversão aguarda 2,5 segundos antes de me retornar à linha de comando. O que causa isso? Existe uma maneira de corrigir isso? É um pequeno aborrecimento, mas eu gostaria de me livrar dele. :)
Edit: Executando o sistema Fedora 16
Respostas:
Esse tipo de comportamento é causado por uma ferramenta frequentemente instalada em algumas distribuições que se conectam ao bash. Esse gancho faz com que, se você tentar executar um comando, e o comando não existir, o bash procurará os arquivos disponíveis nos repositórios configurados e informará o pacote que você precisa instalar para obter esse comando.
Se você não estiver em um sistema Debian, deverá examinar os perfis dos arquivos de inicialização do bash e assim por diante e ver se alguma coisa define a função nomeada
command_not_found_handle
. Se essa função bash estiver definida, ela será chamada sempre que você executar um comando e um programa apropriado não puder ser encontrado no seu caminho de pesquisa. Se você executartypset | less
e navegar pela saída, verá acommand_not_found_handle()
função se ela tiver sido definida.No Debian / Ubuntu, o pacote que fornece esse comportamento é um comando não encontrado . Se você limpar isso, desabilitará as pesquisas que atrasam as coisas.
Aqui está um exemplo
A hora exata seria, obviamente, diferente para você. Eu executei meus testes em um servidor bastante robusto.
fonte
Parte da questão era "existe uma maneira de corrigir isso (no Fedora)?" Existe: na parte inferior do seu arquivo .bashrc, adicione o comando
Você provavelmente deseja fazê-lo no final do seu .bashrc (ou próximo a ele) porque pode estar executando o / etc / bashrc ou outros scripts bash na parte superior do seu .bashrc.
fonte
No fedora, esse comportamento pode ser controlado alterando o
/etc/PackageKit/CommandNotFound.conf
arquivo de configuração.A configuração
SoftwareSourceSearch=false
eliminará o atraso, pois não tentará localizar um pacote com o comando ausente usando o gerenciador de pacotes.Você também pode alterar a quantidade de tempo que aguardará uma pesquisa de pacote, alterando a
MaxSearchTime=2000
opção para indicar o número de milissegundos que você deseja aguardar que a pesquisa de pacote retorne uma correspondência. Acho que o padrão de 2 segundos não é longo o suficiente para retornar quaisquer correspondências e apenas causa um atraso indesejado quando você digita um erro de digitação.Aumente o número
MaxSearchTime
para fornecer uma saída útil ou desativeSoftwareSourceSearch
para eliminar completamente o atraso.fonte