一个让Linux用户难以相信的场景:在原生的Windows命令提示符里,输入grep,回车,它真的跑起来了。
微软近日发布了Coreutils for Windows,将grep、cat、cp等经典的UNIX风格命令行工具,打包成一个可以直接在CMD和PowerShell里调用的工具集。无需虚拟机,无需WSL子系统,一行winget install命令就能解决。
![]()
这个动作本身就充满信号意味。开发者和运维人员长期在两套命令行体系间来回切换的痛苦,微软显然看得很清楚。
![]()
支持者:终于不用背两套语法了
Coreutils for Windows基于uutils项目构建,后者是用Rust语言重写的GNU Coreutils替代品。选择Rust的决定不意外——微软近年来对Rust的安全性投入巨大,从Windows内核到Azure基础设施都在逐步迁移。
安装过程异常简单。在符合要求的PowerShell 7.4以上版本中运行winget install Microsoft.Coreutils,或从GitHub的Release页面直接下载EXE文件即可。这种分发策略兼顾了企业IT管理的批量部署需求和个人开发者的即装即用体验。
对日常操作而言,最大的便利在于脚本复用。原来写在Linux服务器上的自动化脚本,现在几乎可以原样搬到Windows环境执行,不用再逐行翻译cmdlet语法。数据工程师在本地测试数据处理流程时,管道的逻辑保持一致。
批评者:命令冲突的暗坑不少
现实没有那么完美。部分核心命令与PowerShell自带的cmdlet产生了直接冲突。
cat和cp是两个典型案例。PowerShell中已经有同名命令,虽然功能相似,但参数选项并不完全兼容。长期使用PowerShell的开发者在遇到行为差异时,排查错误会很头疼。官方文档对此有明确说明,不过会常看文档的人可能不是多数。
![]()
另一个值得注意的安排是dir和more等传统DOS命令被刻意排除在工具集之外。这是正确的选择,但也意味着Coreutils for Windows并不是一个完整的GNU工具链替代品,用户仍需在两套系统间切换。
预览版的意味
微软明确标注当前版本为preview。这个标签背后有几层含义:稳定性还在验证阶段,命令行为细节可能后续调整,公司对用户反馈持开放态度。
可以猜测微软内部对此有过讨论。两种命令体系的共存策略如何设计,在技术圈长期存在分歧。一部分人主张完全替代,另一部分人则认为应该在Windows生态中保持原生cmdlet的主体地位。预览版的发布说明微软选择了先让用户用起来,在实地操作中收集反馈的渐进式路径。
从更广的视角看,这一举动暗合了微软近年的平台策略转向。从接纳Linux子系统到收购GitHub,到为VS Code提供一流的远程开发体验,微软在持续拆除Windows与其他开发生态的墙壁。Coreutils for Windows可以被理解为这个长期路线图中的一块新拼图。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.