Im Algemeinen
Das Linux Journal hat einen ziemlich guten Artikel:
Von der Manpage von bash:
... Eine vollständige Suche der Verzeichnisse in PATH wird nur durchgeführt, wenn der Befehl nicht in der Hashtabelle gefunden wird. Wenn die Suche nicht erfolgreich ist, sucht die Shell nach einer definierten Shell-Funktion namens "command_not_found_handle". Wenn diese Funktion vorhanden ist, wird sie mit dem ursprünglichen Befehl und den Argumenten des ursprünglichen Befehls als Argument aufgerufen, und der Exitstatus der Funktion wird zum Exitstatus der Shell. Wenn diese Funktion nicht definiert ist, gibt die Shell eine Fehlermeldung aus und gibt den Beendigungsstatus 127 zurück.
und
Ein kurzer grep in / etc entdeckte, wo es geschah. Die Funktion selbst befindet sich in / etc / bash_command_not_found und diese Funktion wird (sofern vorhanden) über /etc/bash.bashrc in Ihre Bash-Session aufgenommen.
Ubuntu 14.04
Empirische Beweise legen nahe, dass auf einer Ubuntu 14.04-Installation die Datei / etc / bash_command_not_found nicht vorhanden ist. Die korrekte Datei ist jedoch ein Python-Skript unter / usr / lib / command-not-found