Bash
Gestion de la variable d'environnement PATH
Recherche…
Syntaxe
- Ajouter un chemin: PATH = $ PATH: / new / path
- Ajouter un chemin: PATH = / new / path: $ PATH
Paramètres
Paramètre | Détails |
---|---|
CHEMIN | Variable d'environnement de chemin |
Remarques
Fichier de configuration Bash:
Ce fichier provient d'un nouveau shell Bash interactif.
Dans les systèmes GNU / Linux, c'est généralement le fichier ~ / .bashrc; dans Mac, c'est ~ / .bash_profile ou ~ / .profile
Exportation:
La variable PATH doit être exportée une fois (c'est fait par défaut). Une fois exporté, il restera exporté et les modifications apportées seront immédiatement appliquées.
Appliquer les modifications:
Pour appliquer les modifications à un fichier de configuration Bash, vous devez recharger ce fichier dans un terminal ( source /path/to/bash_config_file
)
Ajouter un chemin à la variable d'environnement PATH
La variable d'environnement PATH est généralement définie dans ~ / .bashrc ou ~ / .bash_profile ou / etc / profile ou ~ / .profile ou /etc/bash.bashrc (fichier de configuration Bash spécifique à la distribution)
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/jdk1.8.0_92/bin:/usr/lib/jvm/jdk1.8.0_92/db/bin:/usr/lib/jvm/jdk1.8.0_92/jre/bin
Maintenant, si nous voulons ajouter un chemin (par exemple ~/bin
) à la variable PATH:
PATH=~/bin:$PATH
# or
PATH=$PATH:~/bin
Mais cela ne modifiera le PATH que dans le shell actuel (et son sous-shell). Une fois que vous quittez le shell, cette modification aura disparu.
Pour le rendre permanent, nous devons ajouter ce bit de code au fichier ~ / .bashrc (ou autre) et recharger le fichier.
Si vous exécutez le code suivant (dans le terminal), il ajoutera définitivement ~/bin
au PATH:
echo 'PATH=~/bin:$PATH' >> ~/.bashrc && source ~/.bashrc
Explication:
-
echo 'PATH=~/bin:$PATH' >> ~/.bashrc
ajoute la lignePATH=~/bin:$PATH
à la fin du fichier ~ / .bashrc (vous pouvez le faire avec un éditeur de texte) -
source ~/.bashrc
recharge le fichier ~ / .bashrc
Ceci est un bit de code (exécuté dans le terminal) qui vérifiera si un chemin est déjà inclus et ajoute le chemin seulement s'il n'est pas:
path=~/bin # path to be included
bashrc=~/.bashrc # bash file to be written and reloaded
# run the following code unmodified
echo $PATH | grep -q "\(^\|:\)$path\(:\|/\{0,1\}$\)" || echo "PATH=\$PATH:$path" >> "$bashrc"; source "$bashrc"
Supprimer un chemin de la variable d'environnement PATH
Pour supprimer un PATH d'une variable d'environnement PATH, vous devez éditer le fichier ~ / .bashrc ou ~ / .bash_profile ou / etc / profile ou ~ / .profile ou /etc/bash.bashrc (spécifique à la distribution) et supprimer l'affectation pour ce chemin particulier.
Au lieu de trouver l'assignation exacte, vous pourriez simplement faire un remplacement dans $PATH
dans sa phase finale.
Ce qui suit va supprimer en toute sécurité $path
de $PATH
:
path=~/bin
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
Pour le rendre permanent, vous devrez l'ajouter à la fin de votre fichier de configuration bash.
Vous pouvez le faire de manière fonctionnelle:
rpath(){
for path in "$@";do
PATH="$(echo "$PATH" |sed -e "s#\(^\|:\)$(echo "$path" |sed -e 's/[^^]/[&]/g' -e 's/\^/\\^/g')\(:\|/\{0,1\}$\)#\1\2#" -e 's#:\+#:#g' -e 's#^:\|:$##g')"
done
echo "$PATH"
}
PATH="$(rpath ~/bin /usr/local/sbin /usr/local/bin)"
PATH="$(rpath /usr/games)"
# etc ...
Cela facilitera le traitement de plusieurs chemins.
Remarques:
- Vous devrez ajouter ces codes dans le fichier de configuration Bash (~ / .bashrc ou autre).
- Exécutez le
source ~/.bashrc
pour recharger le fichier de configuration Bash (~ / .bashrc).