Je cherche des directives sur ce que l’on devrait et ne devrait pas inclure dans les divers fichiers de démarrage zsh
.
Je comprends l’ordre d’approvisionnement de ces fichiers et les conditions dans lesquelles ils sont obtenus, mais j’ignore encore ce qui doit être fait dans chacun d’eux.
Réponses:
Voici une liste non exclusive de ce que chaque fichier a tendance à contenir:
.zshenv
est toujours recherché, il contient souvent des variables exportées qui devraient être disponibles pour d'autres programmes. Par exemple,$PATH
,$EDITOR
et$PAGER
sont souvent mis en.zshenv
. En outre, vous pouvez définir$ZDOTDIR
en.zshenv
spécifier un autre emplacement pour le reste de votre configuration de zsh..zshrc
est pour la configuration interactive du shell. Vous définissez les options pour le shell interactif à l’aide des commandessetopt
etunsetopt
. Vous pouvez également charger des modules shell, définir vos options d’historique, modifier votre invite, configurer le zle et son achèvement, et cetera. Vous définissez également les variables qui ne sont utilisées que dans le shell interactif (par exemple$LS_COLORS
)..zlogin
provient du début d'un shell de connexion. Ce fichier est souvent utilisé pour démarrer X en utilisantstartx
. Certains systèmes démarrent X au démarrage, ce fichier n’est donc pas toujours très utile..zprofile
est fondamentalement la même que.zlogin
si ce n'est qu'elle est obtenue directement avant,.zshrc
plutôt que directement après. Selon la documentation zsh, ".zprofile
est conçu comme une alternative à" .zlogin "pour les fans de ksh; les deux ne sont pas destinés à être utilisés ensemble, bien que cela puisse certainement être fait si désiré.".zlogout
est parfois utilisé pour effacer et réinitialiser le terminal.Consultez les fichiers de configuration d'utilisateurs aléatoires de Github pour avoir une meilleure idée de ce que chaque fichier doit contenir.
la source
man zshall
pour plus de détails).$PATH
en.zshenv
, divers autres fichiers tous interviennent après ce fichier qui remplacera cette valeur. Voir zsh.org/mla/users/2003/msg00600.html .$LANG
et$LC_ALL
aller?.zshenv
→ [.zprofile
si vous êtes connecté] → [.zshrc
si interactif] → [.zlogin
si vous êtes connecté] → [.zlogout
parfois].Voici une liste de ce que chaque fichier ne devrait / devrait pas contenir, à mon avis:
.zshenv
[Lire à chaque fois]
Ce fichier est toujours recherché, il doit donc définir des variables d’environnement qui doivent être mises à jour fréquemment . PATH (ou son chemin de contrepartie associé ) est un bon exemple car vous ne voulez probablement pas redémarrer votre session entière pour la mettre à jour. En le définissant dans ce fichier, la réouverture d'un émulateur de terminal démarrera une nouvelle instance de Zsh avec la valeur PATH mise à jour.
Mais sachez que ce fichier est lu même lorsque Zsh est lancé pour exécuter une seule commande (avec l' option -c ), même avec un autre outil comme
make
. Vous devez faire très attention de ne pas modifier le comportement par défaut des commandes standard, car certains outils pourraient en être brisés (en définissant des alias, par exemple)..zprofile
[Lu au login]
Personnellement, je traite ce fichier comme
.zshenv
s'il ne comportait que des commandes et des variables ne devant être définies qu'une seule fois ou n'ayant pas besoin d'être mises à jour fréquemment :SCONSFLAGS="--jobs=$(( $(nproc) - 1 ))"
), car l’exécution peut prendre un certain temps.Si vous modifiez ce fichier, vous pouvez appliquer les mises à jour de la configuration en exécutant un shell de connexion:
.zshrc
[Lire quand interactive]
Je mets ici tout ce qui est nécessaire uniquement pour une utilisation interactive :
.zlogin
[Lu au login]
Ce fichier est comme
.zprofile
, mais est lu après.zshrc
. Vous pouvez considérer que le shell est entièrement configuré au moment de l’exécution de .zlogin.Je l’utilise donc pour lancer des commandes externes qui ne modifient pas les comportements du shell (par exemple, un gestionnaire de connexion).
.zlogout
[Lire à la déconnexion] [Dans le shell de connexion]
Ici, vous pouvez effacer votre terminal ou toute autre ressource configurée lors de la connexion.
Comment je choisis où mettre un paramètre
.zshenv
.zshenv
.zprofile
.zshrc
.zlogin
.zlogout
la source
Ne passez pas d'
ssh-agent
appels.zshenv
. Laless
commande n’affiche plus aucun fichier texte, probablement parce que ses options ont été personnalisées par Prezto (export LESS='-F -g -i -M -R -S -w -X -z-4'
in.zprofile
).la source