OS X Terminal erkennt keine Befehle [duplizieren]

Ich habe kürzlich versucht, CoffeeScript auf meinem Mac zu installieren, und kann jetzt nicht einmal die grundlegendsten Befehle wie ls, cd usw. verwenden. Irgendetwas sagt mir, dass es daran liegt, dass sich die $PATH-Variable geändert hat. Ich erinnere mich, dass ich das tun musste, als ich versuchte, die Installation durchzuführen. Ich habe versucht, die hier gefundenen Anweisungen zu befolgen , aber es funktioniert nicht, weil der Befehl vi nicht gefunden wird.

Bei der Eingabe von echo $PATH im Terminal lautet /usr/local/bin:

cdist eine Shell eingebaut. Nichts, was Sie $PATH antun, sollte in der Lage sein, es zu brechen, also haben Sie Ihrer Maschine möglicherweise etwas viel Schlimmeres angetan.
Es ist seltsam, dass echofunktioniert aber cdund lsnicht. Versuchen Sie, die Terminal-Einstellungen zu öffnen und ein neues Profil zu erstellen. Führen Sie es dann aus bash --noprofileund deaktivieren Sie "In Shell ausführen" (ich denke, die Optionen dafür befinden sich auf der Registerkarte "Erweitert"). Sehen Sie auch, ob typeoder whichfunktioniert.
Um die korrekte Analyse von @Wooble zu ergänzen, denke ich, dass das cdfunktioniert, und Sie dachten, dass es nicht funktioniert, weil es lsnicht verwendbar ist. Ich rate Ihnen, diese Informationen noch einmal zu überprüfen und Ihre ursprüngliche Frage zu aktualisieren, um zu vermeiden, dass Leute Ihnen helfen wollen, nach einem Marsmenschen zu suchen :).

Antworten (3)

Sie haben Ihre PATHVariablendefinition beschädigt. Ohne Angabe, welche Methode Sie gewählt haben, um es zu ändern, werde ich die Hypothese aufstellen, dass Sie es in Ihrem geändert haben ~/.bash_profile.

Um sich von dieser Situation zu erholen, müssen Sie zu einer funktionierenden Shell-Umgebung zurückkehren und dann versuchen, Ihre ~/.bash_profile.

Wiederherstellung eines funktionierenden ~/.bash_profile: keine

Entfernen Sie Ihre ~/.bash_profileund erstellen Sie eine Sicherungskopie davon. Da Ihr PATHnicht vertrauenswürdig ist, verwenden Sie es nicht (verwenden Sie den vollständigen Pfad von mv):

/bin/mv ~/.bash_profile ~/.bash_profile.bak

Öffnen Sie ein neues TerminalFenster, in diesem sollten alle Befehle zu finden sein. Überprüfen Sie, ob Sie eine funktionierende wiederhergestellt haben PATH:

echo $PATH

Wenn Sie es einfacher finden, können Sie nach dieser Überprüfung Ihre Sitzung neu starten, damit jede neue Shell einen funktionierenden PATH erhält.

Analysieren Sie, was in Ihnen falsch ist~/.bash_profile

grep PATH ~/.bash_profile.bak

Repariere und teste es

Lieber wieder auf eine nicht funktionierende zurückgreifen PATH, benutze die Backup-Datei von dir ~/.bash_profile, um es dort zu beheben und zu testen.

Geben Sie zum Testen ein: . ~/.bash_profile.bak echo $PATH

Setzen Sie die validierten wieder ein/.bash_profile

Sobald Sie zufrieden sind und überprüft haben, haben Sie Zugriff auf alle Ihre Befehle:

mv ~/.bash_profile.bak ~/.bash_profile

und wenn Sie es sofort verwenden möchten, ohne Ihre vollständige Sitzung neu zu starten, geben Sie einfach Folgendes ein:

. ~/.bash_profile

Um Ihren Pfad zurückzusetzen, entfernen Sie die Zeile, die den Pfad festlegt, aus Ihrem ~/.bash_profile oder Äquivalent und öffnen Sie dann Ihr Terminal erneut.

Bearbeiten Sie es mit /usr/bin/nano oder /usr/bin/open oder TextMate oder einem anderen Texteditor. Es ist nicht so, dass kein Befehl erreicht werden kann, aber dass PATH diese Binärdateien nicht enthält – sie können immer noch manuell geöffnet werden, indem Sie den Pfad angeben oder cd zum Verzeichnis verwenden.

Sie können den Pfad auch vorübergehend verwenden, um Dinge zu testen, bevor Sie Dateien bearbeiten, die erst gelesen werden, wenn Sie eine neue Sitzung starten - apple.stackexchange.com/a/208425/5472

PATHEs hört sich so an, als hätten Sie Ihre Umgebungsvariable entfernt oder nicht richtig konfiguriert . Versuchen Sie, diese Zeile aus ~/.bash_profile zu entfernen, öffnen Sie dann ein neues Terminalfenster und überprüfen Sie, ob Ihre Pfade richtig eingestellt sind.

Sie müssen keinen Befehlszeilen-Texteditor verwenden, Sie können den hervorragenden und kostenlosen TextWrangler von BareBones Software verwenden . Dies sollte Fehler beim Versuch, herauszufinden, wie vi funktioniert, reduzieren.

Wenn Sie keine weitere App installieren möchten, befindet sich vi unter /usr/bin/vi. Für Befehlszeilen-Editoren würde ich pico über vi empfehlen, /usr/bin/picodas viel benutzerfreundlicher ist als vi oder emacs, aber im Vergleich zu TextWrangler klobig ist. Pico platziert alle relevanten Befehle am unteren Rand des Bearbeitungsfensters.

Viel Glück!

Sie können TextEdit.app verwenden, das Teil von OSX ist, ohne dass Sie TextWramgler benötigen