环境变量
从你开始学习编程起就一直在使用变量。你可能会想:操作系统或者其上运行的环境是否也定义了某些变量,从而让其他程序能够运行?答案是肯定的,这些变量就是 环境变量,它们是操作系统中非常重要的一部分。
什么是环境变量?
环境变量是定义在普通程序之外的变量。它们由操作系统提供支持,可以被定义、编辑、保存并在更大范围内使用。顾名思义,环境变量由 名称/值对 组成。不同于你在代码或终端里定义的变量,环境变量的作用域可能覆盖整个操作系统。
程序中的变量及其值决定了程序的运行方式。同样,环境变量也会决定计算机上运行的各个进程的行为。环境变量在不同操作系统中的实现和语法并不相同。
环境变量如何工作?
每个进程都有自己的一组环境变量。当一个进程被创建时,它会从其父进程那里继承环境变量。进程可以在运行时按需使用这些环境变量中的值。
-
在 Unix 系统中,环境变量会在系统启动时由启动脚本进行初始化。
-
在 Microsoft Windows 中,每个环境变量的默认值存储在注册表中,或者在
AUTOEXEC.BAT文件中设置。
在 Unix 和类 Unix 系统 中,环境变量区分大小写,你可以通过在变量名前加上 $ 来获取值。而在 DOS 或 Windows 中,环境变量不区分大小写,你可以用 %变量名% 的形式来获取。
为什么需要环境变量?
由于环境变量与整个系统相关,因此你可以在多个程序和不同场景中访问和使用它们。这带来了许多好处,比如:
-
数据分离:不同环境(开发、本地、生产、测试)下的配置不需要写死在代码中,而是通过环境变量进行管理。
-
易于管理:可以方便地切换环境配置,而无需修改代码。
-
提高安全性:敏感数据(如密码、令牌、API 密钥)不应直接写在代码中,而是通过环境变量安全地管理。
此外,环境变量还用于存储系统运行所必需的数据。这些变量会影响某些进程的行为。你可能见过一些常见的环境变量,比如:
-
PATH:指定可执行文件的搜索路径 -
TEMP:存放进程临时文件的位置 -
HOME:当前用户的主目录
由于进程有自己的环境变量,并且只会把它们传递给子进程,这意味着环境变量也可以作为一种 父子进程间的数据和偏好设置传递方式。
总结
环境变量是操作系统不可或缺的一部分。某种意义上说,它们就是操作系统的“变量”。理解环境变量不仅能帮助你更好地理解操作系统的工作方式,也能让你更高效、更安全地使用系统和编写程序。

被折叠的 条评论
为什么被折叠?



