Linux环境变量配置文件区别

读取

读取环境变量的方法:

  • export命令显示当前系统定义的所有环境变量
  • echo $PATH命令输出当前的PATH环境变量的值

目录

直接修改PATH的值

示例:export PATH=$PATH:你需要添加的变量

这里前面必须加上$PATH保证原有变量存在,使用:分割

注意事项:

  • 生效时间:立即生效
  • 生效期限:当前终端有效,窗口关闭后无效
  • 生效范围:仅对当前用户有效

修改~/.bashrc

在最后一行或者第一行加入:```

1
2
export 环境变量名称=地址
export PATH=$PATH:上面新建的环境变量名称(有几个加几个:分割)

^wdyodx

注意事项:

  • 生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bashrc生效
  • 生效期限:永久有效
  • 生效范围:仅对当前用户有效

    如果有后续的环境变量加载文件覆盖了PATH定义,则可能不生效

修改 ~/.bash_profile

类似:
![[Linux环境变量配置文件区别#^wdyodx]]
注意事项:

  • 生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bash_profile生效
  • 生效期限:永久有效
  • 生效范围:仅对当前用户有效

    如果没有~/.bash_profile文件,则可以编辑~/.profile文件或者新建一个

修改系统配置/etc/profile

需要sudo权限或者

类似:
![[Linux环境变量配置文件区别#^wdyodx]]
注意事项:

  • 生效时间:新开终端生效,或者手动source /etc/profile生效
  • 生效期限:永久有效
  • 生效范围:对所有用户有效

修改系统环境变量配置文件 /etc/environment

需要sudo权限或者w权限

类似:
![[Linux环境变量配置文件区别#^wdyodx]]
注意事项:

  • 生效时间:新开终端生效,或者手动source /etc/environment生效
  • 生效期限:永久有效
  • 生效范围:对所有用户有效

启动环境文件加载顺序

结论

系统环境变量 -> 用户自定义环境变量 /etc/environment -> /etc/profile -> ~/.profile

  1. /etc/environment
  2. /etc/profile
  3. /etc/bashrc
  4. /etc/profile.d/*.sh
  5. ~/.profile
  6. ~/.bashrc

验证

可再每个文件下加入:export TEST="$TEST:/当前文件名称-"
启动后:echo $TEST查看生成

先加载:/etc/environment 由系统自动加载

再加载:/etc/profile

  • 检查系统:/etc/bashrc
  • 检查系统:/etc/prfile.d/*.sh*

加载:~/.profile

  • 检查加载用户:~/.bashrc

建议

修改.bashrc文件,它可以把使用这些环境变量的权限控制到用户级别,只是针对某一个特定的用户。而修改 /etc/profile 文件,它是针对于所有的用户,使所有用户都有权使用这些环境变量。 相比较起来修改系统环境变量,它可能会给系统带来安全性的问题。
如果你的计算机仅仅作为开发使用,则推荐系统变量,否则针对用户设置。