Linux环境变量文件

在Linux中有多个文件涉及到环境变量,不同文件之间的生效范围不同。可以配置环境变量的文件有/etc/profile/etc/bashrc/etc/profile.d/*.sh~/.bashrc~/.bash_profile等。它们的读入顺序也有所不同

/etc/profile

该文件为系统级别的环境变量,为每个用户设置环境变量。当用户第一次登录的时候,该文件被执行。在执行的时候会读取/etc/profile.d目录下的脚本文件并进行执行,因此我们可以在该目录下新建.sh文件配置我们自己的环境变量,方便管理。

/etc/bashrc

在执行完/etc/prifile中的内容之后,如果用户运行的是bash,那么接着会执行这个文件。也是系统级别的环境变量。文件中也会读取/etc/profile.d目录下的脚本文件并进行执行。每当一个新的bash shell被打开时,会执行此文件。一般来说,如果想要每个使用bash的用户新开一个bash或者每次登录都执行某些操作,可以在这个文件中设置。

~/.bash_profile

该文件属于用户级别的环境变量。当用户登录的时候,该文件仅仅执行一次。默认情况下,它会执行用户的.bashrc文件。该文件的主要特点就是在登录的时候仅执行一次。

~/.bashrc

该文件属于用户级别的环境变量,在登录的时候,或者每次打开一个新的shell的时候,会执行该文件。默认情况下,该文件会执行/etc/bashrc文件。

login shell与非login shell

这里还有一个login shell和non-login shell的区别。简单来说,我们通过终端输入用户名密码登录系统之后,得到的就是一个login shell,而当我们执行ssh xxx command,即只是通过ssh到某个机器执行某条命令,则属于non-login shell。

这两种shell的主要区别在于启动的时候会加载不同的配置文件。

login shell会加载上面所说的所有文件,而non-login shell只会加载~/.bashrc文件,当然由于文件中的设置关系,也会依次执行到/etc/bashrc,以及/etc/profile.d目录下的脚本文件。

因此无论哪种shell,在启动的时候都会加载/etc/profile.d/*.sh中设置的环境变量。


Linux环境变量文件
http://example.com/2022/07/20/Linux环境变量文件/
作者
EverNorif
发布于
2022年7月20日
许可协议