env 环境变量存哪里

Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量。
所以管理环境变量的文件也分为系统级和用户级的



1.系统级:
(1)/etc/profile:该文件是用户登录时,操作系统定制用户环境时使用的第一个文件,应用于登录到系统的每一个用户。该文件一般是调用/etc/bash.bashrc文件。
/etc/bash.bashrc:系统级的bashrc文件。
(2)/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。



2.用户级(这些文件处于家目录下):
(1)~/.profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。 这里是推荐放置个人设置的地方
(2)~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。不推荐放到这儿,因为 每开一个shell,这个文件会读取一次,效率肯定有影响。
~/.bash_profile or ~./bash_login:这里没有引用作者的,下面会提到



~/.pam_environment:用户级的环境变量设置文件,没有做测试,不知道管不管用。




https://blog.csdn.net/nbaDWde/article/details/80893399



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



/ proc / pid / environ
此文件显示调用进程时传递的所有环境变量(除非进程覆盖了其内存的那部分 - 大多数程序没有)。内核通过该虚拟文件使它们可见。人们可以列出它们。例如,为了查看过程3940的变量,可以做到



cat /proc/3940/environ | tr ‘\0’ ‘\n’
每个变量由下一个变量的二进制零分隔。 tr将零替换为换行符。



https://www.it-swarm.cn/zh/linux/linux%EF%BC%9A%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%AD%98%E5%82%A8%E5%9C%A8%E5%93%AA%E9%87%8C%EF%BC%9F/958284531/



Category linux