tl; version dr: utiliser ~/.zshrc
Et lisez la page de manuel pour comprendre les différences entre:
~/.zshrc
, ~/.zshenv
Et ~/.zprofile
.
Concernant mon commentaire
Dans mon commentaire joint à la réponse de kev , j'ai dit:
Cela semble incorrect - / etc / profile n'est répertorié dans aucune documentation zsh que je puisse trouver.
Cela s'avère partiellement incorrect: /etc/profile
peut provenir de zsh
. Cependant , cela ne se produit que si zsh
est "invoqué en tant que sh
ou ksh
"; dans ces modes de compatibilité:
Les scripts habituels de démarrage / arrêt de zsh ne sont pas exécutés. Le login shells source / etc / profile suivi de $ HOME / .profile. Si la variable d'environnement ENV est définie lors de l'appel, $ ENV provient des scripts de profil. La valeur d'ENV est soumise à l'expansion des paramètres, à la substitution de commandes et à l'expansion arithmétique avant d'être interprétée comme un chemin. [ man zshall, "Compatibilité" ].
Le lien ArchWiki ZSH dit:
Lors de la connexion, Zsh recherche les fichiers suivants dans cet ordre:
/ etc / profile
Ce fichier provient de tous les shells compatibles Bourne lors de la connexion
Ce implys qui /etc/profile
est toujours lu par zsh
à la connexion - Je n'ai aucune expérience avec le projet Arch Linux; le wiki peut être correct pour cette distribution, mais il n'est généralement pas correct. Les informations sont incorrectes par rapport aux pages de manuel zsh et ne semblent pas s'appliquer à zsh sous OS X (les chemins $PATH
définis dans /etc/profile
ne parviennent pas à mes sessions zsh).
Pour répondre à la question:
où dois-je placer exactement mes ajouts rvm, python, node, etc. à mon $ PATH?
En général, j'exporterais mon $PATH
depuis ~/.zshrc
, mais cela vaut la peine d'avoir une lecture de la page de manuel zshall , en particulier la section "FICHIERS DE DÉMARRAGE / ARRÊT" - ~/.zshrc
est lue pour les shells interactifs , qui peuvent ou non répondre à vos besoins - si vous voulez le $PATH
pour chaque zsh
shell invoqué par vous (les deux interactive
et non, les deux login
et non, etc.), ~/.zshenv
est alors une meilleure option.
Y a-t-il un fichier spécifique que je devrais utiliser (c'est-à-dire .zshenv qui n'existe pas actuellement dans mon installation), l'un de ceux que j'utilise actuellement, ou est-ce même important?
Il y a un tas de fichiers lus au démarrage (vérifiez les man
pages liées ), et il y a une raison à cela - chaque fichier a sa place particulière (paramètres pour chaque utilisateur, paramètres spécifiques à l'utilisateur, paramètres pour les shells de connexion, paramètres pour chaque shell, etc).
Ne vous inquiétez pas de ~/.zshenv
ne pas exister - si vous en avez besoin, faites-le et il sera lu.
.bashrc
et ne.bash_profile
sont pas lus par zsh
, sauf si vous les fournissez explicitement ~/.zshrc
ou similaires; la syntaxe entre bash
et zsh
n'est pas toujours compatible. Les deux .bashrc
et .bash_profile
sont conçus pour les bash
paramètres, pas les zsh
paramètres.
.bashrc
et que vous ne.bash_profile
soyez pas luzsh
comme j'ai actuellement monrvm
ajout$PATH
dans.bashrc
, et monpython
ajout dans.bash_profile
, et les deux sont ajoutés très bien. Dans tous les cas, je vais déplacer toutes mes$PATH
exportations vers~/.zshrc
car toutes mes autreszsh
configurations y sont hébergées. Je dois admettre que je ne connais pas très bien les différents types de coquilles. En lisant les liens que vous avez postés, je suppose que j'utilise un shell interactif, mais je vais lire plus loin pour être sûr ... Merci encore!Voici la documentation des pages de manuel zsh dans la section STARTUP / SHUTDOWN FILES.
À partir de là, nous pouvons voir que les fichiers de commande sont lus:
Vous pouvez obtenir plus d'informations ici .
la source
J'ai eu un problème similaire (dans le terminal bash, la commande fonctionnait correctement mais zsh a montré une erreur de commande introuvable)
Solution:
collez simplement ce que vous étiez précédemment collé dans ~ / .bashrc dans:
la source