Windows 环境准备:Git Bash 与 PowerShell 7¶
本页建立 Windows 原生终端环境,介绍 Git、Scoop、ripgrep(rg)、fd(fd)、PowerShell 7 和 nvm-windows。日常教程命令以 Git Bash 为主;需要 PowerShell 的安装命令会标明 shell。每款 Agent 使用什么内部 shell,还要继续看对应工具页。
先分清终端和 shell¶
Windows Terminal 是终端宿主,可以打开不同 shell。Git Bash 提供 Bash 和 Git for Windows 的工具。PowerShell 7 通过 pwsh 启动;系统原有的 Windows PowerShell 5.1 通过 powershell 启动。它们可并存,装 PowerShell 7 不会替换 5.1。
WSL 是另外一套 Linux 环境,有自己的 Linux 程序、HOME、PATH 和配置。本页的 Windows 原生命令不应直接复制到 WSL。WSL 单独见 环境准备。
安装 Git for Windows 和 Git Bash¶
从 Git for Windows 官方站点下载适用于 Windows 的安装程序。安装后打开 Git Bash,检查:
command -v git 显示当前 shell 找到的 Git 路径,pwd 显示当前目录。Windows 的 C:\Users\... 在 Git Bash 里常显示为 /c/Users/...。目录名有空格时始终给路径加引号。
安装 Scoop 包管理器¶
Scoop 是面向 Windows 命令行工具的包管理器,默认将应用安装在当前用户目录下,适合安装本页使用的搜索工具。Scoop 安装器需要 PowerShell 5.1 或更新版本、完整语言模式,以及允许脚本运行的执行策略。下面命令在非管理员 PowerShell 中执行;通常无需管理员权限。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
irm get.scoop.sh | iex
scoop --version
执行策略命令只为当前 Windows 用户设置 RemoteSigned。如果组织策略禁止修改,先遵循设备管理员要求,不要尝试绕过策略。安装结束后重新打开 PowerShell 7 或 Git Bash,让新进程读取安装器更新的环境变量。
参考:Scoop 官方安装说明。
安装 ripgrep(rg)和 fd¶
rg 是 ripgrep 提供的递归文本搜索命令,默认尊重 .gitignore;fd 是便于按文件名或目录名查找的工具。先在 PowerShell 7 中通过 Scoop 安装,再分别在 PowerShell 和 Git Bash 中核对版本及命令来源:
如果新开的 Git Bash 仍找不到命令,先确认它是安装 Scoop 后新开的进程,再检查 PATH。不要因为一个 shell 找不到命令就重复安装。项目主页:ripgrep 与 fd。
安装并验证 PowerShell 7¶
打开已经安装的 PowerShell 或 CMD,按微软当前说明通过 WinGet 安装稳定版。下面命令是 PowerShell 代码:
如果 WinGet 不可用,从 PowerShell 官方安装页选择适合架构和组织策略的 MSIX 或 MSI 安装程序。根据原安装渠道更新和卸载。不要安装预览版替代稳定版。
在 Windows Terminal 新开一个 PowerShell 7 标签,运行:
版本主号应为 7。若显示 5.1,检查 profile 当前启动的是 powershell.exe 还是 pwsh.exe。新版和旧版可并存;不用为了使用 7 卸载 Windows 系统组件。
配置 Windows Terminal¶
打开 Windows Terminal 的设置,确认配置文件列表中有 Git Bash、PowerShell 7 和(安装后)WSL。可按个人习惯选择默认 profile。更改默认 profile 只改变打开新标签时使用的 shell,不会改变 Agent 内部执行环境。
如果找不到 PowerShell 7,查看其安装程序是否创建了 Windows Terminal 配置文件,也可以通过微软的 Terminal 配置说明了解如何添加 profile。不要将 Git Bash 与 WSL profile 指向同一启动程序。
来源:Microsoft Windows Terminal 文档。此动图演示标签页与 PowerShell 窗口,不代表本机安装状态。
用 nvm-windows 管理 Node.js 与 npm¶
Node CLI 常要求 Node.js。Windows 原生使用 nvm-windows 官方安装页提供的安装器;截至本次核验,当前 CLI 为 v2,命令语法与 v1 有变化。它不同于 macOS、Linux 和 WSL 的 nvm-sh。
安装前先检查已有 Node:
若机器已有独立 Node.js,先依照 nvm-windows 官方迁移说明卸载或处理 PATH 冲突。安装当前 nvm-windows 稳定版后,重新打开 PowerShell 7,再运行:
nvm --version
nvm list installed
nvm install lts
nvm use lts
node --version
npm --version
Get-Command node,npm
也可将 lts 换成已确认的主版本(如 24)。用 nvm list installed 查看本机版本;更完整语法见nvm-windows 命令文档。nvm-windows v1 与 v2 命令有差异,不照抄旧版 nvm list 示例。nvm 管理 Node.js,npm 随所选 Node 版本提供,不是独立 npm 版本管理器。
切换 Node 版本后,之前装的全局 npm CLI 可能不在新版本的全局包目录中。先检查当前的 node、npm 和工具路径,再为当前选择的 Node 环境安装所需 CLI。不要通过更新所有全局包来修复一个 PATH 问题。
Windows PATH 与 Git Bash PATH¶
Windows 的环境变量设置分为用户级和系统级;系统登录环境会把两者提供给进程。每个进程读取自己的环境变量表,启动子进程时通常把这份环境继续传下去,不会让子进程实时查询设置界面。因此修改 Path 后应从已更新的 Windows 桌面会话重新打开终端;从旧终端启动的新 shell 也可能继续继承旧值。Scoop 默认把应用 shims 放在用户目录下的 scoop\\shims,并将其加入用户 Path。
在 PowerShell 中可以分别查看系统、用户和当前进程的 Path:
[Environment]::GetEnvironmentVariable('Path', 'Machine') -split ';'
[Environment]::GetEnvironmentVariable('Path', 'User') -split ';'
$env:Path -split ';'
Get-Command rg,fd
Git Bash 启动时从启动它的 Windows 进程继承环境。Git for Windows 的 MSYS 层会把 Windows 风格的 PATH 条目转换为 Bash 使用的路径格式;因此 Bash 中看到的是冒号分隔的 $PATH,常见路径也会显示为 /c/...,而 Windows 设置界面使用分号分隔的 Path 条目。两边指向的可执行程序可以相同,但变量表示、路径分隔符和路径格式不同。
在 Git Bash 中执行 export NAME=value 只修改当前 Bash 进程及其后续子进程的环境,不会写回 Windows 用户或系统环境变量;PowerShell 的 $env:NAME = 'value' 同样是当前进程范围。需要持久修改 Windows Path 时,使用 Windows 的环境变量设置界面或对应安装器,再新开终端。需要只为 Git Bash 持久设置的变量,可在 Bash profile 中设置。避免把 Windows Path、PowerShell $env:Path 与 Bash $PATH 当成可互换语法。
参考:PowerShell 环境变量作用域、Git for Windows 技术概览。
Shell 变量语法¶
Bash 临时环境变量使用 NAME=value command 或 export NAME=value。PowerShell 7 使用 $env:NAME = 'value'。持久化到 shell profile 前说明文件和作用范围。不要在示例中把保留变量 $HOME、$home 当自定义变量名。
按需准备运行时¶
独立发行的工具可能不需要 Node 或 Python。只按所选 Harness 和插件的官方要求安装运行时。Node CLI 使用上述 nvm-windows;Python 项目环境见 uv 与 Anaconda3。不需要为九款工具一次装齐所有语言环境。
Shell profile 和脚本安全¶
PowerShell 7 profile 与 Bash 的 ~/.bashrc 是不同文件;配置变量前先查当前工具文档。PowerShell 执行策略有用户、进程和机器等作用范围。遇到脚本限制先确认来源与策略,不默认全局设为 Bypass。
环境检查¶
| 项目 | Git Bash | PowerShell 7 |
|---|---|---|
| 当前 shell | printf '%s\n' "$BASH_VERSION" |
$PSVersionTable.PSVersion |
| Git | git --version |
git --version |
| Node/npm | node --version、npm --version |
node --version、npm --version |
| Python(如需要) | command -v python |
Get-Command python |
| 当前目录 | pwd |
Get-Location |
如 Python 来自 Microsoft Store shim、找不到 Python 或来源不是期望环境,先读环境配置说明,不要继续安装依赖。
