command-not-found

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

command-not-found ist ein kleines Hilfsprogramm für das Terminal. Ruft man ein nicht-installiertes Programm (oder allgemeiner: Paket) auf, so macht command-not-found Vorschläge, welches/welche Paket/Pakete hierfür installiert werden müssten.

Funktionsprinzip

In der Bash gibt es eine Funktion (command_not_found_handle), die immer dann aufgerufen wird, wenn ein Befehl nicht gefunden wurde. Diese Funktion ist so definiert, dass das Python-Skript command-not-found aufgerufen wird und dann beispielsweise alle Pakete anzeigt, über die der nicht gefundene Befehl installierbar ist. Dies kann insbesonders auch dann hilfreich sein, wenn sich ein Paket aus Fremdquellen über nicht erfüllte Abhängigkeiten beschwert.

command-not-found greift auf eine eigene Datenbank zurück, die weitestgehend (aber nicht nur) auf den offiziellen Ubuntu-Paketquellen basiert. Die Datenbank ist dabei erweiterbar.

Installation

command-not-found gehört zur Standardinstallation, kann ansonsten aber auch über das Paket

  • command-not-found

Wiki/Vorlagen/Installbutton/button.png

installiert [1] werden.

Nutzung

Wie oben bereits erwähnt, braucht man command-not-found nicht extra aufzurufen, es tritt bei Bedarf von alleine in Aktion.

Beispiel

Der MPlayer ist nicht installiert. Ruft man im Terminal [3]

mplayer 

trotzdem auf, so erhält man folgende Meldung:

The programm 'mplayer' can be found in the following packages:
* mplayer-gui
* mplayer
Try: sudo apt-get install <selected-package>
Make sure you have the 'multiverse' component enabled
bash: mplayer: command not found

Je nach verwendeter Ubuntu-Version kann die Ausgabe eventuell auch leicht anders sein.

Deaktivieren

Durch command-not-found ensteht eine kurze Verzögerung nachdem man einen unbekannten Befehl eingegeben hat. Dies beruht darauf, dass das Durchsuchen der Datenbank von command-not-found einen kurzen Moment benötigt. Gerade bei langsameren Systemen erfolgt dadurch jedoch eine spürbare Verzögerung. Sollte man diese Verzögerung vermeiden wollen, so deinstalliert [1] man am besten das Paket

  • command-not-found

Danach wird command-not-found automatisch nicht mehr genutzt und falsch geschriebene Befehle werden sofort mit einem "command not found" quitiert ohne weitere Hinweise zu geben.

Eine zweite Möglichkeit zur Deaktivierung ist es, die Funktion command_not_found_handle anders zu definieren.

Zsh

Um command-not-found auch in der Z-Shell nutzen zu können, muss der Inhalt der Datei /etc/zsh_command_not_found für alle Benutzer in die /etc/zshrc oder für einen einzelnen Benutzer in die jeweilige ~/.zshrc eingetragen werden.

  • Ubuntu Wiki - {en} Eintrag im Englischen Ubuntu Wiki für command-not-found

  • Launchpad - {en} Launchpad-Eintrag für command-not-found

Diese Revision wurde am 29. Dezember 2011 um 01:07 Uhr von ubot erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Einsteiger, Shell, Python

Passwort vergessen?