J'utilise zsh et j'essaye d'ajouter une nouvelle entrée (/home/david/pear/bin
) à la PATH
variable mais je ne sais pas comment.
Ce qui me déroute le plus, c'est qu'il n'y a pas une seule référence à une PATH
variable dans mon ~/.zshrc
fichier, mais faire des echo $PATH
retours:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Donc, une PATH
variable est définie quelque part.
PATH="/home/david/pear/bin:/usr/bin:etc"
à- direPATH=/home/david/pear/bin:/usr/bin:etc
pour qu'il reste dans zshrc.PATH
du processus parent qui l'a démarré, puis quand il s'exécute.zshrc
(.bashrc
ou quoi que ce soit), c'est ce qui vous permet d'ajouter des éléments supplémentaires à ce chemin.En fait, l'utilisation de ZSH vous permet d'utiliser un mappage spécial des variables d'environnement. Vous pouvez donc simplement faire:
Pour moi, c'est une fonctionnalité très intéressante qui peut être propagée à d'autres variables. Exemple:
la source
~/.zshrc
provient après.profile
et écrase tout dans.profile
. Il a fallu du temps pour me tirer les cheveux pour comprendre.-x
et de ne laisser que des valeurs uniques dans une variable avec-U
, deux points sont supposés par défaut, donc cela peut être:typeset -TUx PATH path
path=(...)
(sans référence$path
ni à l'$PATH
intérieur) attribue,path=(... $path)
ajoute etpath+(...)
ajoute.Vous pouvez ajouter à votre
PATH
de manière minimale. Pas besoin de parenthèses, sauf si vous ajoutez plus d'un élément. Il n'a généralement pas besoin de citations. Donc, le moyen simple et court d'ajouter est:Usage courant
Ensuite, le modèle commun pour tester un nouveau script / exécutable devient:
Cette syntaxe minuscule est utilisée
path
comme tableau , mais affecte également son équivalent partenaire majuscule,PATH
(auquel elle est "liée" viatypeset
).(Notez que non
:
est nécessaire / voulu comme séparateur .)Tidbits connexes
Traiter de
path
cette façon (comme un tableau) signifie aussi: pas besoin de faire unrehash
pour obtenir les commandes nouvellement acheminées à trouver.Jetez également un œil à
vared path
une manière dynamique de modifierpath
et d'autres choses.Vous n'êtes peut-être intéressé que
path
par cette question, mais puisque nous parlons d'exportations et de tableaux, notez que les tableaux ne peuvent généralement pas être exportés.Vous pouvez même empêcher
PATH
de prendre des entrées en double (reportez-vous à ceci et à cela ):la source
path+='my/path' # for fun
. C'est évident si vous avez des espaces, mais pas tellement si vous avez des commentaires.path
. Un précédent:
est requis pourPATH
, comme suit dans .zshrcPATH+=:/Users/path/to/my/folder
une doublure, sans ouvrir le
~/.zshrc
fichierou
Pour voir l'effet, faites
source ~/.zshrc
dans le même onglet ou ouvrez un nouvel ongletla source
Ajout du chemin vers ~ / .zshrc
sudo vi ~/.zshrc
ajouter un nouveau chemin
Mettre à jour ~ / .zshrc
Enregistrer ~ / .zshrc
source ~/.zshrc
Vérifier CHEMIN
echo $PATH
la source
Bash
chemin.OPTION 1: Ajoutez cette ligne à ~ / .zshrc:
Après cela, vous devez courir
source ~/.zshrc
pour que vos modifications prennent effet OU fermer cette fenêtre et en ouvrir une nouvelleOPTION 2: exécutez-le dans la console du terminal pour ajouter ce chemin uniquement à la session courante de la fenêtre du terminal. Lorsque vous fermez la fenêtre / session, elle sera perdue.
la source