command-not-found

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. ⚓︎ Installation von Programmen

  2. ⚓︎ Bearbeiten von Paketquellen

  3. ⚓︎ Ein Terminal öffnen

  4. ⚓︎ Einen Editor öffnen

Inhaltsverzeichnis
  1. Installation
  2. Nutzung
  3. Problembehebung
  4. Links

Wiki/Icons/terminal.png command-not-found ist ein kleines Hilfsprogramm für die Kommandozeile. Ruft man ein nicht-installiertes Programm auf, so macht command-not-found Vorschläge, welches/welche Paket/Pakete hierfür installiert werden müssten.

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 unter Ubuntu 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 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.

Installation

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

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 

auf, so erhält man folgende Meldung:

Der Befehl »mplayer« wurde nicht gefunden, meinten Sie vielleicht:
 Befehl »kplayer« aus dem Paket »kplayer« (multiverse)
 Befehl »mplayer« aus dem Paket »mplayer« (universe)
 Befehl »mplayer« aus dem Paket »mplayer2« (universe)
mplayer: Befehl nicht gefunden.

Je nach verwendeter Ubuntu-Version kann die Ausgabe eventuell auch leicht anders sein. Ein weiteres Beispiel (gemeint war aplay)

bplay 
Die Anwendung »bplay« ist momentan nicht installiert.  Sie können sie durch folgende Eingabe installieren:
sudo apt-get install bplay

Problembehebung

Deaktivieren

Durch command-not-found entsteht 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 eine spürbare Verzögerung. Will man diese Verzögerung vermeiden, so deinstalliert [1] man am besten das Paket

Danach wird command-not-found automatisch nicht mehr genutzt und falsch geschriebene Befehle werden sofort mit einem "command not found" quittiert, 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 systemweit (für alle Benutzer) in die /etc/zshrc oder für einen einzelnen Benutzer in die jeweilige ~/.zshrc eingetragen werden.