在Linux中,我们一般将环境变量信息配置到不同的文件中,常用的配置文件有
- /etc/profile
- /etc/bashrc
- ~/.bash_profile
- ~/.bashrc
- ~/.bash _logout
上面几个配置主要是在交互式登录Shell和交互式非登录Shell有区别,会加载不同的配置。
交互式登录Shell
就是登录Linux系统,你输入用户名和密码后执行的,或su -l. 用户名方式
非登录Shell
就是你进入系统后,开一个终端Bash执行的。
/etc/profile
一般为系统配置,为系统的每个用户设置环境信息, 当用户第一次登录时,该文件被执行, 并从/etc/profile.d目录的配置文件中搜集shell的设置.
对 /etc/profile
的修改必须得重启才会生效,而且每个用户都是有效的。
/etc/profile.d/
可以理解为/etc/profile的一部分,只不过可以根椐类别或功能将配置拆分成若干个文件,这样更清晰也便于维护。
/etc/bashrc
为每个运行 Bash Shell 的用户执行该文件,当Bash Shell打开时,该文件被执行,其配置对所有使用bash的用户打开的每个Bash都有效。当被修改后,不用重启只需要打开一个新的 Bash 即可生效。
~/.bash_profile
文件在用户目录下,为当前用户设置专属的环境信息和启动程序,当用户登录时该文件执行一次,并执行当前用户的 .bashrc 文件。如果有修改,也需要重启才能生效。
~/.bashrc
为当前用户设置专属的 Bash 信息,当每次打开新的Shell时,该文件被执行。如有修改,不需要重启只需要开一个新的Shell终端就行了。
~/.bash_logout
当前用户每次退出Bash Shell时执行该文件。
以上需要重启才能生效的文件,是通过类似 source ~/.bash_profile
这样的方式暂时生效的,并不是真的重启电脑。