Wie Sie vielleicht bereits wissen, erhalten wir beim Ausführen eines nicht verfügbaren oder nicht erkannten Befehls unter Linux eine Fehlermeldung - "bash:command not found" . Das Problem ist, dass einige von uns nicht wissen, welche Pakete diesen bestimmten Befehl enthalten. Nicht mehr! Heute bin ich auf ein nützliches Dienstprogramm namens "command-not-found" gestoßen das hilft Ihnen, indem es die Installation von Paketen vorschlägt, wenn ein nicht verfügbarer Befehl ausgeführt wird.
Angenommen, Sie möchten einen Befehl namens „leafpad“ ausführen, der in Ihrem Linux-System nicht verfügbar ist. Sie sind sich nicht sicher, welches Paket diesen Befehl bereitstellt. Hier kommt das Hilfsprogramm "command-not-found" ins Spiel.
Es durchsucht automatisch die offiziellen Repositorys, wenn ein nicht erkannter oder nicht verfügbarer Befehl eingegeben wird. Es verwendet einen Cache mit vorhandenen Programmen und den zugehörigen Paketen, um Benutzer bei ihrer täglichen Befehlszeilenarbeit zu unterstützen.
Installieren Sie das Dienstprogramm "Befehl nicht gefunden" unter Linux
Das Dienstprogramm command-not-found ist in AUR verfügbar. Sie können es also mit Hilfe von AUR-Helfern wie Paru installieren oder Juhu.
$ paru -S command-not-found
Oder,
$ yay -S command-not-found
Auch pkgfile Paket stellt den Hook „Befehl nicht gefunden“ bereit. Installieren Sie einfach pkgfile, um das Dienstprogramm "Befehl nicht gefunden" zu verwenden.
$ sudo pacman -S pkgfile
Bearbeiten Sie nach der Installation Ihre .bashrc Datei:
$ vi ~/.bashrc
Fügen Sie am Ende die folgende Zeile hinzu, um sie zu aktivieren.
source /usr/share/doc/pkgfile/command-not-found.bash
Aktualisieren Sie die vorgenommenen Änderungen mit dem Befehl:
$ source ~/.bashrc
Auf Ubuntu und seinen Derivaten ist es vorinstalliert.
Falls es noch nicht installiert ist, können Sie es wie folgt installieren.
$ sudo apt-get update $ sudo apt-get install command-not-found
Installation von Paketen vorschlagen, wenn ein nicht verfügbarer Befehl ausgeführt wird
Führen Sie jetzt einen nicht verfügbaren Befehl aus, zum Beispiel leafpad :
Es wird Ihnen vorgeschlagen, welches Paket diesen Befehl bereitstellt. Hier ist die Ausgabe meines Arch-Linux-Systems.
$ leafpad leafpad may be found in the following packages: extra/leafpad 0.8.18.1-5 /usr/bin/leafpad
Wie Sie in der obigen Ausgabe sehen, wird der Befehl „leafpad“ vom Paket leafpad-0.8.18.1-5 bereitgestellt.
Lassen Sie uns einen anderen Befehl auf Ubuntu versuchen:
$ emacs The program 'emacs' can be found in the following packages: * emacs24 * emacs24-nox * e3 * emacs23 * emacs23-lucid * emacs23-nox * emacs24-lucid * jove Try: sudo apt-get install <selected package>
Dies ist nur ein Beispiel. Dieses Dienstprogramm schlägt die Installation von Paketen vor, wenn Sie einen nicht verfügbaren Befehl ausführen. Sobald Sie dieses Dienstprogramm entfernt haben, schlägt es nichts mehr vor. Es zeigt lediglich eine Ausgabe wie unten an.
"bash: emacs: command not found"
Hoffe das hilft.