DEV Community

Woody
Woody

Posted on

什么是环境变量 环境变量有什么用

环境变量详解及作用

环境变量(Environment Variables)是操作系统或程序运行时使用的动态键值对(Key-Value),用于存储系统配置、路径信息、用户偏好等数据。它们可以被操作系统、Shell 脚本、应用程序访问,影响程序的运行方式。


1. 环境变量的作用

环境变量的主要用途包括:

(1) 配置系统行为

  • 定义临时或持久的系统设置(如语言、时区、默认编辑器等)。
  • 示例:
    • LANG=en_US.UTF-8(设置系统语言)
    • TZ=Asia/Shanghai(设置时区)

(2) 存储文件路径

  • 让程序知道关键文件或工具的存放位置(如 Python、Java、Node.js 的安装路径)。
  • 示例:
    • PATH(存储可执行程序的搜索路径)
    • JAVA_HOME(指定 JDK 安装路径)
    • PYTHONPATH(Python 模块搜索路径)

(3) 控制程序运行方式

  • 某些程序依赖环境变量调整行为(如调试模式、日志级别)。
  • 示例:
    • DEBUG=True(开启调试模式)
    • FLASK_ENV=development(Flask 框架开发模式)

(4) 安全存储敏感信息

  • 避免在代码中硬编码密码、API 密钥等(如数据库连接信息)。
  • 示例:
    • DATABASE_URL=postgres://user:pass@localhost:5432/db
    • API_KEY=12345abcde

2. 常见环境变量示例

变量名 作用
PATH 系统查找可执行文件的目录列表
HOME / USERPROFILE 用户主目录(Linux/macOS: /home/user,Windows: C:\Users\user
PWD 当前工作目录
SHELL 默认 Shell 程序(如 /bin/bash
EDITOR 默认文本编辑器(如 nanovimcode
HTTP_PROXY / HTTPS_PROXY 网络代理设置
PYTHONPATH Python 额外模块搜索路径
CONDA_PREFIX 当前 Conda 环境的路径

3. 如何查看和设置环境变量?

(1) 查看所有环境变量

  • Windows(CMD/PowerShell)
  set       # 查看所有变量
  echo %PATH%  # 查看 PATH
Enter fullscreen mode Exit fullscreen mode
  • Linux/macOS(Bash/Zsh)
  env       # 查看所有变量
  echo $PATH   # 查看 PATH
  printenv PYTHONPATH  # 查看特定变量
Enter fullscreen mode Exit fullscreen mode

(2) 临时设置环境变量

  • Windows(CMD)
  set VAR_NAME=value
Enter fullscreen mode Exit fullscreen mode
  • Linux/macOS(Bash)
  export VAR_NAME=value
Enter fullscreen mode Exit fullscreen mode

(3) 永久设置环境变量

  • Windows

    • 通过 系统属性 → 高级 → 环境变量 修改。
    • 或在 PowerShell 中:
    [Environment]::SetEnvironmentVariable("VAR_NAME", "value", "User")
    
  • Linux/macOS

    • 修改 ~/.bashrc~/.zshrc~/.profile
    echo 'export VAR_NAME="value"' >> ~/.bashrc
    source ~/.bashrc  # 重新加载配置
    

4. 环境变量在编程中的应用

Python 示例

import os

# 获取环境变量
python_path = os.getenv("PYTHONPATH")
print(f"PYTHONPATH: {python_path}")

# 设置临时环境变量(仅在当前进程有效)
os.environ["MY_VAR"] = "hello"
print(os.getenv("MY_VAR"))  # 输出 "hello"
Enter fullscreen mode Exit fullscreen mode

Node.js 示例

// 获取环境变量
const apiKey = process.env.API_KEY;
console.log(`API Key: ${apiKey}`);

// 运行程序时传入变量(Linux/macOS)
// API_KEY=123 node app.js
Enter fullscreen mode Exit fullscreen mode

5. 为什么环境变量重要?

  1. 跨平台兼容性:不同系统(Windows/Linux/macOS)可以统一配置。
  2. 安全性:避免敏感信息(如密码)直接写在代码里。
  3. 灵活性:不同环境(开发/测试/生产)可以轻松切换配置。
  4. 可维护性:修改配置无需重新编译代码。

总结

  • 环境变量是操作系统和程序运行时使用的动态配置
  • 主要用途:存储路径、控制程序行为、管理敏感数据。
  • 查看/设置方法set(Windows)、export(Linux/macOS)、os.environ(Python)。
  • 最佳实践:用环境变量管理配置,而不是硬编码在代码中。

如果你有更具体的应用场景(如 Python 开发、Docker 配置等),可以进一步探讨!

Top comments (0)