Ich verwende die z-Shell ( zsh
) anstelle der Standard-Bash, und es passiert etwas falsch, sodass alle Befehle, die früher funktionierten, nicht mehr erkannt werden:
ls
zsh: command not found: ls
open -e .zshrc
zsh: correct 'open' to '_open' [nyae]?
Ich weiß nicht, wie ich das zurücksetzen zsh
oder beheben soll. Hier ist der Inhalt der $PATH
Variablen:
echo $PATH
/Users/Malloc/bin/Sencha/Cmd/3.1.2.342:/usr/local/bin/mate
Ich kann weder die .bash_profile
Datei noch die .zshrc
Datei öffnen , anscheinend besteht die einzige Lösung darin, die Datei zurückzusetzen zsh
. Irgendwelche Ideen?
BEARBEITEN:
Ich habe sogar versucht, zsh
wie in diesem Thread angegeben zurückzusetzen , habe aber immer die folgende command not found
Fehlermeldung erhalten:
exec zsh
zsh: command not found: zsh
so was ist los? Warum gehen alle Befehle verloren?
Fügen Sie in Ihre ~ / .zsh-Konfigurationsdatei den Pfad zu Ihrer Bash-Pfaddatei ein, die Ihre Aliase enthält. In meinem Fall wurde die Zeile "source ~ / .bash_profile" in ~ / .zsh eingefügt.
quelle
~/.zsh
Datei. Stattdessen musste ich es hineinstecken/etc/zshrc
.Verwenden Sie einen guten Texteditor wie VS Code und öffnen Sie Ihre
.zshrc
Datei (sollte sich in Ihrem Ausgangsverzeichnis befinden. Wenn Sie sie nicht sehen, klicken Sie beim Öffnen mit der rechten Maustaste in den Dateiordner und wählen Sie die Option "Versteckte Dateien anzeigen"). .Finden Sie heraus, wo es heißt:
export PATH=a-bunch-of-paths-separated-by-colons:
Fügen Sie dies am Ende der Zeile vor dem Anführungszeichen ein:
:$HOME/.local/bin
Und es sollte für Sie funktionieren.
Sie können testen, ob dies zuerst funktioniert, indem Sie dies zuerst in Ihr Terminal eingeben:
export PATH=$HOME/.local/bin:$PATH
Wenn der Fehler verschwindet, nachdem Sie ihn in das Terminal eingegeben haben und Ihr Terminal normal funktioniert, funktioniert die obige Lösung. Wenn dies nicht der Fall ist, müssen Sie den Ordner finden, in dem sich Ihr Referenzfehler befindet (das Objekt wurde nicht gefunden), und den obigen Pfad durch den Pfad zum Ordner ersetzen.
quelle
PATH
Einstellung anscheinend "ignorierte" . Von Bash war ich es gewohnt, Verzeichnisse in meinem Home-Ordner mit dem Präfix zu versehen~
. Es stellt sich also für zsh heraus, dass ich stattdessen die$HOME
Variable verwenden sollte, wie in Ihrem Beispiel.Sie können einen Symlink in / usr / local / bin / erstellen
quelle
$HOME
relativen Pfad benutzte und bereitstellte. Die Verwendung des vollständigen Pfads hat$HOME
mein Problem behoben.$PATH
in diesem Anwendungsfall besser.Für mich schien ein Neustart meines Terminals das Problem zu beheben.
quelle
Ich habe das Problem behoben, indem ich die Registerkarte "Allgemeine Terminaleinstellungen" geöffnet und den Befehl (vollständiger Pfad)
/bin/bash
auf "Standard" geändert und dann die~/.zshrc
Datei bearbeitet habe .... ohne Leerzeichen zwischen
PATH="
und speichern Sie die Datei.Ändern
/bin/zsh
Sie nach dem Speichern der Datei den Befehl oder wählen Sie Standard... und starten Sie das Terminal neu und Ihre zsh-Shell sollte wieder funktionieren!
quelle
Wenn Sie mich mögen, haben Sie zwei Terminals App, eines ist das Standardterminal mit Bash als Standard-Shell und ein anderes iTerm 2 mit Zsh als Shell. Um sowohl Befehle als auch zsh in iTerm 2 von bash zu haben, müssen Sie Folgendes tun:
Gehen Sie auf iTerm 2 zu Einstellungen (oder Befehl). Gehen Sie dann zur Registerkarte Profil und gehen Sie zum Befehl . Wie Sie unten auf dem Bild sehen können, müssen Sie auswählen Befehl - Option und den Pfad der zsh Shell einfügen (um den Weg zu finden, können Sie tun
which zsh
).Zu diesem Zeitpunkt haben Sie das zsh NUR für iTerm 2 als Standard-Shell und Bash als globale Standard-Shell für die Standard-Mac-Terminal-App. Als nächstes fehlen uns noch die Befehle von bash in zsh. Um dies zu tun, müssen Sie auf Ihre Bash gehen (wo Ihre Befehle funktionieren) und die PATH-Variable von env abrufen (verwenden Sie diesen Befehl, um dies zu tun :)
env | grep PATH
.Sobald Sie das haben, gehen Sie zu Ihrem iTerm 2 und fügen Sie Ihren Pfad in die Option "Text beim Start senden" ein.
Öffnen Sie einfach iTerm 2 erneut und wir sind fertig!
quelle
Meine Lösung:
Wechseln Sie zurück zu
bash
:Nächster:
Kopier das:
zurück zum
zsh
:öffnen
.zshrc
:und einfügen:
Terminal neu starten
quelle
In meinem Fall war der kommentierte Code versehentlich in der ersten Zeile unkommentiert.
Der Hash wurde entfernt. Nach dem Hinzufügen funktionierte es wieder gut.
Ich habe das gerade hier gepostet, damit jemand es hilfreich findet. Weil es nur der Anfang der Zeile ist und versehentlich gelöscht werden könnte, wie ich es getan hatte. Und anscheinend gibt es keine Lösung, nachdem Sie verschiedene Möglichkeiten ausprobiert haben.
quelle
Der Neustart des Terminals war auch für mich der Trick.
quelle
Wie andere bereits gesagt haben, sollte ein einfacher Neustart des Terminals nach Änderungen zurückgesetzt und Änderungen an Ihrer ~ / .zshrc-Datei vorgenommen werden. Zum Beispiel nach dem Hinzufügen einer Funktion zum Öffnen von Visual Studio:
Ich konnte den Schlüsselwortcode verwenden, um das Programm über die Befehlszeile zu öffnen.
quelle
Eine Möglichkeit, die .zshrc-Datei zu bearbeiten, ohne dies über iTerm2 oder das native Terminal unter macOS zu tun, besteht darin, ein Terminal in einer anderen Anwendung zu verwenden. Zum Beispiel habe ich das Terminal als Teil von VSCode verwendet und konnte die Datei finden und bearbeiten.
quelle
Beste Lösungsarbeit für mich für permanenten Veränderungspfad
Öffnen Sie den Finder-> und gehen Sie zum Ordner / Users / / usr / local / bin
Öffnen Sie .zshrc mit TextEdit
.zshrc ist eine versteckte Datei, also blenden Sie sie mit Befehl + Shift + ein. Drücken Sie
Löschen Sie den Inhalt und den Typ der Datei
export PATH = ~ / usr / bin: / bin: / usr / sbin: / sbin: $ PATH
und speichern
jetzt
zsh: Befehl nicht gefunden Gone
quelle
Das Deinstallieren und Neuinstallieren von zsh hat bei mir funktioniert:
quelle