GNU/Linux >> Tutoriels Linux >  >> Linux

Où est la variable PATH définie dans Ubuntu ?

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

  1. /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éfinissant JAVA_HOME .
  2. /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 pour PATH 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.
  3. /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.
  4. /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

  1. ~/.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 compris HOME ou PATH son utilisation est donc limitée.
  2. ~/.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 étendre PATH avec des valeurs telles que ~/bin ou ~/go/bin ou en définissant un GOPATH 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.
  3. ~/.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.
  4. ~/.<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

Linux
  1. Vue complète de l'endroit où la variable de chemin est définie dans Bash ?

  2. D'où est exécuté un script Shell ?

  3. 2 façons de définir de manière permanente la variable $ PATH dans Ubuntu

  4. Comment stocker une commande dans une variable dans un script shell ?

  5. Copier et écraser un fichier dans un script shell

Comment définir votre variable $PATH sous Linux

Comment écrire un script shell dans Ubuntu

Comment stocker une commande Linux en tant que variable dans un script shell

Déterminer le chemin d'accès au script shell sourcé ?

Comment créer et exécuter un script shell dans Ubuntu 22.04

Où est définie la variable d'environnement $HOME ?