【发布时间】:2009-02-10 12:47:36
【问题描述】:
如果我在终端中输入,
export DISPLAY=:0.0
...shell 存储该环境变量的位置在哪里?
我使用的是 Ubuntu 8.10。我查看了 ~/.profile 和 /etc/profile 文件,找不到任何 DISPLAY 的踪迹。
【问题讨论】:
标签: linux environment-variables
如果我在终端中输入,
export DISPLAY=:0.0
...shell 存储该环境变量的位置在哪里?
我使用的是 Ubuntu 8.10。我查看了 ~/.profile 和 /etc/profile 文件,找不到任何 DISPLAY 的踪迹。
【问题讨论】:
标签: linux environment-variables
进程的环境变量存在于运行时,不存储在某个文件左右。它们存储在进程自己的内存中(在那里它们被发现传递给子进程)。但是
里面有一个虚拟文件/proc/pid/environ
这个文件显示了调用进程时传递的所有环境变量(除非进程覆盖了它的那部分内存——大多数程序不会)。内核通过该虚拟文件使它们可见。可以一一列举。例如查看进程3940的变量,可以这样做
cat /proc/3940/environ | tr '\0' '\n'
每个变量都由下一个变量的二进制零分隔。 tr 将零替换为换行符。
【讨论】:
environ 文件是否代表错误的值?你能不能展示一个利用它的程序?
键入set,您将获得所有当前变量的列表。
如果你想让某些东西持久化,把它放在~/.bashrc 或~/.bash_profile(如果你使用 bash)
【讨论】:
如果您想将环境用于系统范围内,您可以使用/etc/environment 文件。
【讨论】:
该变量未存储在某些脚本中。它只是由 X 服务器脚本设置的。您可以使用 set 查看当前设置的环境变量。
【讨论】:
它存储在进程 (shell) 中,并且由于您已将其导出,因此会产生任何进程。
执行上述操作不会将其存储在文件系统中的任何位置,例如 /etc/profile.你必须明确地把它放在那里才能发生。
【讨论】:
有 1 个文件可用于存储环境变量。
.bashrc
您可以添加变量并使用它们。例如,我添加了 Django 虚拟环境作为环境变量,现在我可以在任何地方访问它。将此添加到您的 bashrc 文件中
django_env='source/media/anish/Softwares/virtual_env/django2/bin/activate'
现在您需要重新启动系统以反映更改,并在重新启动后输入 $django_env 以启动您的虚拟环境。就这么简单。
【讨论】:
环境变量在RAM中的位置,存放在main()函数的栈顶。 setenv() 等人的任何动态修改。然后分配到别处
【讨论】: