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