GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Befehl nicht in Bash gefunden behoben

Jeder Systemadministrator bekam mindestens einmal diesen Fehler in einer Shell:„bash :command not found „.

Sie waren sich jedoch ziemlich sicher, dass Sie den Befehl richtig geschrieben oder das Tool installiert haben, das Sie tatsächlich ausführen möchten.

Warum erhalten Sie diesen Fehler?

Die Meldung „bash :command not found ” Fehler kann aus verschiedenen Gründen auftreten, wenn Befehle in einem Bash-Terminal ausgeführt werden.

Heute werfen wir einen Blick auf die verschiedenen Möglichkeiten, um das Problem „Befehl nicht gefunden“ zu lösen ” Fehler in Bash.

Bash &PATH-Konzepte

Bevor Sie mit der Lösung beginnen, ist es wichtig, sich ein paar Gedanken darüber zu machen, was die PATH-Umgebungsvariable ist ist und wie es mit den von Ihnen ausgeführten Befehlen zusammenhängt.

PATH ist eine Umgebungsvariable, die die verschiedenen Verzeichnisse auflistet, die Ihr Bash-Terminal besucht, um Dienstprogramme auf Ihrem System zu finden.

Um einen Blick auf Ihre PATH-Umgebungsvariable zu werfen, verwenden Sie einfach die „echo “-Befehl mit dem PATH Variable.

$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Wie Sie sehen können, wird PATH durch eine Liste verschiedener Systempfade definiert, die durch Doppelpunkte getrennt sind.

Dies sind die verschiedenen Pfade, die mein Interpreter besucht, um Befehle auszuführen.

Wenn ich einen Eintrag aus dem PATH entfernen oder den PATH insgesamt entfernen würde, könnten Sie keine Befehle in der Bash ausführen, ohne den vollständigen Pfad zur Binärdatei anzugeben.

Es ist wichtig, diesen Punkt zu verstehen, da das Nichtausführen eines Befehls nicht bedeutet, dass Ihre Binärdatei auf dem System gelöscht wurde.

Nachdem Sie nun verstanden haben, wie Umgebungsvariablen mit Ihrem Bash-Interpreter zusammenhängen, sehen wir uns an, wie Sie Ihren Fehler beheben können.

Überprüfen Sie, ob die Datei auf dem System vorhanden ist

Der erste Schritt zur Behebung dieses Fehlers besteht darin, zu überprüfen, ob der gesuchte Befehl tatsächlich auf dem System vorhanden ist.

Es bringt wirklich nichts weiter, wenn Sie den Befehl falsch geschrieben oder gar nicht installiert haben.

Nehmen wir zum Beispiel an, dass Sie die Datei „ls“ nicht ausführen können " Befehl.

Überprüfen Sie, ob die Binärdatei tatsächlich existiert, indem Sie auf dem System nach der Binärdatei suchen.

$ /usr/bin/find / -name ls 2> /dev/null

/bin/ls
/usr/lib/klibc/bin/ls

Mit dem find-Befehl können Sie die Binärdatei zusammen mit dem Verzeichnis, in dem sie gespeichert ist, finden.

Es ist ziemlich wichtig, weil wir diesen Pfad zu unserer PATH-Umgebungsvariable hinzufügen müssen später.

Überprüfen Sie Ihre PATH-Umgebungsvariable

Meistens werden Sie auf „bash :command not found“ stoßen ” nachdem Sie Ihre PATH-Umgebung geändert haben, um neue Einträge hinzuzufügen.

Überprüfen Sie zunächst, ob der Pfad, nach dem Sie zuvor gesucht haben, in Ihrer PATH-Umgebungsvariable aufgeführt ist.

$ echo $PATH

/home/user/custom:/home/user

Wie Sie hier sehen können, ist das Verzeichnis „/bin“ nicht in meiner Umgebungsvariable PATH aufgelistet.

Standardmäßig ist der PATH in der Datei „/etc/environment“ für alle Benutzer des Systems definiert.

Wenn sich Ihre PATH-Umgebungsvariable von der in der Umgebungsdatei definierten unterscheidet, liegt das daran, dass Sie PATH überschrieben haben.

Jetzt haben Sie zwei Möglichkeiten:Entweder Sie wissen, wohin Sie die PATH-Variable exportiert haben, oder Sie wissen es nicht.

Ihre Profilskripte reparieren:bashrc, bash_profile

In den meisten Fällen haben Sie die .bashrc geändert oder das .bash_profile Datei, um Ihre PATH-Überschreibung hinzuzufügen.

Um zu suchen, wohin Sie Ihren PATH exportiert haben , führen Sie den folgenden Befehl aus

$ /usr/bin/grep -rn --color "export PATH" ~/. 2> /dev/null

./.bashrc:121:export PATH="/home/devconnected"

Dieser Befehl gibt die Datei zurück, in die der PATH exportiert wurde, sowie die Zeilennummer.

Bearbeiten Sie diese Datei und fügen Sie den Pfad aus dem ersten Abschnitt zur Exportanweisung hinzu.

$ nano /home/user/.bashrc

export PATH="/home/devconnected:/bin"

Speichern Sie Ihre Datei und beenden Sie den Nano-Editor.

Damit die Änderungen angewendet werden, müssen Sie Ihr aktuelles Bash-Terminal beziehen.

Dadurch wird sichergestellt, dass die .bashrc-Datei erneut im aktuellen Shell-Terminal ausgeführt wird.

$ source .bashrc

Warum können Sie source ausführen, ohne den vollständigen Pfad angeben zu müssen?

Weil „source“ ein in die Shell integrierter Befehl ist .

Versuchen Sie beispielsweise, „Builtin Source .bashrc“ auszuführen

Jetzt können Sie versuchen, den zuvor fehlgeschlagenen Befehl auszuführen.

$ ls

file  devconnected  file2  directory1  swap file3

Großartig !

Sie haben den Fehler „bash :command not found“ behoben ” Fehler unter Linux!

Setzen Sie die Umgebungsvariable PATH ordnungsgemäß zurück

Selbst wenn Sie Ihr Problem lösen, müssen Sie Ihre PATH-Umgebungsvariable richtig definieren, wenn Sie Ihre bashrc-Datei nicht ständig ändern möchten.

Sehen Sie sich zuerst die PATH-Variable an, die in der Datei „/etc/environment“ definiert ist.

$ cat /etc/environment

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

Um Ihre PATH-Umgebungsvariable in Ihrer Umgebung zurückzusetzen, exportieren Sie den in der Umgebungsdatei definierten PATH.

$ export=PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

Ändern Sie nun Ihre .bashrc-Datei, aber verwenden Sie die $PATH-Syntax, um Ihre Pfade an die vorhandene PATH-Variable anzuhängen.

$ sudo nano ~/.bashrc

export PATH="$PATH:/home/devconnected"

Beenden Sie die Datei und beziehen Sie Ihre bashrc-Datei auf die anzuwendenden Änderungen.

$ source ~/.bashrc

$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/home/devconnected

Großartig !

Sie haben Ihre PATH-Umgebungsvariable erfolgreich zurückgesetzt, Sie sollten nicht die Meldung „bash :command not found“ erhalten ” Fehler mehr.

Führen Sie den Befehl als sudo aus

In einigen Fällen ist Ihre PATH-Umgebungsvariable möglicherweise perfekt konfiguriert, aber Sie müssen den Befehl als sudo ausführen.

Möglicherweise erhalten Sie diesen Fehler oder nur eine einfache „Berechtigung verweigert ” Fehler.

Stellen Sie in jedem Fall zuerst sicher, dass Sie sudo-Rechte mit dem sudo-Befehl haben.

$ sudo -l

User user may run the following commands on ubuntu:
    (ALL : ALL) ALL

Wenn dies der Fall ist, sollten Sie Ihren Befehl als sudo ausführen können.

$ sudo <command>

Herzlichen Glückwunsch !

Sie haben das Problem „bash :command not found“ gelöst ” Fehler auf Ihrem System.

Überprüfen Sie, ob das Paket korrekt installiert ist

In einigen Fällen denken Sie, dass Ihr Befehl installiert ist, aber Sie haben den Befehl nicht von Anfang an installiert.

Nehmen wir zum Beispiel an, Sie möchten die Datei „htop“ ausführen ” Befehl, aber Sie können ihn nicht ausführen.

$ htop

bash : Command 'htop' not found

Um zu überprüfen, ob der Befehl je nach Distribution korrekt installiert ist, führen Sie die folgenden Befehle aus.

$ dkpg -s htop     [Ubuntu/Debian]

dpkg-query: package 'htop' is not installed and no information is available
Use dpkg --info (= dpkg-deb --info) to examine archive files,
and dpkg --contents (= dpkg-deb --contents) to list their contents.

$ rpm -qa | grep htop    [CentOS/RHEL]

In jedem Fall müssen Sie den Befehl installieren, wenn Sie ihn ordnungsgemäß ausführen möchten.

$ sudo apt-get install htop   [Ubuntu/Debian]

$ sudo yum install htop       [CentOS/RHEL]

Jetzt können Sie versuchen, den fehlenden Befehl auszuführen.

$ htop

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie das berühmte „bash :command not found“ lösen können ” Fehler, auf den viele Systemadministratoren jeden Tag stoßen.

Wenn Sie Ihr Problem mit einer Lösung lösen, die nicht ist wie im Artikel beschrieben, hinterlassen Sie bitte einen Kommentar, um anderen Administratoren zu helfen.

Wenn Sie sich für die Linux-Systemadministration interessieren, haben wir auf der Website einen eigenen Abschnitt dafür, also schauen Sie sich das unbedingt an.


Linux
  1. Subscription-Manager:Befehl nicht gefunden

  2. dnf:Befehl nicht gefunden

  3. id:Befehl nicht gefunden

  4. w:Befehl nicht gefunden

  5. df:Befehl nicht gefunden

Fehlerbehebung „Bash:Command Not Found“-Fehler in Linux

nc:Befehl nicht gefunden

aws-shell:Befehl nicht gefunden

ln:Befehl nicht gefunden

Postgresql -bash:psql:Befehl nicht gefunden

bash - make-Befehl nicht gefunden