"-Bash: ls: Befehl nicht gefunden"


30

Ich habe das neueste Update für OS X Lion (10.7) installiert. Danach erkennt mein Terminal keine normalen Befehle mehr. Ich tippte lsund bekam:

-bash: ls: command not found

Ich dachte, ich würde versuchen, "usr / bin" zu meinem Pfad hinzuzufügen, aber ich kann ".bash_profile" nicht finden, um es zu bearbeiten, da die Eingabe edit .bash_profilenicht funktioniert. Ich kann den Finder nicht so einstellen, dass alle Dateien angezeigt werden, da mein Terminal die dazu erforderlichen Befehle nicht erkennt.

was muss ich tun?


2
Lassen Sie uns einen Pfad finden und sehen, was herauskommt. export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binFügen Sie den dunklen Teil ein (oder tippen Sie ihn SEHR VORSICHTIG ein) - da zwei Befehle fehlen - hat etwas Ihren Weg gestört. Bevor Sie etwas Großes tun, ist es möglicherweise ratsam, ein Backup zu erstellen.
bmike

1
@bmike danke! hat das zu .bash_profile hinzugefügt und alles funktioniert jetzt. musste .bash_profile so öffnen: Gib /usr/bin/vi ~/.bash_profiledas als Antwort und ich kann akzeptieren!
LuxuryMode

Antworten:


42

Da bei zwei Befehlen etwas fehlt, "stampft" Ihr Weg.

Bevor Sie etwas Großes tun, ist es möglicherweise ratsam, ein Backup zu erstellen.

Der Standardpfad unter Mac OS X 10.7 (Lion) sieht ungefähr so ​​aus:

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Wenn Sie den Pfad zurücksetzen, indem Sie das Obige in ein Shell-Fenster eingeben, und es dann eingeben export PATH, sollte das eine Fenster behoben werden.

So können Sie dort beginnen und sehen, was sonst noch nicht stimmt, und es in Ihren Startpunktdateien oder an einer anderen Stelle beheben, an der es definiert wird.

Dieser Bruch muss fast immer in Ihren Punktedateien behoben werden. Zum Bash, Bearbeiten und Korrigieren .bash_profileund / oder .bashrcRückgängigmachen einer kürzlich vorgenommenen Änderung wird nur der $ PATH festgelegt, den Sie erneut benötigen. Der übliche Fehler besteht darin, einen neuen Pfad zuzuweisen und sich nicht auf den vorherigen Wert der Variablen auf der rechten Seite des = zu beziehen


2
Für mich ist dies eine vorübergehende Lösung.
Etienne Low-Décarie

2
Vielen Dank! Ich verzog ein wenig, wenn lsnicht nach der Aktualisierung nicht funktioniert .bash_profile😂
Adrian

Ja @Adrian ein Syntaxfehler oder leer PATH kann starke Angst verursachen 😅🤭🤬🔥
bmike

Dies gab eine vorübergehende Lösung. Ich musste alle Schritte wiederholen, nachdem ich CMD
Pawan

Dies funktioniert immer noch für Mac OS 10.14.3
Stephen Romero

11

Dies sollte das Problem vollständig und dauerhaft beheben.

Exportieren Sie zunächst die Umgebungspfade mithilfe des folgenden Befehls im Terminal.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/b‌​in

Jetzt haben Sie die gewünschten Befehle. (z. B. versuchen lsSie es . Sie werden sehen, dass der Befehl funktioniert). Dies gilt jedoch nur für die aktuelle Sitzung. Wenn Sie das Terminal schließen und ein neues öffnen, haben Sie die vorherige Ausgabe. Verwenden Sie den folgenden Befehl, um diese Änderung dauerhaft zu machen:

Gehe zum Home-Verzeichnis

cd ~

öffne die .bash_profile Datei in nano / vim (ich benutze hier nano)

nano .bash_profile

Dies öffnet den Nano Editor. Fügen Sie in einer neuen Zeile Folgendes ein:

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:$PATH

drücke 'control' + 'o' um zu speichern (WriteOut) und 'control' + 'x' um nano zu verlassen.

Alles erledigt ! Probieren Sie nun die Befehle aus.


3

Es hört sich für mich so an, als würde /etc/profilees beim Starten der Shell nicht ausgeführt. Dies ist die globale Startdatei, die für die Initialisierung von PATH verantwortlich ist. Überprüfen Sie /etc/profilemit dem folgenden Befehl, ob vorhanden und lesbar und ausführbar ist:

. /etc/profile

Wenn es nicht vorhanden ist, müssen Sie es von einem Backup oder einem anderen Computer mit installiertem Lion wiederherstellen oder Lion erneut installieren. Wenn es vorhanden, aber nicht ausführbar ist, versuchen Sie, mit dem Festplatten-Dienstprogramm die Festplattenberechtigungen zu reparieren.

Wenn es existiert und ausführbar ist (und Code enthält), wird es möglicherweise nicht ausgeführt, wenn es ausgeführt werden soll, oder Ihr Startskript überschreibt es möglicherweise. Um dieses Problem zu umgehen, versuchen Sie, es . /etc/profileam Anfang Ihres Programms zu platzieren, um ~/.bash_profilesicherzustellen, dass es ausgeführt wird. Wenn das Problem weiterhin auftritt, fügen Sie es echo $PATHnach dem Ausführen hinzu, um zu überprüfen, ob PATH ordnungsgemäß initialisiert wurde. Wenn ja, wird es durch etwas in Ihrem Skript geändert.

Hier ist der Standardinhalt von /etc/profile:

# System-wide .profile for sh(1)

if [ -x /usr/libexec/path_helper ]; then
    eval `/usr/libexec/path_helper -s`
fi

if [ "${BASH-no}" != "no" ]; then
    [ -r /etc/bashrc ] && . /etc/bashrc
fi

path_helpererstellt den Standardpfad. Du könntest versuchen zu rennen

unset PATH; /usr/libexec/path_helper -s

um zu sehen, was es produziert.

In jedem Fall wenden Sie sich an den Apple-Support unter http://www.apple.com/de/support/contact/ , wenn das Problem nicht in Ihren Startskripten liegt, oder melden Sie einen Fehler unter https://bugreport.apple.com Ich möchte Apple über ein Problem informieren.


unset PATH; /usr/libexec/path_helper -szeigt mir PFAD, der nicht in meinem enthalten ist /etc/profile. Irgendwelche Vorschläge?
Etienne Low-Décarie

Laufen . /etc/profilebehebt vorübergehend das Problem. Ich habe oben in meine eingefügt ~/.bash_profile, aber es scheint, dass dies auch nicht ausgeführt wird.
Etienne Low-Décarie

1
Überprüfen Sie die bash-Manpage auf die vollständige Liste der Startdateien und die Reihenfolge, in der sie durchsucht werden. Wenn Sie eine Anmeldedatei haben, hat diese beispielsweise Vorrang vor dem Profil. Suchen Sie nach anderen Startdateien.
Chris Seite

1

Um zu überprüfen, ob es sich tatsächlich um ein Problem mit Ihrem Pfad handelt, was ist das Ergebnis /bin/ls?

Wenn es funktioniert, als Sie Ihren Pfad wiederherstellen sollten, können /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/binSie zum Beispiel VIdessen Pfad (auf meinem Mac) verwenden /usr/bin/vi.


0

Ich dachte daran, den Fehler zu teilen, der mich zu diesem Fehler geführt hat - zumindest in meinem Fall,

Wenn ich einen neuen hinzugefügt PATHin ~/.bash_profile, ich vergaß hinzuzufügen , :$PATHam Ende des Weges , dass ich gerade hinzugefügt habe.

Ich habe das temporäre Update (den folgenden Befehl im Terminal) verwendet, auf das die Master hier bereits hingewiesen haben, um zu bash_profile zurückzukehren, da ich vi-Befehle nicht verwenden konnte, um es überhaupt zu öffnen.

export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

Sobald ich einstieg, behebte ich meinen Fehler.

(Negative Daten sind wichtig!)


-1

Ich habe versucht, meinen Maven-Pfad auf Envoronment-Variablen zu setzen, als dies passierte. Also habe ich einfach meine .profile- und .bash_profile-Datei in den Papierkorb verschoben und es erneut versucht und es hat funktioniert.


-1

Das Zurücksetzen Ihres Terminals funktioniert. Dadurch werden Ihre Grundkonfigurationen zurückgesetzt.

Setzen Sie Ihr Terminal zurück. Gehen Sie von der oberen Navigation zu Shell >> Zurücksetzen.

Bildbeschreibung hier eingeben


1
Wie kann ein Problem durch Zurücksetzen des Terminals behoben werden bash?
Nohillside

-2

Ihre PATH-Variable ist anscheinend beschädigt. Überprüfen Sie, ob Sie die PATH-Variable in Ihrem Skript möglicherweise ändern, oder überprüfen Sie den PATH einfach, indem Sie echo $ PATH sagen, und stellen Sie sicher, dass nichts beschädigt ist.


-3

Sie können den Pfad wie folgt exportieren:

Exportieren Sie PATH = $ PATH: / bin: / usr / local / bin


3
Willkommen bei Ask Different! Diese Frage hat bereits eine akzeptierte Antwort und Ihre Antwort unterscheidet sich nicht wesentlich von der akzeptierten Antwort. In den folgenden häufig gestellten Fragen erfahren
Sie,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.