web-dev-qa-db-fra.com

Linux: où sont stockées les variables d'environnement?

Si je tape dans un terminal,

export DISPLAY=:0.0

... où le shell stocke-t-il cette variable d'environnement?

J'utilise Ubuntu 8.10. J'ai regardé dans les fichiers ~/.profile et/etc/profile et je ne trouve aucune trace de DISPLAY.

63
Ben L

Les variables d'environnement d'un processus existent au moment de l'exécution et ne sont pas stockées dans un fichier ou autre. Ils sont stockés dans la mémoire du processus (c'est là qu'ils se trouvent pour les transmettre aux enfants). Mais il y a un fichier virtuel dans

/ proc/pid/environ

Ce fichier affiche toutes les variables d'environnement qui ont été transmises lors de l'appel du processus (à moins que le processus n'ait écrasé cette partie de la mémoire, contrairement à la plupart des programmes). Le noyau les rend visibles via ce fichier virtuel. On peut les énumérer. Par exemple, pour afficher les variables du processus 3940, on peut faire

cat /proc/3940/environ | tr '\0' '\n'

Chaque variable est délimitée par un zéro binaire à partir de la suivante. tr remplace le zéro dans une nouvelle ligne.

104

Tapez "set" et vous obtiendrez une liste de toutes les variables actuelles. Si vous voulez que quelque chose persiste, mettez-le dans ~/.bashrc ou ~/.bash_profile (si vous utilisez bash)

33
tddmonkey

Si vous souhaitez utiliser l’environnement pour un usage global, vous pouvez le faire avec /etc/environment fichier.

11
JohnnyQ

Il est stocké dans le processus (Shell) et, depuis que vous l'avez exporté, tous les processus en cours sont générés.

Faire ce qui précède ne le stocke nulle part dans le système de fichiers tel que/etc/profile. Vous devez l'indiquer explicitement pour que cela se produise.

7
cletus