Linux:环境变量存储在哪里?

时间:2009-02-10 12:47:37

标签: linux environment-variables

如果我输入终端,

export DISPLAY=:0.0

...存储该环境变量的shell在哪里?

我正在使用Ubuntu 8.10。我查看了〜/ .profile和/ etc / profile文件,找不到DISPLAY的痕迹。

6 个答案:

答案 0 :(得分:101)

进程的环境变量在运行时存在,并且不存储在某个文件中。它们存储在进程自己的内存中(这是他们发现传递给子进程的地方)。但是

中有一个虚拟文件
/proc/pid/environ

此文件显示调用进程时传递的所有环境变量(除非进程覆盖了其部分内存 - 大多数程序没有)。内核通过该虚拟文件使它们可见。人们可以列出它们。例如,要查看过程3940的变量,可以执行

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

每个变量由下一个变量的二进制零分隔。 tr将零替换为换行符。

答案 1 :(得分:32)

输入“set”,您将获得所有当前变量的列表。 如果你想要持久的东西把它放在〜/ .bashrc或〜/ .bash_profile中(如果你使用的是bash)

答案 2 :(得分:10)

如果您想将环境用于系统范围,可以使用/etc/environment文件。

答案 3 :(得分:7)

它存储在进程(shell)中,因为您已导出它,所以处理生成的任何进程。

执行上述操作不会将其存储在/ etc / profile等文件系统中的任何位置。你必须明确地将它放在那里才能实现。

答案 4 :(得分:0)

有 1 个文件可用于存储环境变量。

<块引用>

.bashrc

您可以添加变量并使用它们。例如,我添加了 Django virtual env 作为环境变量,现在我可以在任何地方访问它。将此添加到您的 bashrc 文件

django_env='source/media/anish/Softwares/virtual_env/django2/bin/activate' 

现在您需要重新启动系统以反映更改,并在重新启动后输入 $django_env 以启动您的虚拟环境。就这么简单。

答案 5 :(得分:-7)

该变量未存储在某些脚本中。它只是由X服务器脚本设置。您可以使用 set 检查当前设置的环境变量。