微软推出 Coreutils,革新 Windows 运行 Linux 命令方式
现在,开发者无需借助 Windows Linux 子系统虚拟机(VM),就能直接运行大多数 Linux 命令。
微软宣布推出 Coreutils,这是 Windows 11 的一项新功能,允许开发者通过单个二进制文件在 Windows 上直接运行许多常用的 Linux 命令行工具。在 2026 年于西雅图举行的 Build 开发者大会上,Coreutils 首次亮相。该功能旨在减轻微软所说的开发者在 Windows 和其他平台之间切换时面临的“认知负担”。
现有方法耗时低效,Coreutils 带来改变
目前,在 Windows 上访问许多 CI/CD 开发环境中必不可少的 Linux 命令行工具,需要采用一些变通方法,比如打开像 Git Bash 这样的模拟器,或者使用虚拟化的 Windows Linux 子系统(WSL)终端。这两种方法既耗时又低效。正如微软在公告中所说:“开发者经常在不同平台间切换,但熟悉的命令在不同平台上无法一致运行,这就迫使他们寻找变通方法,导致效率降低和上下文切换成本增加。”
Coreutils 消除了这种来回切换的需求,让开发者可以直接从 Windows CMD 命令提示符、PowerShell 或 Windows 终端运行大多数 Linux 命令。微软表示:“无论你是在 Linux、macOS、WSL、容器还是云环境之间切换,多年来积累的命令和工作流程都能在 Windows 环境中正常运行。”
多数而非全部工具可用
Coreutils for Windows 作为单个可执行文件安装(通过 WinGet 命令:install Microsoft.Coreutils),它是对 GNU uutils/coreutils 项目的 Rust 重写,提供了在各个 Linux 发行版中通用的命令。Coreutils 管理高效的关键在于,单个 Linux 命令从一个多调用可执行文件运行,该文件通过指向每个命令的 NTFS 硬链接进行映射。这种方法的优势在于,只需安装、签名、修补或更新一个二进制文件。
微软列出了 Coreutils 支持的 75 个 Linux 工具,包括常用命令,如 ls、cp、find、grep、rm、du、hostname 和 uptime。不过,有些 Coreutils 命令与现有的 CMD 或 PowerShell 命令冲突,或者无法执行;微软提供了一个兼容性表格,列出了冲突情况。这意味着有些命令不可用,具体包括:dir、expand、kill、more、timeout 和 whoami。
此外,有些命令未包含在 Coreutils 中,因为这些命令依赖于 Windows 未以兼容方式实现的 POSIX Unix/Linux 特性,例如 chmod、chown、id、stty 和 chroot。在其他情况下,命令可能在 CMD 中可以执行,但在 PowerShell 中不行。微软解释了复杂的优先级顺序:“Coreutils 版本是否运行取决于 shell、PATH 顺序,以及(对于 PowerShell)别名表。”
Build 开发者大会其他宣布
除了 Coreutils,在 2026 年 Build 开发者大会上,微软还宣布了用于在 Windows 上部署 Linux 容器的 WSL 容器 CLI 和 API、一个带有开源治理工具的自主代理新框架,以及旨在自动化 Microsoft 365 任务的 AI 代理 Microsoft Scout。
软件开发与开发工具
此次微软的一系列举措,会给软件开发和开发工具领域带来怎样的影响呢?