环境变量配置文件
用户 |
环境变量配置文件 |
---|---|
所有用户 |
/ect/profile /etc/bashrc /etc/environment |
root |
~/.bashrc ~/.bash-profile |
非root用户 |
/home/非root用户名/.bashrc |
- /ect/profile
- /etc/bashrc
- /etc/environment
root
- ~/.bashrc
- ~/.bash-profile
非root用户 /home/非root用户名/.bashrc
更新环境变量
source /etc/profile
or
. /etc/profile
环境变量配置方式
Linux读取环境变量
读取系统已有环境变量的方法
export 显示当前系统定义的所有环境变量
echo $PATH 输出当前的PATH环境变量的值

PATH 变量定义的是运行命令的查找路径,以冒号 : 分割不同的路径
方式一: export PATH
export PATH=/usr/local/src/python3/bin:$PATH
# 或者把PATH放在前面
export PATH=$PATH:/usr/local/src/python3/bin
注意点
- 生效时间:立即生效
- 生效期限:当前打开的终端有效,窗口关闭后无效
- 生效范围:当前登录用户
- 需要加上$PATH,否则会覆盖原有路径
方式二: vim ~/.bashrc
vim ~/.bashrc
# 在最后一行加上
注意点
- 生效时间:使用相同的用户打开新的终端时生效,或者手动 生效
source ~/.bashrc
- 生效期限:永久有效
- 生效范围:当前登录用户
- 可能会被后续的环境变量文件覆盖了PATH的值
方式三: vim ~/.bash_profile
vim ~/.bash_profile
# 在最后一行加上
注意点
- 生效时间:使用相同的用户打开新的终端时生效,或者手动 生效
source ~/.bash_profile
- 生效期限:永久有效
- 生效范围:当前登录用户
- 如果没有 文件,则可以编辑 ~/.profile 文件或者新建一个
~/.bash_profile
方式四: vim /etc/bashrc
# 如果/etc/bashrc文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/bashrc
vim /etc/bashrc
# 在最后一行加上
export PATH=$PATH:/usr/local/src/python3/bin
注意点
- 生效时间:使用相同的用户打开新的终端时生效,或者手动 生效
source /etc/bashrc
- 生效期限:永久有效
- 生效范围:所有用户
方式五: vim /etc/profile
# 如果/etc/profile文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/profile
vim /etc/profile
# 在最后一行加上
export PATH=$PATH:/usr/local/src/python3/bin
注意点
- 生效时间:使用相同的用户打开新的终端时生效,或者手动 生效
source /etc/profile
- 生效期限:永久有效
- 生效范围:所有用户
方式六: vim /etc/environment
# 如果/etc/bashrc文件不可编辑,需要修改为可编辑
chmod -v u+w /etc/environment
vim /etc/profile
# 在最后一行加上
export PATH=$PATH:/usr/local/src/python3/bin
注意点
- 生效时间:使用相同的用户打开新的终端时生效,或者手动 生效
source /etc/environment
- 生效期限:永久有效
- 生效范围:所有用户
环境变量加载原理解析
思考:上述六种环境变量的配置方式, Linux是按什么顺序加载的呢?是否会相互覆盖相同的环境变量呢?
环境变量的分类
用户级别环境变量配置文件:
~/.bashrc
~/.profile
- (centos7 无)
~/.bash_profile
/home/非root用户名/.bashrc
系统级别环境变量配置文件:
/etc/bashrc
/etc/profile
- (centos7 无)
/etc/bash_profile
/etc/environment
环境变量加载顺序
- /etc/environment
- /etc/profile
- /etc/bashrc
- ~/.profile
- ~/.bashrc
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-11-18 linux添加service服务,设置自启
2020-11-18 [Linux]服务管理:service、systemctl、chkconfig
2020-11-18 详解Linux 服务管理两种方式service和systemctl
2020-11-18 linux 将自己的服务添加到系统service服务
2017-11-18 UCRT: VC 2015 Universal CRT, by Microsoft
2017-11-18 vs2015部署---下一代VC运行时库系统:the Universal CRT
2017-11-18 VS2015开发的C++应用如何不依赖Visual C++ 2015 redistributable?