环境变量——用户变量和系统变量
在操作系统中,环境变量是用来定义系统运行环境的一些参数。环境变量分为用户变量和系统变量,它们在注册表中有对应的项,具有不同的作用和区别。
1.用户变量
1.1. 概念
用户变量是与每个用户账户相关联的,它们只对当前用户有效,不会影响其他用户。
用户变量可以存储用户特定的配置信息,例如用户偏好设置、个人路径等。用户变量的设置对于每个用户来说是独立的,一个用户的变量不会影响其他用户。用户变量的修改只对当前用户会话生效,当用户注销或重新登录时,修改的环境变量才会生效。用户变量的编辑和管理通常由用户自身进行。
定义:用户变量是专门为每个使用计算机的用户设置的环境变量,就像是每个用户自己的 “小抽屉”,里面放着自己专用的东西。
作用范围:仅对当前登录的用户有效。如果你的电脑有多个用户账户,每个用户的用户变量互不干扰。比如,用户 A 设置了一个用户变量来指定自己的工作文档路径,当用户 A 登录时,计算机知道到哪里去找这些文档,但其他用户登录时不会受此路径影响。
应用场景:
- 个性化配置:假设你是一个程序员,你可能在自己的用户变量里设置了一个指向自己常用代码库的路径。这样,当你在命令行或者开发工具中调用代码库相关命令时,系统就能找到它。
- 软件配置偏好:某些软件允许用户通过用户变量来保存自己的配置偏好。比如音乐播放器,你可以在用户变量中设置自己喜欢的音乐存储路径,这样播放器就能直接打开这个路径下的音乐。
1.2. 实例分析
IntelliJ IDEA
:指定了 IntelliJ IDEA 2024.1.1 版本的安装路径下的bin
文件夹。这个环境变量可能会在系统需要调用 IntelliJ IDEA 的某些组件或工具时使用,确保系统能够快速找到相应的可执行文件。
OneDrive
和OneDriveConsumer
:这两个变量都指向用户名为 “吴伊晴” 的 OneDrive 文件夹路径。这使得系统和相关软件能够方便地访问用户的 OneDrive 云存储,实现文件的同步和管理。
PyCharm
和PyCharm Community Edition
:分别指定了 PyCharm 和 PyCharm Community Edition 不同版本的安装路径下的bin
文件夹。与IntelliJ IDEA
类似,这个环境变量有助于系统在需要时快速找到 PyCharm 的相关可执行文件。
Path
变量中包含了与 Python 3.9 相关的脚本目录路径C:\Users\吴伊晴\AppData\Loca\\Programs\Python\Python39\Scr...
,使得系统能够方便地找到 Python 相关的脚本和工具。
TEMP
和TMP
都被设置为C:\Users\吴伊晴\AppData\Local\Temp
,这个路径用于存储临时文件,许多程序在运行过程中会使用此路径来暂存数据。
2.系统变量
系统变量是与整个操作系统相关联的,它们对所有用户有效,适用于系统中的所有用户账户。
系统环境变量通常用于存储全局配置信息,例如系统路径、系统级别的库路径等。系统环境变量的设置对于整个系统和所有用户都是共享的,一个用户的变量会影响其他用户。系统环境变量的修改会立即生效,无需重新登录或注销。系统环境变量的编辑和管理通常需要管理员权限。
定义:系统变量是整个计算机系统都需要知道的信息,就像是整个房子(计算机系统)的公共设施,供所有住户(用户)使用。
作用范围:对所有用户账户都有效,无论哪个用户登录计算机,系统变量都在起作用。例如,系统变量中定义了系统程序(如 Windows 的命令提示符或 Linux 的 bash)的默认搜索路径,这是每个用户在操作命令提示符时都需要的信息。
应用场景:
- 系统路径设置:系统需要知道一些重要程序的位置,如操作系统的核心程序和系统自带命令工具的路径。当你在命令行输入一个命令,比如 “ping”(一个用于测试网络连接的命令),系统会通过系统变量里的路径信息找到 “ping” 程序并执行它。
- 软件共享资源:某些软件需要共享的资源或配置会使用系统变量。例如,Java 运行环境的安装路径通常会被设置为系统变量,这样无论哪个用户在计算机上运行 Java 程序,系统都能找到 Java 运行环境来执行程序。
3.优先级
当用户变量和系统变量中存在同名变量时,Windows 会将用户变量覆盖系统变量。
对于普通变量,用户环境变量优先级高于系统环境变量。系统会先检查用户变量,之后再检查系统变量。
对于 Path 变量,系统环境变量优先级高于用户环境变量。Windows 在查找指令的时候,是按 Path 中的路径从前往后找,直至在某个路径中找到了该指令。如果系统变量 Path 中有对应指令的话,Windows 就不会再去用户变量 Path 中查找。
总结起来,用户环境变量是与每个用户账户关联的,用于存储用户特定的配置信息,而系统环境变量是与整个操作系统关联的,用于存储全局配置信息。用户环境变量只对当前用户有效,而系统环境变量对所有用户有效。用户环境变量的修改需要重新登录才能生效,而系统环境变量的修改会立即生效。