如果我在终端输入以下命令:
export DISPLAY=:0.0
Shell 存储环境变量的位置在哪里?
我正在使用 Ubuntu 8.10。我查看了 ~/.profile 和 /etc/profile 文件,但是没有找到 DISPLAY 的任何踪迹。
如果我在终端输入以下命令:
export DISPLAY=:0.0
Shell 存储环境变量的位置在哪里?
我正在使用 Ubuntu 8.10。我查看了 ~/.profile 和 /etc/profile 文件,但是没有找到 DISPLAY 的任何踪迹。
cat /proc/3940/environ | tr '\0' '\n'
每个变量都由一个二进制零与下一个变量分隔开,tr 命令将这个零替换为换行符。
environ
文件是否代表错误的值?你能否展示一个利用这一点的程序? - Johannes Schaub - litb输入set
命令,将显示当前所有变量的列表。
如果想要变量持久保存,可以将其添加到~/.bashrc
或~/.bash_profile
文件中(如果使用bash)。
/etc/environment
文件进行设置。它被存储在进程(shell)中,并且由于您已导出它,任何由该进程生成的进程都可以使用它。
以上操作不会像/etc/profile一样将其存储在文件系统中的任何位置。如果想要这样做,则必须显式地将其放入那里。
关于环境变量在RAM中的位置,它们存储在main()函数的堆栈顶部。任何由setenv()等动态修改的内容都会被分配到其他地方。
有1个文件可用于存储环境变量。
.bashrc
您可以添加您的变量并使用它们。例如,我已将Django虚拟环境添加为环境变量,现在我可以在任何地方访问它。将此添加到您的bashrc文件中。
django_env='source/media/anish/Softwares/virtual_env/django2/bin/activate'
现在您需要重新启动系统以反映更改,然后重新启动并输入$django_env来启动您的虚拟环境。就这么简单。
~/.profile
、/etc/environment
等)。.bashrc
(实际上是~/.bashrc
)对于设置环境变量来说是一个非常糟糕的选择,因为它只被_bash_读取,并且仅在_interactive_和_non-login_ shell中读取。 - MestreLion那个变量并没有存储在某个脚本中。它只是由X服务器脚本设置的。您可以使用set命令检查当前设置的环境变量。