La réponse de Grzegorz Żur à une autre question la saisit brillamment. Malheureusement, il était caché parmi de nombreuses autres réponses.
Il existe plusieurs façons de le faire. La solution réelle dépend de l'objectif.
Les valeurs des variables sont généralement stockées soit dans une liste d'affectations, soit dans un script shell exécuté au démarrage du système ou de la session utilisateur. Dans le cas du script shell, vous devez utiliser une syntaxe shell spécifique.
À l'échelle du système
/etc/environment
Liste des affectations uniques. Parfait pour ajouter des répertoires à l'échelle du système comme/usr/local/something/bin
àPATH
variable ou définissantJAVA_HOME
./etc/xprofile
Script shell exécuté lors du démarrage de la session X Window System. Ceci est exécuté pour chaque utilisateur qui se connecte à X WindowSystem. C'est un bon choix pourPATH
entrées valides pour tous les utilisateurs comme/usr/local/something/bin
. Le fichier est inclus par un autre script, utilisez donc la syntaxe du shell POSIX et non la syntaxe de votre shell utilisateur./etc/profile
et/etc/profile.d/*
Script shell. C'est un bon choix pour les systèmes shell uniquement. Ces fichiers ne sont lus que par les shells./etc/<shell>.<shell>rc
. Script shell. C'est un mauvais choix car il est spécifique à un seul shell.
Aussi, /etc/environment
n'est pas un fichier de script, mais se compose plutôt d'expressions d'affectation, une par ligne. Étant donné que ce fichier stocke les paramètres régionaux et de chemin d'accès à l'échelle du système, il est le plus souvent cité comme choix. Utilisation de /etc/profile
n'est pas préféré. Il n'existe que pour pointer vers /etc/bash.bashrc
et pour collecter les entrées de /etc/profile.d
Session utilisateur
~/.pam_environment
. Liste des affectations uniques. Chargé par PAM au début de chaque session utilisateur, peu importe s'il s'agit d'une session ou d'un shell XWindow System. Vous ne pouvez pas référencer d'autres variables, y comprisHOME
ouPATH
son utilisation est donc limitée.~/.xprofile
Script shell. Ceci est exécuté lorsque l'utilisateur se connecte au système X Window System. Les variables définies ici sont visibles pour chaque application X. Choix parfait pour étendrePATH
avec des valeurs telles que~/bin
ou~/go/bin
ou en définissant unGOPATH
spécifique à l'utilisateur ouNPM_HOME
. Le fichier est inclus par un autre script, utilisez donc la syntaxe du shell POSIX et non la syntaxe de votre shell utilisateur. Votre éditeur de texte graphique ou IDE démarré par raccourci verra ces valeurs.~/.profile
Script shell. Il ne sera visible que pour les programmes démarrés à partir d'un terminal ou d'un émulateur de terminal. C'est un bon choix pour les systèmes uniquement shell.~/.<shell>rc
. Script shell. C'est un mauvais choix car il est spécifique à un seul shell.
Pour un changement temporaire :
~$ export PATH=$PATH:~/root/scripts
Pour un changement permanent, vous pouvez ajouter cette ligne au /etc/environment
fichier comme celui-ci :
PATH=$PATH:~/root/scripts