一、Linux系统中的 source 命令
1. 基础语法与功能
语法:source 文件名 或 . 文件名
核心功能:
在当前Shell环境中执行脚本文件,而非启动子Shell 。
脚本中定义的变量、函数、别名等会直接修改当前Shell环境 。
常用于加载配置文件(如 .bashrc)或重载环境变量 。
2. 典型使用场景
场景 示例命令 说明 来源
重载配置文件 source ~/.bashrc 使修改后的配置立即生效,无需重启Shell
导入环境变量 source env.sh 将脚本中的变量(如 PATH)加载到当前环境
执行脚本并保留状态 source script.sh 脚本中 cd 或 export 操作会影响当前Shell
模块化加载函数库 source functions.sh 导入脚本中定义的函数,直接在当前Shell调用
3. 与直接执行脚本的区别
特性 source/. 命令 ./script.sh 或 sh script.sh 来源
执行环境 当前Shell 新子Shell
环境变量修改 直接生效 仅在子Shell中生效,父Shell不受影响
路径修改 当前目录改变 脚本执行后恢复原目录
二、Windows系统中的 winget source 命令
1. 语法与核心功能
语法:winget source <子命令> [选项]
功能:管理Windows包管理器(winget)的源存储库,支持添加、删除、导出等操作。
2. 常用子命令与选项
子命令 选项 功能说明 来源
add --name, --arg, --type 添加新源(需管理员权限)
list --name 列出已启用的源
update 无 更新指定源
reset 无 重置为默认源(msstore 和 winget)
export 无 导出当前源配置
3. 示例操作
powershell
#添加Contoso源(需管理员权限)
winget source add --name Contoso --arg “https://www.contoso.com/cache”
#列出所有源
winget source list
三、注意事项
权限问题
Linux中执行脚本需确保文件可读,但无需执行权限(因直接在当前Shell解释执行)。
Windows的 winget source add 需管理员权限 。
路径与语法
Linux中需使用绝对路径或相对路径(如 source ./script.sh)。
Windows中需正确指定源URL或UNC路径 。
环境变量与状态
Linux的 source 会直接影响当前Shell,需谨慎操作 。
Windows的 winget source 操作仅影响包管理器配置,无Shell环境风险 。
四、完整选项速查表
平台 命令/工具 选项列表 来源
Linux source/. 无额外选项,仅支持文件路径
Windows winget source --name, --arg, --type, --trust-level, --header 等
引用来源:
Linux source 命令详解:
Windows winget source 命令: