/etc/profile和/etc/environment的区别

本文详细解析了Linux系统中环境变量的配置过程,重点介绍了/etc/profile和/etc/environment两个核心文件的作用与区别。阐述了如何通过这些文件全局设置环境变量,如JDK路径,并强调了在不同场景下正确操作的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/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/的区别

Linux下环境变量配置

转载于:https://my.oschina.net/calmsnow/blog/2989579

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值