Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux:环境变量存储在哪里?_Linux_Environment Variables - Fatal编程技术网

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

Linux:环境变量存储在哪里?,linux,environment-variables,Linux,Environment Variables,如果我输入一个终端 export DISPLAY=:0.0 。。。shell在哪里存储环境变量 我正在使用Ubuntu 8.10。我查看了文件~/.profile和/etc/profile,找不到任何显示痕迹。键入“set”,您将得到所有当前变量的列表。 如果您想持久化某些内容,请将其放入~/.bashrc或~/.bash\u配置文件(如果您使用的是bash)该变量不存储在某些脚本中。它只是由X服务器脚本设置的。您可以使用set检查当前设置的环境变量。它存储在进程(shell)中,并且由于您已

如果我输入一个终端

export DISPLAY=:0.0
。。。shell在哪里存储环境变量

我正在使用Ubuntu 8.10。我查看了文件~/.profile和/etc/profile,找不到任何显示痕迹。

键入“set”,您将得到所有当前变量的列表。
如果您想持久化某些内容,请将其放入~/.bashrc或~/.bash\u配置文件(如果您使用的是bash)

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

它存储在进程(shell)中,并且由于您已经导出了它,进程生成的任何进程都可以


执行上述操作不会将其存储在文件系统中的任何位置,如/etc/profile。要实现这一点,您必须明确地将它放在那里。

进程的环境变量存在于运行时,并且不存储在某个文件中。它们存储在进程自己的内存中(在那里它们被发现传递给子进程)。但是有一个虚拟文件

/proc/pid/environ
每个变量由下一个变量的二进制零分隔。tr将零替换为新行

如果您想在系统范围内使用环境,可以使用
/etc/environment
文件来实现。

实际上,它是由shell为X客户端设置的。当然,它是由启动X服务器的脚本设置的。内核不存储环境变量,而是以用户模式存储/如果重新分配了环境块,proc//environ可能会返回错误的值。@我的印象是内核存储了这些值,并使它们对用户程序可见,可写入用户程序。如果以定义的方式更改环境变量,
environ
文件是否表示错误的值?您可以展示一个利用该漏洞的程序吗?内核将它们存储在用户空间中的特定位置,这就是/proc//environ公开的内容。但是,如果使用putenv或setenv修改程序中的环境,则可能会重新分配初始环境块(以容纳新变量)。新变量不会显示在/proc//environ的输出中。@那么,新更新的环境将停留在哪里?哪个命令显示它?@atomies:它们存储在哪个虚拟地址 ? x86ʀ64的情况就是这样。问题是在ʀ的什么地方ᴀᴍ.@user2284570在问题中的何处指定?你能详细说明一下吗?在记忆中:
cat /proc/3940/environ | tr '\0' '\n'