Changez le programme Ubuntu qui s'exécute lorsqu'une commande ne peut être trouvée

Lorsque je tape une commande non trouvée dans un PATH dans ubuntu, j'obtiens quelque chose comme ceci:

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

Je crois que c'est un script qui recherche les archives APT et suggère un package d'installation. Je voudrais le changer afin qu'il me propose de le télécharger en appuyant sur un 'y'. Deux questions:

1) Où se trouve le fichier?

2) Si je viens d'ajouter la ligne d'installation de manière banale, je vais me plaindre que je ne suis pas une racine et échouerai (parce que rdesktop était utilisé comme un utilisateur banal). Comment puis-je demander un mot de passe et l'utiliser pour obtenir un accès root?

    Lorsque bash rencontre une commande qu'il ne peut pas trouver, il recherche une fonction appelée command_not_found_handle () et l'exécute.

    Sous ubuntu, cela est défini dans /etc/bash.bashrc

    Par défaut, il exécute un script Python dans /usr/lib/command-not-found

    Vous pourriez faire faire ce que vous avez aimé, et cela est mieux fait dans votre propre fichier ~/.bashrc :

      command_not_found_handle() { echo -n "Do you want to install $1? [N/y] " read -N 1 REPLY echo if [[ $REPLY == [Yy] ]]; then sudo apt-get install -- "$1" fi } 

    La partie sudo répond à la section partie de votre question, mais il faudra évidemment demander un mot de passe pour passer à la racine pour effectuer l'installation.