Build 2026 上微软不再含糊——Windows 11 就是给开发者用的。过去十年,"Windows 不适合开发"几乎是行业共识,WSL 的出现缓解了痛点,但总像是在补窟窿。这次微软一口气推出三个方向性更新:Coreutils for Windows 正式 GA、WSL 支持容器运行、终端内置 AI 辅助。信号很清楚:不是"也能用",而是"优先用"。
Coreutils for Windows 正式 GA:ls、cat、grep 终于是 Windows 原生命令
Coreutils for Windows 从 Preview 走到 GA,意味着 ls、cat、grep、sed、awk 等几十个 POSIX 标准工具不再需要 WSL 中转,直接在 PowerShell 或 CMD 里运行。这不是简单的"移植"——这些工具被编译为原生 Windows 二进制,路径处理兼容 Windows 盘符体系,管道行为与 PowerShell 管道互通。
实际影响:大量从 macOS 或 Linux 切过来的开发者,不再需要先 wsl 进子系统再操作文件。在 PowerShell 里直接 grep -rn "TODO" .\src\ 就能跑,输出还能被 Select-String 后续处理。
# 安装 Coreutils for Windows(通过 winget)
winget install Microsoft.Coreutils
# 安装完成后,在 PowerShell 中直接使用
ls .\src\ # 列出目录,输出格式与 PowerShell 兼容
cat .\README.md # 查看文件内容
grep -rn "deprecated" .\src\ # 递归搜索,支持 Windows 路径
# 与 PowerShell 管道混用
grep -l "import" .\src\*.py | ForEach-Object { Get-Content $_ | Select-Object -First 5 }
需要注意的一点:Coreutils 的 ls 和 PowerShell 内置 Get-ChildItem 的别名冲突。安装后默认不会覆盖别名,你可以手动决定用哪个。如果你习惯 POSIX 风格输出,可以显式调用 coreutils-ls 或调整别名优先级。
WSL 容器:不再只是"跑 Linux",而是跑隔离环境
WSL 2 已经能跑完整 Linux 内核,但过去它更像一个轻量虚拟机——你装一个 distro,在里面装一堆东西,环境膨胀后很难清理。Build 2026 宣布 WSL 支持容器模式:你可以直接在 WSL 内拉取和运行 OCI 容器镜像,不需要额外安装 Docker Desktop。
这意味着什么?开发环境可以按项目隔离,用完即弃。每个项目一个容器,依赖不互相污染,也不污染宿主 WSL distro。
# 在 WSL 中启用容器支持(需 WSL 2.4+ 版本)
wsl --update
# 检查容器功能是否可用
wsl --version
# 确认输出中包含 "Containers: supported"
# 在 WSL 内直接运行容器
wsl
# 进入 WSL 后
# 拉取一个 Python 开发环境镜像
podman pull python:3.12-slim
# 以项目目录为挂载点运行容器
podman run -it --rm \
-v /mnt/c/Users/you/projects/myapp:/workspace \
-w /workspace \
python:3.12-slim \
bash
# 容器内安装项目依赖,退出后容器自动销毁
pip install -r requirements.txt
python manage.py runserver
# Ctrl+D 退出,容器消失,依赖不留在宿主 WSL 中
这里用的是 podman 而非 docker,因为 WSL 容器功能基于 OCI 标准运行时,podman 无守护进程、无 root 权限要求,更贴合 WSL 的轻量定位。如果你已有 Docker Desktop 许可,两者可以共存,但新项目建议先用 podman 试一下——启动更快,资源占用更低。
一个实用的工作流:把项目开发环境写成 Containerfile,团队成员 podman build -t myapp-dev . 一条命令拉起一致环境,不再有"我本地能跑但你不行"的问题。
# Containerfile: 项目开发环境
FROM python:3.12-slim
RUN apt-get update && apt-get install -y \
git curl postgresql-client \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /workspace
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# 开发时挂载源码目录,不 COPY 进镜像
CMD ["bash"]
# 构建并运行
podman build -t myapp-dev .
podman run -it --rm \
-v ./src:/workspace/src \
-p 8000:8000 \
myapp-dev
智能终端:AI 不是替你写代码,是替你少查文档
Windows Terminal 的 AI 辅助功能不是又一个 Copilot 对话框。它的工作方式是:你在终端里输入命令或遇到错误输出时,AI 根据上下文给出补全建议或修复提示,直接内联显示在命令行下方,按 Tab 接受,按 Esc 忽略。
这个设计的关键在于"不打断流程"。你不需要切换窗口去搜 Stack Overflow,终端自己把答案推到你眼前。对于频繁使用 CLI 但记不住所有参数的开发者(谁记得 tar 的所有解压选项?),这是实打实的效率提升。
# 启用 Windows Terminal AI 补全(需 Terminal Preview 1.22+)
# 在 Terminal 设置 JSON 中添加:
{
"profiles": {
"defaults": {
"aiSuggestions": {
"enabled": true,
"provider": "copilot"
}
}
}
}
# 实际使用场景示例
# 输入半条命令后按 Alt+Space 触发建议
tar -<Alt+Space>
# 终端内联显示:
# tar -xzvf archive.tar.gz # 解压 .tar.gz
# tar -czvf out.tar.gz dir/ # 压缩目录为 .tar.gz
# tar -tf archive.tar.gz # 列出内容不解压
# 遇到错误时自动弹出修复提示
kubectl apply -f deploy.yaml
# 输出: error: error validating data: unknown field "spec.replicas"
# 终端下方自动提示:
# ▸ 字段 replicas 在此 API 版本中已移除,改用 spec.scaleTargetRef
# ▸ 按 Tab 接受修改建议
AI 建议的边界要清楚:它基于当前终端上下文和微软托管的 Copilot 模型,不会读取你项目中的私有文件内容。如果你在处理敏感配置或内部 API,建议关闭该功能或仅用于通用命令补全。
三个更新的组合效应
单独看每个更新都不算颠覆,但组合起来改变了 Windows 开发的工作流结构:
- Coreutils 让你在 Windows 原生环境使用 POSIX 工具链,不再被迫进 WSL 做简单操作。
- WSL 容器 让复杂开发环境按项目隔离、用完即弃,不再把 WSL distro 当垃圾场。
- 智能终端 让 CLI 操作的认知负担下降,不再频繁跳出终端查文档。
这三件事指向同一个方向:让开发者留在 Windows 里完成整个循环,而不是把 Windows 当跳板进 Linux。
上手建议与风险清单
如果你现在就想试,按这个顺序推进:
- 先装 Coreutils——零风险,winget 一条命令,装完立刻能用,和现有工具不冲突。
- 再试 WSL 容器——更新 WSL 到最新版,用 podman 跑一个简单镜像验证网络和挂载是否正常。注意:容器功能在 Windows 11 24H2+ 上才完整支持,旧版本可能缺少内核模块。
- 最后开 Terminal AI——用 Preview 版 Terminal,先只在通用命令场景下用,确认你的网络策略允许访问 Copilot 服务端点。
需要留意的风险点:
- Coreutils 与 PowerShell 别名冲突:
ls、cat、grep在 PowerShell 中有内置别名或近似命令。安装后不会自动覆盖,但如果你手动设别名,团队其他成员可能困惑。建议在团队$PROFILE中统一约定。 - WSL 容器的持久存储:容器默认 ephemeral,退出即销毁。如果你需要持久化数据库或缓存,要显式配置 podman volume 或挂载 Windows 目录,否则数据会丢失。
- AI 补全的隐私边界:终端 AI 会把当前行内容和错误输出发送到微软服务。在处理内部密钥、私有 API 名称时,建议临时关闭或使用无 AI 的终端会话。
Windows 11 这次不是在说"我们也支持开发",而是在说"开发是我们的优先场景"。三个更新落地后,日常开发能不能真的不碰 Linux 桌面——还得你自己跑一圈才知道。