Comment enseigner quelques mots de malédiction à Ubuntu?

Quand bash rencontre une commande inconnue (mot?), Il fait ceci:

The program 'hello' can be found in the following packages: * hello * hello-debhelper Try: sudo apt-get install  

Ce que je voudrais savoir, c’est comment procéder afin que je puisse l’éditer ou append quelque chose avant de vérifier le mot inconnu dans un dictionnaire maison qui aurait pour expression: des paires de réponses pouvant ensuite être envoyées à la sortie.

Je suis coupable de ne pas en avoir assez cherché… mais les quelques guides de bêtise que j’ai essayés de déterrer n’avaient rien à ce sujet. Peut-être que je regarde les mauvais endroits .. des pointeurs?

Et oui, je le fais donc chaque fois que je tape wtf quand un programme échoue, je veux que quelque chose de gentil me soit renvoyé …

Recherchez dans la /etc/bash.bashrc la définition de la fonction command_not_found_handle .

Si vous souhaitez supprimer ce comportement, mettez-le dans votre .bashrc

 [[ $(type -t command_not_found_handle) = "function" ]] && unset -f command_not_found_handle 

Si vous voulez personnaliser, vous pouvez faire

 # see http://stackoverflow.com/questions/1203583/how-do-i-rename-a-bash-function alias_function() { eval "${1}() $(declare -f ${2} | sed 1d)" } alias_function orig_command_not_found_handle command_not_found_handle command_not_found_handle() { command=$1 shift args=( "$@" ) do your stuff before orig_command_not_found_handle "$command" "${args[@]}" do your stuff after } 

Cela pourrait être potentiellement utile …

Le paquet commande-non-trouvé est ce qui vous donne la réponse magique. Je ne sais pas s’il est possible de le personnaliser, mais cela vaut peut-être le coup d’oeil.

Une autre option consiste à append un alias à votre fichier .bashrc qui permet d’imprimer un message à chaque fois que vous tapez ‘wtf’ ou quelque chose comme ça:

 alias wtf='echo "chill out man"' 

Ajoutez ceci à votre fichier ~ / .bashrc, puis faites: source $HOME/.bashrc

Cela ne ferait alors qu’imprimer un message chaque fois que vous tapez wtf dans votre terminal. Vous pouvez également faire en sorte que cet alias appelle un script qui imprime un message plus détaillé ou quelque chose de similaire. Les possibilités sont infinies!

Ce comportement est défini dans le fichier de configuration Bash du système, /etc/bash.bashrc :

 # if the command-not-found package is installed, use it if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found ]; then function command_not_found_handle { # check because cnf could've been removed in the meantime if [ -x /usr/lib/command-not-found ]; then /usr/bin/python /usr/lib/command-not-found -- "$1" return $? elif [ -x /usr/share/command-not-found ]; then /usr/bin/python /usr/share/command-not-found -- "$1" return $? else return 127 fi } fi 

Pour le personnaliser, remplacez simplement cette fonction dans votre propre ~/.bashrc :

 function command_not_found_handle { echo "Sorry, smotchkiss, try again." } 

@ user606723, si vous souhaitez vous débarrasser de ce comportement dans son intégralité:

 sudo apt-get remove command-not-found command-not-found-data 

Si cela ne fonctionne pas, essayez ceci:

 sudo apt-get purge command-not-found command-not-found-data 

Si vous voulez récupérer le comportement:

 sudo apt-get install command-not-found