上周有个新闻,如果你是开发者,应该已经刷到了。
微软在Build 2026大会上正式发布了Coreutils for Windows。
Coreutils是什么?简单来说,就是Linux下那套核心命令的集合——ls、cp、mv、grep、find、cat……你用惯了的那一套。
以前想在Windows上用这些命令,要么装Cygwin、要么开WSL、要么装Git Bash,总归是“套一层”。现在不一样了,微软官方搞了个原生版本,75个常用命令,直接在CMD、PowerShell或Windows终端里跑,不需要任何中间层。
为什么微软要干这件事?
原因很真实:开发者太痛苦了。微软自己的原话是:“开发者不断在不同平台间切换,但熟悉的命令无法稳定工作,迫使我们不得不采取变通方法、速度损失和上下文切换。”
翻译成人话就是:别折腾了,给你统一了。
具体怎么做到的?
这次发布的Coreutils,基于一个叫uutils的开源项目——用Rust重写的GNU Coreutils,天生跨平台。微软拿过来做了Windows构建,还自己写了grep和findutils的实现。
技术上有点意思:微软把所有命令塞进了一个可执行文件(coreutils.exe),然后通过NTFS硬链接,让ls.exe、cp.exe这些命令都指向同一个文件。好处是只维护一个二进制,更新补丁也只需要更新一个文件。
安装也简单,WinGet一行命令搞定:
winget install Microsoft.Coreutils
目前是预览版,微软自己说的:可能有Bug,风险自负。
支持哪些命令?
ls、cp、mv、rm、grep、find、cat、pwd、uptime、hostname……大概75个常用命令都在里面。
当然也有缺的。chmod、chown、chroot这类依赖POSIX特性的命令没上,跟Windows原生命令冲突的dir、more也没在包里。
那问题来了:这事跟普通用户有什么关系?
说实话,短期内没啥关系。你不写代码,可能一辈子都用不到ls和grep。
但这件事的本质,比工具本身更有意思:Windows在向开发者的使用习惯低头。
从WSL到Windows Terminal,再到现在的Coreutils,微软这几年干的事,本质上都是在做一件事:让Windows成为Linux开发者也能舒服使用的平台。Windows不再是“我的地盘我说了算”,而是“你来用,我兼容你”。
这说明什么?说明跨平台开发已经是主流,微软再不跟进,开发者就要跑了。毕竟现在的开发者,谁不是Windows、macOS、Linux、WSL、Docker之间来回切?这套用dir,那套用ls,脑子真记不住。
对普通用户来说,这个趋势的长期影响是:Windows和Linux的界限会越来越模糊,你装双系统的理由会越来越少。以后想跑个开源项目、搭个环境,Windows上就能搞定。
如果你是开发者,赶紧去试试,能省不少事。如果你是普通用户,知道这个趋势就行。
最后,评论区聊聊:你平时用什么命令行?CMD、PowerShell还是直接上WSL?