Hier eine Liste, was jede Datei meiner Meinung nach enthalten sollte / nicht enthalten sollte:
.zshenv
[Jedes Mal lesen]
Es wird immer als Quelle verwendet, daher sollten Umgebungsvariablen festgelegt werden, die häufig aktualisiert werden müssen . PATH (oder sein zugehöriges Gegenstück Pfad ) ist ein gutes Beispiel , weil Sie wahrscheinlich nicht aktualisieren mögen , dass Ihre gesamte Sitzung neu zu starten , um es zu machen. Durch erneutes Öffnen eines Terminalemulators wird eine neue Zsh-Instanz mit dem aktualisierten PATH- Wert gestartet .
Beachten Sie jedoch, dass diese Datei auch dann gelesen wird, wenn Zsh gestartet wird, um einen einzelnen Befehl (mit der Option -c ) auszuführen , selbst von einem anderen Tool wie make
. Sie sollten sehr vorsichtig sein, um das Standardverhalten von Standardbefehlen nicht zu ändern, da es einige Tools beschädigen kann, die sie verwenden (indem Sie beispielsweise Aliase festlegen). Sicher ist es nicht verboten, wie Sie wissen, was Sie tun.
.zprofile
[Beim Login lesen]
Ich persönlich behandle diese Datei mit Ausnahme .zshenv
von Befehlen und Variablen, die einmal gesetzt werden sollten oder die nicht häufig aktualisiert werden müssen :
- Umgebungsvariablen zum Konfigurieren von Tools (Flags zum Kompilieren, Speicherort des Datenordners usw.)
- Konfiguration, die Befehle (wie
SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))"
) ausführt, da die Ausführung einige Zeit in Anspruch nehmen kann.
Wenn Sie diese Datei ändern, können Sie die Konfigurationsaktualisierungen abrufen, indem Sie die aktuelle Shell durch eine neue als Anmeldeshell ersetzen:
exec zsh --login
.zshrc
[Lesen wenn interaktiv]
Ich stelle hier alles ein, was nur für die interaktive Nutzung benötigt wird :
- Prompt,
- Befehlsabschluss,
- Befehlskorrektur,
- befehlsvorschlag,
- Befehlshervorhebung,
- Ausgabefarbe,
- Aliase,
- Tastenbelegungen,
- Befehlshistorienverwaltung,
- sonstige interaktive Tools (auto_cd, manydots-magic) ...
.zlogin
[Beim Login lesen]
Diese Datei ist wie .zshprofile
, wird aber nachgelesen .zshrc
. Ich halte die Shell zu diesem Zeitpunkt für vollständig eingerichtet.
Ich verwende es also, um externe Befehle zu starten, die das Shell-Verhalten nicht ändern (z. B. einen Login-Manager).
.zlogout
[Beim Abmelden lesen] [In der Login-Shell]
Hier können Sie Ihr Terminal oder andere Ressourceneinstellungen bei der Anmeldung löschen.
Wie ich wähle, wo ich eine Einstellung mache
- Es wird von einem Befehl benötigt , der nicht interaktiv ausgeführt wird :
.zshenv
- Es sollte auf einer neuen Shell aktualisiert werden :
.zshenv
- Es wird ein Befehl ausgeführt, dessen Ausführung einige Zeit in Anspruch nehmen kann :
.zprofile
- es hängt mit der interaktiven Nutzung zusammen :
.zshrc
- Es ist ein Befehl, der ausgeführt wird, wenn die Shell vollständig eingerichtet ist :
.zlogin
- Es gibt eine Ressource frei, die bei der Anmeldung erworben wurde:
.zlogout