[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis(1)]] [[Bild(Wiki/Icons/terminal.png, 48, align=left)]] '''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 * '''command-not-found''' 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] {{{#!vorlage Befehl 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 [:ALSA#aplay:aplay]) {{{#!vorlage Befehl 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 * '''command-not-found''' 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 [:Zsh: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. = Links = * [ubuntu:CommandNotFoundMagic:CommandNotFound im englischen Ubuntu-Wiki] {en} * [launchpad:ubuntu/+spec/command-not-found-magic:Launchpad-Eintrag] - {en} * [github:zyga/command-not-found:Quellcode] {en} * [:Shell/Befehlsübersicht:] - Übersicht über verschiedene Shellbefehle # tag: Einsteiger, Shell, Python