Windows 环境变量完全指南:系统变量、用户变量与 PATH 详解

1. 什么是环境变量?

环境变量(Environment Variables)是 Windows 系统中用于存储配置信息的键值对,它们可以影响系统和应用程序的行为。例如:

  • PATH:告诉系统在哪里查找可执行文件(如 pythonjava)。

  • TEMP:存储临时文件的路径。

  • JAVA_HOME:指定 Java 安装目录,供开发工具使用。

环境变量分为:

  • 系统变量:影响所有用户。

  • 用户变量:仅影响当前用户。

  • PATH 变量:决定系统如何查找命令。


2. 系统变量 vs. 用户变量

(1)系统变量(System Variables)

  • 作用范围:所有用户(全局生效)。

  • 存储位置:Windows 注册表(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment)。

  • 典型用途

    • 定义全局软件路径(如 JAVA_HOMEANDROID_HOME)。

    • 配置系统级代理(如 HTTP_PROXY)。

    • 设置公共临时目录(如 TEMP)。

如何查看/修改?

  1. 方法 1(GUI)

    • Win + R → 输入 sysdm.cpl → 切换到 "高级" 选项卡 → 点击 "环境变量"

    • 在 "系统变量" 区域进行修改。

  2. 方法 2(命令行)

:: 查看所有系统变量
set
:: 查看特定变量(如 TEMP)
echo %TEMP%

示例

  • 添加 JAVA_HOME(假设 Java 安装在 C:\Java\jdk-17):

    • 变量名:JAVA_HOME

    • 变量值:C:\Java\jdk-17


(2)用户变量(User Variables)

  • 作用范围:仅当前用户(不影响其他用户)。

  • 存储位置:注册表(HKEY_CURRENT_USER\Environment)。

  • 典型用途

    • 自定义开发环境(如 PYTHONPATH)。

    • 设置个人偏好(如 EDITOR=notepad)。

    • 临时测试变量(如 MY_TEST_VAR="hello")。

如何查看/修改?

  1. 方法 1(GUI)

    • Win + R → 输入 sysdm.cpl → 切换到 "高级" 选项卡 → 点击 "环境变量"

    • 在 "用户变量" 区域进行修改。

  2. 方法 2(命令行)

:: 查看当前用户变量
set
:: 设置临时变量(仅当前会话有效)
set MY_VAR=test

示例

  • 添加 PYTHONPATH(假设 Python 脚本在 C:\MyPythonScripts):

    • 变量名:PYTHONPATH

    • 变量值:C:\MyPythonScripts


3. PATH 变量详解

(1)PATH 的作用

PATH 是一个特殊的环境变量,用于指定系统在哪些目录中查找可执行文件(.exe.bat 等)。
例如:

  • 如果 python.exe 的路径 C:\Python39 在 PATH 中,你可以直接在 CMD 输入 python 运行它。

  • 如果没有 PATH,你必须输入完整路径:C:\Python39\python.exe

(2)Windows 中的 PATH

  • 系统 PATH:影响所有用户(存储在系统变量中)。

  • 用户 PATH:仅影响当前用户(存储在用户变量中)。

  • 优先级:用户 PATH > 系统 PATH(如果冲突,优先使用用户变量)。

(3)如何修改 PATH?

方法 1(GUI)

  1. Win + R → sysdm.cpl → "环境变量"

  2. 在 "系统变量" 或 "用户变量" 中找到 PATH

  3. 点击 "编辑" → "新建" → 添加路径(如 C:\Python39)。

方法 2(命令行)

:: 查看当前 PATH
echo %PATH%:: 临时添加 PATH(仅当前会话有效)
set PATH=%PATH%;C:\MyTools:: 永久修改 PATH(需管理员权限)
setx /M PATH "%PATH%;C:\MyTools"  :: 系统 PATH
setx PATH "%PATH%;C:\MyTools"     :: 用户 PATH

示例

  • 将 Python 和 Git 添加到 PATH

    • Python:C:\Python39

    • Git:C:\Program Files\Git\bin

    • 修改后 PATH

C:\Windows\system32;C:\Python39;C:\Program Files\Git\bin

4. 总结

变量类型作用范围存储位置典型用途
系统变量所有用户HKLM\...\Environment全局配置(JAVA_HOMEANDROID_HOME
用户变量当前用户HKCU\Environment个人配置(PYTHONPATH、临时变量)
PATH影响命令查找系统/用户变量让系统识别 pythongit 等命令

最佳实践

  • 公共软件路径(如 Java、Python)建议放在 系统 PATH

  • 个人开发工具(如自定义脚本)可以放在 用户 PATH

  • 避免 PATH 过长(Windows 有 2048 字符限制)。

现在你已经掌握了 Windows 环境变量的核心知识,快去配置你的开发环境吧!🚀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/78971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详解RabbitMQ工作模式之工作队列模式

目录 工作队列模式 概念 特点 应用场景 工作原理 注意事项 代码案例 引入依赖 常量类 编写生产者代码 编写消费者1代码 编写消费者2代码 先运行生产者,后运行消费者 先运行消费者,后运行生产者 工作队列模式 概念 在工作队列模式中&#x…

数据结构-非线性结构-二叉树

概述 /** * 术语 * 根节点(root node):位于二叉树顶层的节点,没有父节点。 * 叶节点(leaf node):没有子节点的节点,其两个指针均指向 None 。 * 边(edge)&…

芯片笔记 - 手册参数注释

芯片手册参数注释 基础参数外围设备USB OTG(On-The-Go)以太网存储卡(SD)SDIO 3.0(Secure Digital Input/Output)GPIO(General Purpose Input/Output 通用输入/输出接口)ADC(Analog to Digital C…

力扣94. 二叉树的中序遍历

94. 二叉树的中序遍历 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入&#…

深度学习:AI为老年痴呆患者点亮希望之光

引言 随着全球人口老龄化进程的加速,老年痴呆症已成为严重威胁老年人健康和生活质量的公共卫生问题。据世界卫生组织统计,全球每 3 秒钟就有 1 人被诊断为痴呆,预计到 2050 年,全球痴呆患者人数将从目前的约 5000 万激增至 1.52 亿…

抛物线法(二次插值法)

抛物线法简介 抛物线法(Quadratic Interpolation Method)是一种用于一维单峰函数极值搜索的经典优化方法。该方法通过在区间内选取三个不同的点,拟合一条二次抛物线,并求取这条抛物线的极值点作为新的迭代点,从而逐步…

FreeRTOS如何检测内存泄漏

在嵌入式系统中,内存资源通常非常有限,内存泄漏可能导致系统性能下降甚至崩溃。内存泄漏是指程序分配的内存未被正确释放,逐渐耗尽可用内存。 FreeRTOS作为一种轻量级实时操作系统(RTOS),广泛应用于资源受限…

Mockoon 使用教程

文章目录 一、简介二、模拟接口1、Get2、Post 一、简介 1、Mockoon 可以快速模拟API,无需远程部署,无需帐户,免费,跨平台且开源,适合离线环境。 2、支持get、post、put、delete等所有格式。 二、模拟接口 1、Get 左…

如何进行APP安全加固

进行APP安全加固的关键在于代码混淆、加密敏感数据、权限管理、漏洞扫描与修复。其中,代码混淆能有效阻止逆向工程与篡改攻击,提升应用的安全防护能力。通过混淆代码,攻击者难以轻易理解源代码逻辑,从而降低被破解或攻击的风险。 …

【C++】手搓一个STL风格的string容器

C string类的解析式高效实现 GitHub地址 有梦想的电信狗 1. 引言:字符串处理的复杂性 ​ 在C标准库中,string类作为最常用的容器之一,其内部实现复杂度远超表面认知。本文将通过一个简易仿照STL的string类的完整实现,揭示其设…

辰鳗科技朱越洋:紧扣时代契机,全力投身能源转型战略赛道

国家能源局于4月28日出台的《关于促进能源领域民营经济发展若干举措的通知》(以下简称《通知》),是继2月民营企业座谈会后深化能源领域市场化改革的关键政策,标志着民营经济在“双碳”目标引领下正式进入能源转型的核心赛道。 自…

Vue实现不同网站之间的Cookie共享功能

前言 最近有小伙伴在聊天室中提到这么一个需求,就是说希望用户在博客首页中登录了之后,可以跳转到管理系统去发布文章。这个需求的话就涉及到了不同网站之间cookie共享的功能,那么咱们就来试着解决一下这个功能。 实现方式 1. 后端做中转 …

在一台服务器上通过 Nginx 配置实现不同子域名访问静态文件和后端服务

一、域名解析配置 要实现通过不同子域名访问静态文件和后端服务,首先需要进行域名解析。在域名注册商或 DNS 服务商处,为你的两个子域名 blog.xxx.com 和 api.xxx.com 配置 A 记录或 CNAME 记录。将它们的 A 记录都指向你服务器的 IP 地址。例如&#x…

Opencv进阶操作:图像拼接

文章目录 前言一、图像拼接的原理1. 特征提取与匹配2. 图像配准3. 图像变换与投影4. 图像融合5. 优化与后处理 二、图像拼接的简单实现(案例实现)1.引入库2.定义cv_show()函数3.创建特征检测函数detectAndDescribe()4.读取拼接图片5.计算图片特征点及描述…

LLM 论文精读(三)Demystifying Long Chain-of-Thought Reasoning in LLMs

这是一篇2025年发表在arxiv中的LLM领域论文,主要描述了长思维链 Long Chain-of-Thought 对LLM的影响,以及其可能的生成机制。通过大量的消融实验证明了以下几点: 与shot CoT 相比,long CoT 的 SFT 可以扩展到更高的性能上限&…

计算机网络常识:缓存、长短连接 网络初探、URL、客户端与服务端、域名操作 tcp 三次握手 四次挥手

缓存: 缓存是对cpu,内存的一个节约:节约的是网络带宽资源 节约服务器的性能 资源的每次下载和请求都会造成服务器的一个压力 减少网络对资源拉取的延迟 这个就是浏览器缓存的一个好处 表示这个html页面的返回是不要缓存的 忽略缓存 需要每次…

《构建社交应用用户激励引擎:React Native与Flutter实战解析》

React Native凭借其与JavaScript和React的紧密联系,为开发者提供了一个熟悉且灵活的开发环境。在构建用户等级体系时,它能够充分利用现有的前端开发知识和工具。通过将用户在社交应用中的各种行为进行量化,比如发布动态的数量、点赞评论的次数…

接口自动化测试框架详解(pytest+allure+aiohttp+ 用例自动生成)

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 近期准备优先做接口测试的覆盖,为此需要开发一个测试框架,经过思考,这次依然想做点儿不一样的东西。 接口测试是比较讲究效…

Linux-----文件系统

文件大家都知道,前面的我的博客课程也为大家解释了关于文件的打开等,今天我们要谈论的是 文件在没被打开的时候在磁盘中的位置和找到它的方式。 画图为大家展示: 方便理解 我们从下面几个方面入手: 1. 看看物理磁盘 2. 了解一…

C++ set替换vector进行优化

文章目录 demo代码解释&#xff1a; 底层原理1. 二叉搜索树基础2. 红黑树的特性3. std::set 基于红黑树的实现优势4. 插入操作5. 删除操作6. 查找操作 demo #include <iostream> #include <set>int main() {// 创建一个存储整数的std::setstd::set<int> myS…