📚 什么是环境变量?
环境变量(Environment Variables)是操作系统用来存储配置信息的一种机制。 它们就像是一个全局的配置字典,任何程序都可以读取这些值来了解系统环境或进行相应的配置。
📢 生活类比
想象一下,环境变量就像是学校的公共公告栏:
- 公告栏上贴满了各种信息(环境变量),比如"图书馆在3楼"、"食堂开放时间"等
- 所有学生(程序)都可以随时查看公告栏,获取需要的信息
- 如果公告栏上的信息更新了(环境变量改变),所有学生都会看到新信息
- 不同学校(不同操作系统)的公告栏格式可能不同,但作用是一样的
- 学生不需要记住所有信息,需要时去公告栏查看即可
环境变量存储区
读取 PATH 变量
读取 JAVA_HOME 变量
读取 API_KEY 变量
❓ 为什么需要环境变量?
1. 跨程序共享配置
多个程序可以共享同一个配置值,无需在每个程序中重复设置。
2. 系统级配置
存储系统级别的设置,如系统路径、用户信息等。
3. 安全性
敏感信息(如API密钥)可以存储在环境变量中,而不是硬编码在程序里。
4. 灵活性
同一程序在不同环境下可以使用不同的配置,无需修改代码。
📋 常见的环境变量
以下是一些在Windows和类Unix系统中常见的环境变量:
🔍 如何查看环境变量?
Windows PowerShell
Get-ChildItem Env:
# 查看特定环境变量
$env:PATH
$env:USERPROFILE
# 或者使用
echo $env:PATH
Windows CMD
set
# 查看特定环境变量
echo %PATH%
echo %USERPROFILE%
Linux/Mac 终端
env
# 或
printenv
# 查看特定环境变量
echo $PATH
echo $HOME
# 使用 printenv
printenv PATH
Python
# 查看所有环境变量
for key, value in os.environ.items():
print(f"{key} = {value}")
# 查看特定环境变量
print(os.environ.get('PATH'))
print(os.environ.get('HOME'))
Node.js
console.log(process.env)
// 查看特定环境变量
console.log(process.env.PATH)
console.log(process.env.HOME)
🎮 演示
尝试在下面的输入框中输入一个环境变量名,看看它的值:
⚙️ 如何设置环境变量?
临时设置(仅当前会话有效)
$env:MY_VAR = "我的值"
# CMD
set MY_VAR=我的值
永久设置(系统级)
- 右键点击"此电脑" → "属性"
- 点击"高级系统设置"
- 点击"环境变量"按钮
- 在"系统变量"或"用户变量"中添加或编辑变量
永久设置(命令行)
[System.Environment]::SetEnvironmentVariable("MY_VAR", "我的值", "User")
临时设置(仅当前会话有效)
export MY_VAR="我的值"
# 查看
echo $MY_VAR
永久设置(用户级)
echo 'export MY_VAR="我的值"' >> ~/.bashrc
source ~/.bashrc
永久设置(系统级)
sudo nano /etc/environment
💼 实际应用场景
场景 1: 配置开发环境
设置 JAVA_HOME 指向Java安装目录, 这样所有Java开发工具都能找到正确的Java版本。
场景 2: API密钥管理
将敏感信息如API密钥存储在环境变量中,而不是硬编码在代码里, 提高安全性和代码的可移植性。
api_key = "sk-1234567890abcdef" # 危险!
# 好的做法
api_key = os.environ.get('API_KEY') # 安全!
场景 3: 多环境配置
同一程序在不同环境(开发、测试、生产)使用不同的配置:
- 开发环境:ENV=development
- 测试环境:ENV=testing
- 生产环境:ENV=production
⚠️ 注意事项
1. 大小写敏感性
Windows环境变量不区分大小写,但Linux/Mac区分大小写。 建议统一使用大写字母和下划线。
2. 路径分隔符
Windows使用分号(;)分隔路径,Linux/Mac使用冒号(:)。 例如PATH变量:
- Windows:
C:\Windows;C:\Program Files - Linux/Mac:
/usr/bin:/usr/local/bin
3. 临时 vs 永久
临时设置的环境变量只在当前终端会话中有效,关闭终端后就会消失。 如果需要永久保存,必须使用系统设置或配置文件。
📝 总结
环境变量是操作系统提供的一种全局配置机制,它允许:
- ✅ 跨程序共享配置信息
- ✅ 存储系统级设置
- ✅ 安全地管理敏感信息
- ✅ 实现灵活的配置管理
掌握环境变量的使用,是每个开发者和系统管理员的基本技能!