如果我输入终端,
export DISPLAY=:0.0
...存储该环境变量的shell在哪里?
我正在使用Ubuntu 8.10.我查看了文件〜/ .profile和/ etc/profile,找不到DISPLAY的痕迹.
进程的环境变量在运行时存在,并且不存储在某个文件中.它们存储在进程自己的内存中(即发现它们传递给子进程的位置).但是有一个虚拟文件
/proc/pid/environ
此文件显示调用进程时传递的所有环境变量(除非进程覆盖了其内存的那部分 - 大多数程序没有).内核通过该虚拟文件使它们可见.人们可以列出它们.例如,为了查看过程3940的变量,可以做到
cat /proc/3940/environ | tr '\0' '\n'
每个变量由下一个变量的二进制零分隔.tr将零替换为换行符.
输入"set",您将获得所有当前变量的列表.如果你想要持久化的东西把它放在〜/ .bashrc或〜/ .bash_profile中(如果你正在使用bash)
如果要将环境放在系统范围内,可以使用/etc/environment
file来实现.
它存储在进程(shell)中,因为您已导出它,所以处理生成的任何进程.
执行上述操作不会将其存储在/ etc/profile等文件系统中的任何位置.你必须明确地将它放在那里才能实现.