计算机知识篇

什么是环境变量

环境变量的概念

想象你在一家公司上班,有些信息是全公司共享的,比如公司地址、WiFi密码、打印机IP。你不需要每次都问,因为它们写在公告板上,所有人都能看到。

环境变量就是操作系统的"公告板"——它存储着一些全局可用的键值对信息,任何程序都可以读取。

加载图表中...

最重要的环境变量:PATH

PATH 是最关键的环境变量之一。当你在终端输入一个命令时,系统会在 PATH 列出的目录中依次查找对应的程序。

# 查看 PATH 变量
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

# 当你输入 "node" 命令时,系统会依次在这些目录中查找 node 程序
加载图表中...

💡 如果你安装了某个工具但终端提示 "command not found",大概率是因为它的路径没有加入 PATH

在终端中操作环境变量

# 查看所有环境变量
$ env

# 查看某个环境变量
$ echo $HOME
/Users/xuanyuan

# 临时设置环境变量(仅当前终端有效)
$ export MY_VAR="hello"
$ echo $MY_VAR
hello

# Windows PowerShell 中
> $env:MY_VAR = "hello"

项目中的 .env 文件

在实际开发中,我们通常用 .env 文件来管理项目的环境变量:

# .env 文件内容
DATABASE_URL=mysql://user:password@localhost:3306/mydb
API_KEY=sk-abc123456789
NEXT_PUBLIC_SITE_URL=https://example.com
NODE_ENV=development

为什么需要 .env 文件?

原因说明
安全性密钥不写在代码里,不会被推到 GitHub
灵活性不同环境(开发/测试/生产)用不同的值
团队协作每个开发者可以有自己的配置

.env 文件的重要规则

# ⚠️ .env 文件必须添加到 .gitignore 中!
# .gitignore 文件内容:
.env
.env.local
.env.production

⚠️ 永远不要把包含密钥的 .env 文件提交到 Git 仓库! 这是新手最常见的安全事故。

常见环境变量场景

加载图表中...

在代码中读取环境变量

// Node.js / Next.js
const apiKey = process.env.API_KEY;
const dbUrl = process.env.DATABASE_URL;

// 前端环境变量(Next.js 中必须以 NEXT_PUBLIC_ 开头)
const siteUrl = process.env.NEXT_PUBLIC_SITE_URL;
# Python
import os
api_key = os.environ.get("API_KEY")
db_url = os.environ.get("DATABASE_URL")

小结

  • 环境变量是操作系统级别的全局键值对
  • PATH 决定了终端能找到哪些程序
  • .env 文件用于管理项目的敏感配置
  • 绝不把 .env 提交到 Git,这是安全底线
  • 不同环境使用不同的环境变量值