Où placer variable $PATH assertions dans zsh?
J'aime zsh
, mais je ne sais pas où placer mon $PATH
et d'autres variables affirmations? Je trouve qu'ils sont dispersés entre les fichiers .zshrc
.zprofile
.bashrc
.bash_profile
, et parfois doublé.
Je me rends compte que le fait d'avoir quelque chose à l'intérieur de la bash
fichiers n'a pas beaucoup de sens vu que je suis en utilisant zsh
, mais exactement où dois-je placer mon rvm
, python
, node
etc ajouts à mon $PATH
?
Est-il un fichier spécifique que je devrait utiliser (c'est à dire .zshenv
qui ne pas existent actuellement dans mon installation), un de ceux que je suis en train d'utiliser, ou faut-il le même problème?
Vous devez vous connecter pour publier un commentaire.
tl;dr version: utiliser
~/.zshrc
Et lire la page de man de comprendre les différences entre:
Concernant mon commentaire
Dans mon commentaire joint à la réponse kev a donné, j'ai dit:
Cela s'avère être partiellement incorrecte:
/etc/profile
peut être obtenus parzsh
. Cependant, cela se produit uniquement sizsh
est "invoquée commesh
ouksh
"; dans ces modes de compatibilité:La ArchWiki ZSH lien dit:
Ce implys que
/etc/profile
est toujours lire parzsh
lors de la connexion - je n'ai pas d'expérience avec Arch Linux projet; le wiki peut être correct pour cette distribution, mais il est pas généralement correcte. Les informations est incorrect par rapport à la zsh pages de manuel, et ne semble pas s'appliquer à zsh sur OS X (les chemins de$PATH
ensemble dans/etc/profile
ne pas le faire à mon zsh sessions).De répondre à la question:
Généralement, je voudrais exporter mes
$PATH
de~/.zshrc
, mais il vaut la peine d'avoir une lecture de la zshall page de man, plus précisément le "DÉMARRAGE/ARRÊT FICHIERS" section -~/.zshrc
est lu pour interactive coquilles, qui peuvent ou peuvent ne pas convenir à vos besoins, si vous voulez la$PATH
pour chaquezsh
shell invoquée par vous (à la foisinteractive
et non, les deuxlogin
et non, etc), puis~/.zshenv
est une meilleure option.Il y a un tas de fichiers lus au démarrage (à vérifier liés
man
pages), et il y a une raison pour que chaque fichier dispose d'un lieu particulier (paramètres pour chaque utilisateur, paramètres spécifiques à l'utilisateur, les paramètres pour les shells de login, les paramètres pour chaque shell, etc).Ne vous inquiétez pas à propos de
~/.zshenv
n'existant pas - si vous en avez besoin, le faire, et il sera lu..bashrc
et.bash_profile
sont pas lire parzsh
, sauf si vous explicitement la source de~/.zshrc
ou similaires; la syntaxe entrebash
etzsh
est pas toujours compatibles. Les deux.bashrc
et.bash_profile
sont conçus pourbash
paramètres, paszsh
paramètres..bashrc
et.bash_profile
ne sont pas lus parzsh
que j'ai actuellement monrvm
plus$PATH
dans.bashrc
, et monpython
plus en.bash_profile
, et les deux sont en train d'être ajouté correctement. En tout cas, je vais déplacer tous mes$PATH
exportations de~/.zshrc
, comme tous mes autreszsh
configuration est logé là. Je dois l'avouer, je ne suis pas trop familier avec les différents types de coquillages. En lisant les liens que vous avez posté, je suppose que je utiliser un shell interactif, mais je vais le lire plus loin pour être sûr... Merci encore!Voici les docs de la zsh des pages de man en vertu de DÉMARRAGE/ARRÊT section FICHIERS.
De cela, nous pouvons voir l'ordre des fichiers sont en lecture est:
Vous pouvez obtenir plus d'informations ici.
J'ai eu le même problème (en bash terminal de commande fonctionne correctement, mais zsh a montré de commande ne trouve pas d'erreur)
Solution:
collez simplement ce que vous étiez auparavant coller dans ~/.bashrc pour: