resposta do muru está certa de que o pacote é chamado command-not-found
. Ele basicamente fornece um python
script /usr/lib/command-not-found
que realmente faz o trabalho principal.
Mas as mensagens que você recebe no Ubuntu são definidas por uma função que explora as propriedades de command-not-found
. É chamado command_not_found_handle
e reside em /etc/bash.bashrc
.
$ type -a command_not_found_handle
command_not_found_handle is a function
command_not_found_handle ()
{
if [ -x /usr/lib/command-not-found ]; then
/usr/lib/command-not-found -- "";
return $?;
else
if [ -x /usr/share/command-not-found/command-not-found ]; then
/usr/share/command-not-found/command-not-found -- "";
return $?;
else
printf "%s: command not found\n" "" 1>&2;
return 127;
fi;
fi
}
Por causa da função acima, recebemos diferentes mensagens de erro em diferentes casos:
$ svn
The program 'svn' is currently not installed. You can install it by typing:
sudo apt-get install subversion
$ foobar
foobar: command not found
Deixa a verificação:
$ /usr/lib/command-not-found svn
The program 'svn' is currently not installed. You can install it by typing:
sudo apt-get install subversion
$ /usr/lib/command-not-found foobar
foobar: command not found
Como você não tem o pacote command-not-found
habilitado, você está basicamente satisfazendo o seguinte snippet da função command_not_found_handle
sempre:
printf "%s: command not found\n" "" 1>&2;
return 127;
Por isso, você sempre recebe o seguinte:
$ svn
svn: command not found
$ foobar
foobar: command not found
Em poucas palavras, você pode instalar o pacote command-not-found
e adicionar a função (se já não estiver lá) mencionada acima ao arquivo /etc/bash.bashrc
(para todos os usuários) ou ~/.bashrc
(somente para você). / p>