linux环境变量配置文件区别

在 Linux 系统中,环境变量可以通过多个配置文件进行设置。不同的配置文件作用范围、加载时机和适用用户各不相同。下面是几个常见的环境变量配置文件及其区别:


一览表(按优先级 & 作用范围)

文件名类型作用用户作用范围加载时机
/etc/profile全局所有用户登录 shell登录时加载一次
/etc/profile.d/*.sh全局所有用户登录 shell/etc/profile 调用
~/.bash_profile用户级当前用户登录 shell登录时加载一次
~/.bash_login用户级当前用户登录 shell如果没有 .bash_profile
~/.profile用户级当前用户登录 shell如果没有上面两个
~/.bashrc用户级当前用户非登录 shell、交互式每次打开终端或运行 bash
/etc/bashrc/etc/bash.bashrc全局所有用户非登录 shell、交互式.bashrc 调用
/etc/environment全局所有用户所有程序(登录/非登录)系统启动时加载

登录 Shell 与 非登录 Shell 的区别

  • 登录 Shell:使用 ssh 登录、控制台登录、图形界面登录。

    • 会加载:/etc/profile~/.bash_profile 等。
  • 非登录 Shell:直接打开终端、执行脚本等。

    • 会加载:~/.bashrc

实际配置建议

设置 Java 环境变量为例:

设置当前用户有效的 Java 环境变量:

编辑 ~/.bash_profile~/.bashrc

export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH

修改后执行:

source ~/.bash_profile
# 或 source ~/.bashrc
设置全局环境变量(所有用户生效):

编辑 /etc/profile/etc/environment(推荐):

  • /etc/profile 添加:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
  • /etc/environment(格式更简单,不支持复杂逻辑):
JAVA_HOME="/usr/lib/jvm/java-17-openjdk"
PATH="/usr/lib/jvm/java-17-openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"

如何验证环境变量是否生效

echo $JAVA_HOME
echo $PATH

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

思静鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值