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'