Setzen Sie Ihren Pfad jetzt zurück (dh vor jeder Art von Abmeldung) mit:
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Ihr vollständiger Pfad wird nicht wiederhergestellt, aber die grundlegenden Dienstprogramme sind wieder verfügbar.
Hier ist ein Beispiel für die Art der Dinge, die passieren:
Sie hatten eine PATH-Variable (beim Lesen als $ PATH bezeichnet)
Etwas wie:
$ echo $PATH
/home/durrantm/.rvm/gems/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/gems/ruby-2.0.0-p247@global/bin:/home/durrantm/.rvm/rubies/ruby-2.0.0-p247/bin:/home/durrantm/.rvm/bin:/h
ome/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:/home/durrantm/.autojump/bin:/usr/local/heroku/bin:
/home/durrantm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/durrantm/.rvm/bin:/home/durrantm/.rvm/bin:/home/durrantm
/.rvm/bin
Sie haben versucht, etwas hinzuzufügen, aber Sie haben es versehentlich verwendet
PATH=PATH:other_dir
anstatt
PATH=$PATH:other_dir
und das Ergebnis war, dass dein Weg wurde
PATH:other_dir
und dann funktionieren alle Dienstprogramme wie ls und sed nicht
Sie können den minimalen Satz durch Ausführen korrigieren
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Dies ist besonders nützlich, wenn eine Login- Punktdatei Ihren PATH durcheinander bringt. Überprüfen Sie Ihre .bashrc- und / oder .bash_profile-Dateien auf PATH-Änderungen.
Wie Greg sagt, können Sie sich auch einfach abmelden (oder sicherer, ein neues Fenster öffnen, falls das Öffnen eines neuen Fensters nicht funktioniert!) Und dann $ PATH aus einem neuen Fenster wiedergeben.
Das gleiche passiert, wenn Sie path=
keine Werte verwenden. Es "löscht" Ihren aktuellen Pfad und verursacht diese Probleme. Starker Text
Was , warum , wenn Sie diese Probleme cd funktioniert und ls haben nicht funktioniert:
cd
ist ein "eingebauter" Befehl, der Ihren PATH nicht benötigt, um das Programm zu finden
ls
ist ein Programm und muss PATH verwenden, um herauszufinden, wo es sich befindet.
Sie können dies sehen mit:
$ builtin ls
-bash: builtin: ls: not a shell builtin
14:47:29 mdurrant C02MH2DQFD58 /Users/mdurrant
$ builtin cd
14:47:31 mdurrant C02MH2DQFD58 /Users/mdurrant
$
Kein Fehler bedeutet, dass der Befehl integriert ist
Vor dem Weitergehen (oder Abmelden) ...
Stellen Sie sicher, dass Sie alle Änderungen testen ( insbesondere diejenigen an .bashrc, .profile usw., die PATH-Einstellungsbefehle ausführen), indem Sie ein neues Fenster öffnen oder source ~ / .bash_profile ausführen, um es auszuführen. Es wird auch empfohlen, das Fenster und den Editor (wenn Sie die Datei .bash_profile ändern) geöffnet zu lassen, falls Ihre Änderungen nicht funktionieren, und Sie daran zu hindern, neue Fenster zum Bearbeiten der Datei zu öffnen. Sie können jedoch weiterhin TextEdit oder einen anderen einfachen Editor verwenden, um die Datei zu ändern (z. B. ohne Befehlszeile und vi). Achten Sie darauf, NICHT neu zu starten, wenn Ihre Shell defekt ist oder Sie sich möglicherweise nicht einmal anmelden können. und das ist wirklich sehr, sehr schlecht (ohne dass ein anderer Account su
von dir abgespritzt wird). Ist mir passiert!
Mein 'Extra Account'-Fix war damals aber auch ein Lebensretter und für alle sehr zu empfehlen (mach es jetzt!)