Ich bin auf der Suche nach Richtlinien, was man in den verschiedenen Startdateien für einschließen soll und was nicht zsh
.
Ich verstehe die Reihenfolge der Beschaffung dieser Dateien und die Bedingungen, unter denen sie beschafft werden, aber es ist mir immer noch nicht klar, was in den einzelnen Dateien vor sich gehen soll.
Antworten:
Hier ist eine nicht ausschließliche Liste der Inhalte jeder Datei:
.zshenv
immer Quellen verwendet werden, enthält es oft exportierte Variablen, die anderen Programmen zur Verfügung stehen sollten. Zum Beispiel$PATH
,$EDITOR
und$PAGER
werden häufig gesetzt in.zshenv
. Außerdem können Sie einstellen ,$ZDOTDIR
in.zshenv
einen alternativen Ort für den Rest Ihrer zsh Konfiguration angeben..zshrc
ist für die interaktive Shell-Konfiguration. Dort legen Sie mit den Befehlensetopt
und Optionen für die interaktive Shell festunsetopt
. Sie können auch Shell-Module laden, Ihre Verlaufsoptionen festlegen, Ihre Eingabeaufforderung ändern, zle und Vervollständigung einrichten usw. Sie legen auch alle Variablen fest, die nur in der interaktiven Shell verwendet werden (z$LS_COLORS
. B. )..zlogin
wird beim Start einer Login-Shell bezogen. Diese Datei wird häufig zum Starten von X verwendetstartx
. Einige Systeme starten X beim Booten, daher ist diese Datei nicht immer sehr nützlich..zprofile
ist im Grunde das Gleiche wie mit der.zlogin
Ausnahme, dass es direkt vor und.zshrc
nicht direkt danach bezogen wird. Laut der zsh-Dokumentation ".zprofile
ist dies eine Alternative zu" .zlogin "für ksh-Fans. Beide dürfen nicht zusammen verwendet werden, obwohl dies auf Wunsch durchaus möglich ist.".zlogout
wird manchmal zum Löschen und Zurücksetzen des Terminals verwendet.Sie sollten die Konfigurationsdateien von zufälligen Github-Benutzern durchgehen , um eine bessere Vorstellung davon zu erhalten, was jede Datei enthalten sollte.
quelle
man zshall
Details siehe ).$PATH
in.zshenv
verschiedenen anderen Dateien alle sind nach dieser Datei stammen , die diesen Wert überschreiben. Siehe zsh.org/mla/users/2003/msg00600.html .$LANG
und$LC_ALL
gehen?.zshenv
→ [.zprofile
wenn angemeldet] → [.zshrc
wenn interaktiv] → [.zlogin
wenn angemeldet] → [.zlogout
manchmal].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 :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:
.zshrc
[Lesen wenn interaktiv]
Ich stelle hier alles ein, was nur für die interaktive Nutzung benötigt wird :
.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
.zshenv
.zshenv
.zprofile
.zshrc
.zlogin
.zlogout
quelle
Legen Sie keine
ssh-agent
Anrufe in.zshenv
. Meinless
Befehl zeigte keine Textdateien mehr an, wahrscheinlich weil seine Optionen von Prezto (export LESS='-F -g -i -M -R -S -w -X -z-4'
in.zprofile
) angepasst wurden .quelle