J'utilise zsh et j'essaie d'ajouter une nouvelle entrée (/home/david/pear/bin
) à la variable PATH
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 variable PATH
dans mon fichier ~/.zshrc
, mais que echo $PATH
renvoie:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Donc, une variable PATH
est définie quelque part.
Ici:
export PATH=/home/david/pear/bin:$PATH
En fait, utiliser ZSH vous permet d’utiliser un mappage spécial de variables d’environnement. Donc, vous pouvez simplement faire:
# append
path+=('/home/david/pear/bin')
# or prepend
path=('/home/david/pear/bin' $path)
# export to sub-processes (make it inherited by child processes)
export PATH
Pour moi, c'est une fonctionnalité très soignée qui peut être propagée à d'autres variables. Exemple:
typeset -T LD_LIBRARY_PATH ld_library_path :
Vous pouvez ajouter à votre PATH
de manière minimale. Pas besoin de parenthèses, sauf si vous ajoutez plus d'un élément. De plus, il n'a généralement pas besoin de guillemets. Donc le moyen simple et rapide d’ajouter est:
_path+=/some/new/bin/dir
_
Ensuite, le modèle courant pour tester un nouveau script/exécutable devient:
_path+=$PWD/.
# or
path+=$PWD/bin
_
Cette syntaxe minuscule utilise path
en tant que tableau , mais affecte également son équivalent du partenaire majuscule, PATH
(auquel elle est "liée" via typeset
).
(Notez que no _:
_ est nécessaire/voulu comme séparateur .)
Traiter path
de cette façon (en tant que tableau) signifie également: inutile de faire un rehash
pour obtenir les commandes nouvellement tracées.
Regardez également vared path
_ COMME MOYEN DYNAMIQUE D’ÉDITER path
et d’autres choses.
path
ne vous intéresse que pour cette question, mais comme 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 (voir this et this ):
_typeset -U path
_
une doublure, sans ouvrir le fichier ~/.zshrc
echo -n 'export PATH=~/bin:$PATH' >> ~/.zshrc
ou
echo -n 'export PATH=$HOME/bin:$PATH' >> ~/.zshrc
Pour voir l'effet, faites source ~/.zshrc
dans le même onglet ou ouvrez un nouvel onglet.
OPTION 1: Ajoutez cette ligne à ~/.zshrc:
export "PATH=$HOME/pear/bin:$PATH"
Ensuite, vous devez exécuter source ~/.zshrc
pour que vos modifications soient prises en compte OR fermez cette fenêtre et ouvrez-en une nouvelle.
OPTION 2: exécutez-le dans la console du terminal pour ajouter ce chemin uniquement à la session en cours dans la fenêtre du terminal. Lorsque vous fermez la fenêtre/session, il sera perdu.
Chemin ajouté à ~/.zshrc
Sudo vi ~/.zshrc
ajouter un nouveau chemin
export PATH="$PATH:[NEW_DIRECTORY]/bin"
Mettre à jour ~/.zshrc
Enregistrer ~/.zshrc
source ~/.zshrc
Vérifier le chemin
echo $PATH