当一个用户登陆Linux系统或使用 su
命令切换到另外一个用户时,设置用户环境第一个读取的文件就是 /etc/profile
,此文件为系统全局变量配置文件,且仅仅在第一次登陆系统时才会全局运行 /etc/profile
。shell
注意上面描述的几个关键:vim
设置用户环境第一个读取的脚本文件
能够推理出在它以后读取的文件设置环境变量将会会覆盖/etc/profile
文件中配置的环境变量;仅仅在第一次登陆系统时才会全局运行 /etc/profile
能够解释一个场景:咱们在使用Ubuntu等桌面Linux系统时,用快捷键ctrl+alt+t
打开的shell终端里,修改环境变量后使用source /etc/profile
这个命令执行生效,新的环境变量只能在当前的终端里面有效,打开新的shell终端时,刚才有效的环境变量在新的终端是不生效的;因此全局生效/etc/profile
环境变量的正确方式是注销重登陆或者直接重启系统
以添加JDK的环境变量为例子,vim /etc/profile
打开文件, 在文件最后添加:.net
export JAVA_HOME=/opt/jdk1.8.0_191
export PATH=$JAVA_HOME/bin:$PATH
在 /etc/profile
文件以后,登陆系统时读取环境信息使用的第二个文件就是 /etc/environment
文件,理论上在这个文件中也能够设置环境变量,环境变量达到的效果也和 /etc/profile
文件的环境变量效果同样,全局永久的环境变量;code
可是,最好别经过这个文件添加或修改环境变量,由于 /etc/profile
文件是面对系统用户的,填写错了大不了最多致使系统里的全部用户没法使用,可是 /etc/environment
文件是面对系统的,系统经过 /etc/environment
文件中的PATH去找对应的东西,以Ubuntu为例子,若是不当心更改 /etc/environment
文件中把PATH影响到,就没法进入桌面界面了,也没法使用一些命令了;blog
因此,/etc/environment
文件过重要了,仅仅想要设置一个全局的环境变量,彻底没有必要用这个文件。get
扩展文章:登录