主流操作系统参数/环境变量配置及生效方式
版本说明:2026最新整合版,无损收录桌面、服务器、移动、IoT、嵌入式、实时系统、历史经典全系平台,包含配置命令、文件路径、生效规则、权限要求、实操示例、常见坑点
通用前置说明:所有系统临时变量仅当前会话有效,退出终端、重启设备即清空;永久配置需修改对应配置文件或系统注册表,按对应规则生效
一、Windows系统(全版本覆盖)
适配版本:Win7/10/11、Server 2008~2025、Win9x/2000、MS-DOS
路径分隔符:;
1.1 图形界面配置(用户/系统环境变量)
入口:此电脑右键 → 属性 → 高级系统设置 → 环境变量
用户变量:仅当前用户生效;系统变量:全设备所有用户生效(需管理员权限)
生效方式:常规修改后关闭原有CMD/PowerShell,重新打开终端即可生效;全局彻底生效可注销用户或重启电脑
快速刷新命令(PowerShell,无需重开终端):refreshenv
CMD子窗口刷新(不关闭原窗口):set PATH=C && start cmd /k set&&path
1.2 CMD命令行操作
临时变量(仅当前终端窗口,关闭失效):set 变量名=值
永久变量(写入注册表):setx 变量名 "值"
注意:必须新开终端加载生效;单条变量内容≤1024字符,不支持换行
1.3 PowerShell命令行操作
临时变量(当前会话有效):$env:变量名="值"
永久用户变量:[Environment]::SetEnvironmentVariable("变量名","值","User")
永久系统变量(管理员权限):[Environment]::SetEnvironmentVariable("变量名","值","Machine")
1.4 实操示例
setx JAVA_HOME "C:\Program Files\Java\jdk17"
setx PATH "%PATH%;%JAVA_HOME%\bin"
1.5 历史旧版本配置
适配:Win9x/2000、MS-DOS
配置文件:autoexec.bat、config.sys
配置写法:set PATH=C:\Windows;C:\Tools
生效方式:重启设备
1.6 常见坑点
1. setx命令变量超长会被自动截断,长路径建议使用图形界面配置;
2. 旧终端不会自动加载新环境变量,修改配置后务必新开终端。
二、Linux系统(全发行版+嵌入式+历史版本)
适配版本:Ubuntu、Debian、RHEL、CentOS、Arch、OpenWrt、Yocto、早期Slackware
默认Shell:bash / zsh
路径分隔符::
配置优先级(从高到低):~/.bashrc > ~/.bash_profile/.profile > /etc/profile.d/*.sh > /etc/profile > /etc/environment
2.1 临时变量(当前终端会话,退出失效)
export 变量名=值
2.2 用户级永久配置(仅当前用户)
1. 编辑配置文件:vi ~/.bashrc,写入export 变量名=变量值
2. 即时生效(二选一):source ~/.bashrc 或 . ~/.bashrc
补充:登录Shell推荐配置 ~/.bash_profile,生效命令一致
2.3 系统级全局配置(所有用户,需管理员)
方式1(核心配置文件):
sudo vi /etc/profile(写入export配置)
sudo source /etc/profile
方式2(纯键值配置):
sudo vi /etc/environment(直接写入:变量名="变量值",无需export)
方式3(模块化推荐配置):
sudo vi /etc/profile.d/自定义文件名.sh(写入export配置)
sudo chmod +x /etc/profile.d/自定义文件名.sh
2.4 嵌入式Linux专属配置(OpenWrt/Yocto)
常用配置文件:~/.profile、/etc/profile、/etc/environment
生效方式:source 对应配置文件
内核启动参数查看:cat /proc/cmdline
2.5 历史旧版本(早期Slackware)
核心配置文件:~/.bashrc、/etc/profile
生效方式:source 配置文件 或 重新登录用户
2.6 实操示例
export PATH=$PATH:/usr/local/bin
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
2.7 常见坑点
1. 仅修改.bashrc可能导致登录Shell无法加载变量,建议同步配置.bash_profile;
2. sudo执行命令会丢失当前用户变量,可使用sudo -E保留变量或修改系统级配置。
三、macOS系统(全历史+最新版本)
适配版本:10.6~最新版,10.15+默认Zsh,旧版默认Bash
路径分隔符::
3.1 Zsh配置(macOS 10.15 Catalina及以上主流版本)
交互终端配置:
vi ~/.zshrc(写入export配置)
source ~/.zshrc
登录Shell专属配置:
vi ~/.zprofile
source ~/.zprofile
3.2 Bash配置(10.14及更早旧版本)
vi ~/.bash_profile
source ~/.bash_profile
备选文件:~/.bashrc
3.3 GUI图形应用变量同步(核心必备)
终端变量默认与图形应用不互通,需单独配置:launchctl setenv 变量名 值
生效方式:重启对应图形应用
3.4 系统级全局配置(管理员权限)
sudo vi /etc/profile
sudo source /etc/profile
3.5 临时变量(当前终端,退出失效)
export 变量名=值
3.6 实操示例
export PATH=$PATH:/usr/local/bin
export ANDROID_HOME=~/Library/Android/sdk
3.7 常见坑点
图形界面应用无法读取终端环境变量,必须通过launchctl setenv命令单独配置同步。
四、Android系统(全移动版本)
适配版本:4.4~最新版,基于Linux内核,通过ADB工具操作
4.1 临时变量(adb shell/设备终端)
adb shell
export 变量名=值
失效规则:退出Shell、重启设备即清空
4.2 系统持久属性(调试首选,无需Root)
设置属性(persist.前缀,重启保留):adb shell setprop persist.变量名 值
查看属性:adb shell getprop persist.变量名
4.3 永久全局配置(需Root权限/刷机)
配置文件:/etc/profile、/init.rc、/system/etc/environment
生效命令:source /etc/profile
生效规则:命令执行即时生效,重启设备永久保留
4.4 实操示例
adb shell setprop persist.debug.app 1
五、HarmonyOS/OpenHarmony鸿蒙系统
适配场景:移动设备、IoT设备、车机系统,配套工具:HDC
核心逻辑:与Android同源,操作方式高度相似
5.1 临时变量(当前Shell会话)
hdc shell
export 变量名=值
失效规则:退出Shell、重启设备失效
5.2 用户级永久配置(普通开发者权限)
hdc shell
vi ~/.bash_profile(写入export 变量名=值)
source ~/.bash_profile
5.3 系统级全局配置(需Root/高权限)
hdc shell
sudo vi /etc/profile
source /etc/profile
5.4 系统持久属性(调试常用)
hdc shell setprop persist.hos.变量名 值
特性:即时生效,重启设备不丢失
5.5 底层固件级配置
配置文件:/etc/init/hos_system.prop、/init.rc
生效方式:修改后重启设备(需固件修改/刷机权限)
六、iOS/iPadOS系统
适配版本:7~最新版,闭源移动系统
6.1 官方开发调试(无越狱唯一正规方式)
操作路径:Xcode → Scheme → Edit Scheme → Arguments → Environment Variables
生效方式:重启App,仅当前工程生效
6.2 越狱设备配置(类macOS操作)
临时变量:export 变量名=值
永久配置:
vi ~/.zshrc
source ~/.zshrc
七、BSD家族系统
适配版本:FreeBSD、NetBSD、OpenBSD(类Unix服务器系统)
默认Shell:sh / tcsh
路径分隔符::
7.1 通用Shell(sh/bash/zsh)
临时变量:export 变量名=值
用户级永久配置:
vi ~/.profile
source ~/.profile
备选配置文件:~/.shrc
系统级全局配置(管理员):
sudo vi /etc/profile
sudo source /etc/profile
备选全局文件:/etc/environment
7.2 特殊Shell(tcsh)
变量设置:setenv 变量名 值
永久生效:source ~/.tcshrc
八、Solaris商用Unix系统
适配场景:大型机、服务器(历史+现代版本)
默认Shell:ksh(主流)、bash
路径分隔符::
8.1 ksh默认配置
vi ~/.profile
source ~/.profile
8.2 bash配置
vi ~/.bashrc
source ~/.bashrc
8.3 系统级全局配置
vi /etc/profile
vi /etc/default/init
source /etc/profile
8.4 临时变量
export 变量名=值
九、ChromeOS轻量系统
核心特性:Linux内核,需开启开发者模式,终端入口:crosh → shell
9.1 临时变量(当前会话)
crosh
shell
export 变量名=值
9.2 用户级永久配置
vi ~/.bashrc
source ~/.bashrc
9.3 系统级全局配置(需Root)
sudo vi /etc/profile
sudo source /etc/profile
十、嵌入式/固件/实时系统
10.1 U-Boot通用嵌入式引导程序
临时环境变量(重启丢失):setenv bootargs console=ttyS0,115200
永久保存(写入Flash):saveenv
查看全部变量:printenv
10.2 RTOS实时系统(FreeRTOS/RT-Thread/Zephyr)
无传统环境变量机制,配置方式:Kconfig、menuconfig、代码编译宏、启动脚本
生效方式:重新编译程序 + 烧录固件
|
操作系统 |
临时变量命令 |
用户级核心配置文件 |
系统级核心配置文件 |
即时生效命令 |
路径分隔符 |
|
Windows |
set 变量名=值(CMD)$env:变量名="值"(PowerShell) |
注册表(setx) |
注册表(管理员) |
新开终端 / refreshenv |
; |
|
Linux |
export 变量名=值 |
~/.bashrc / ~/.bash_profile |
/etc/profile / /etc/environment |
source 文件名 |
: |
|
macOS |
export 变量名=值 |
~/.zshrc / ~/.bash_profile |
/etc/profile |
source 文件名 / launchctl setenv |
: |
|
Android |
export 变量名=值 |
无 |
/etc/profile / /init.rc |
source / setprop persist.xxx |
: |
|
鸿蒙 |
export 变量名=值 |
~/.bash_profile |
/etc/profile / /init.rc |
source / setprop persist.xxx |
: |
|
BSD系列 |
export 变量名=value(sh)setenv 变量名 值(tcsh) |
~/.profile / ~/.shrc |
/etc/profile |
source 文件名 |
: |
|
Solaris |
export 变量名=值 |
~/.profile / ~/.bashrc |
/etc/profile / /etc/default/init |
source 文件名 |
: |
|
ChromeOS |
export 变量名=值 |
~/.bashrc |
/etc/profile |
source 文件名 |
: |
|
iOS(越狱) |
export 变量名=值 |
~/.zshrc |
无 |
source 文件名 |
: |
十二、通用核心规则&速记口诀
12.1 通用核心规则
1. 所有系统临时变量:仅当前终端/会话有效,退出终端、重启设备后自动清空;
2. 类Unix体系(Linux/macOS/BSD/Solaris/ChromeOS):修改配置文件后,执行source 文件名即可即时生效;
3. 移动系统(Android/鸿蒙):常规调试用setprop persist.xxx持久化,深度自定义需Root权限+source配置文件;
4. 闭源iOS:官方开发依赖Xcode配置,修改后重启App;越狱设备操作逻辑同macOS;
5. Windows系统:永久变量修改后必须新开终端加载,PowerShell支持refreshenv快速刷新;
6. 嵌入式U-Boot:临时变量setenv,永久保存必须执行saveenv;RTOS系统配置需重新编译烧录生效。
12.2 精简速记口诀
Windows改完重开端,PowerShell用刷新;
类Unix改完就source,一行命令秒生效;
安卓鸿蒙分两种,export临时prop持久;
iOS官方重启App,越狱玩法同苹果;
嵌入式U-Boot要存盘,RTOS必须重编译。
更多推荐


所有评论(0)