tl; dr version: verwenden ~/.zshrc
Und die man - Seite lesen , die Unterschiede zu verstehen , zwischen:
~/.zshrc
, ~/.zshenv
Und ~/.zprofile
.
In Bezug auf meinen Kommentar
In meinem Kommentar zur Antwort von kev sagte ich:
Dies scheint falsch zu sein - / etc / profile ist in keiner zsh-Dokumentation aufgeführt, die ich finden kann.
Dies stellt sich als teilweise falsch heraus: /etc/profile
kann von bezogen werden zsh
. Dies tritt jedoch nur auf, wenn zsh
"als sh
oder aufgerufen ksh
" wird; in diesen Kompatibilitätsmodi:
Die üblichen zsh-Start / Shutdown-Skripte werden nicht ausgeführt. Login shells source / etc / profile gefolgt von $ HOME / .profile. Wenn die Umgebungsvariable ENV beim Aufruf festgelegt wird, wird $ ENV nach den Profilskripten bezogen. Der Wert von ENV wird einer Parametererweiterung, einer Befehlssubstitution und einer arithmetischen Erweiterung unterzogen, bevor er als Pfadname interpretiert wird. [ man zshall, "Kompatibilität" ].
Der ArchWiki ZSH-Link lautet:
Bei der Anmeldung bezieht Zsh die folgenden Dateien in dieser Reihenfolge:
/ etc / profile
Diese Datei wird bei der Anmeldung von allen Bourne-kompatiblen Shells bezogen
Diese bedeutet , das /etc/profile
wird immer gelesen von zsh
bei der Anmeldung - ich hatte keine Erfahrung mit dem Arch Linux - Projekt; Das Wiki ist zwar für diese Distribution korrekt, aber im Allgemeinen nicht korrekt. Die Informationen sind im Vergleich zu den zsh-Handbuchseiten falsch und scheinen unter OS X nicht für zsh zu gelten (Pfade in $PATH
set in /etc/profile
schaffen es nicht zu meinen zsh-Sitzungen).
Um die Frage zu beantworten:
Wo genau soll ich meine rvm-, python-, node- usw. Ergänzungen zu meinem $ PATH platzieren?
Im Allgemeinen würde ich meine Export $PATH
aus ~/.zshrc
, aber es lohnt sich, einen Lesevorgang der mit zshall Manpage, insbesondere die „Start / Stop - Dateien“ - ~/.zshrc
ist für gelesen interaktive Schalen, die kann oder auch nicht Ihre Bedürfnisse anzupassen - wenn Sie möchten , $PATH
für Jede zsh
von Ihnen aufgerufene Shell (beide interactive
und nicht, beide login
und nicht usw.) ist dann ~/.zshenv
eine bessere Option.
Gibt es eine bestimmte Datei, die ich verwenden sollte (dh .zshenv, die derzeit in meiner Installation nicht vorhanden ist), eine der Dateien, die ich derzeit verwende, oder spielt es überhaupt eine Rolle?
Beim Start werden eine Reihe von Dateien gelesen (überprüfen Sie die verlinkten man
Seiten), und es gibt einen Grund dafür - jede Datei hat ihren bestimmten Speicherort (Einstellungen für jeden Benutzer, Einstellungen für benutzerspezifisch, Einstellungen für Login-Shells, Einstellungen für jede Shell, etc).
Mach dir keine Sorgen ~/.zshenv
, dass es nicht existiert - wenn du es brauchst, mach es und es wird gelesen.
.bashrc
und .bash_profile
werden nicht von gelesen zsh
, es sei denn, Sie beziehen sie ausdrücklich von ~/.zshrc
oder ähnlich; Die Syntax zwischen bash
und zsh
ist nicht immer kompatibel. Beide .bashrc
und .bash_profile
sind für bash
Einstellungen ausgelegt, nicht für zsh
Einstellungen.
.bashrc
und.bash_profile
nicht gelesen werden,zsh
da ich derzeit meinervm
Hinzufügung zu$PATH
in.bashrc
und meinepython
Hinzufügung in habe.bash_profile
und beide gut hinzugefügt werden. In jedem Fall werde ich alle meine$PATH
Exporte verschieben,~/.zshrc
da alle meine anderenzsh
Konfigurationen dort untergebracht sind. Ich muss zugeben, ich bin mit den verschiedenen Arten von Muscheln nicht allzu vertraut. Nach dem Lesen der von Ihnen geposteten Links verwende ich vermutlich eine interaktive Shell, aber ich werde weiter lesen, um sicherzugehen ... Nochmals vielen Dank!Hier sind die Dokumente aus den zsh-Manpages im Abschnitt STARTUP / SHUTDOWN FILES.
Daraus können wir ersehen, dass die Bestelldateien gelesen werden:
Weitere Informationen erhalten Sie hier .
quelle
Ich hatte ein ähnliches Problem (in bash terminal funktionierte der Befehl korrekt, aber zsh zeigte den Befehl nicht gefunden Fehler)
Lösung:
Fügen Sie einfach alles ein, was Sie zuvor in ~ / .bashrc eingefügt haben, um:
quelle