Unix系统有许多非常经典的操作命令,这些操作命令已经继承到Linux,MacOS,这些操作也是我们平时做生物信息每天都要使用的。不过Windows自成一派,使用CMD或者PowerShell。之前要想在windows系统使用这些命令,可以使用Cygwin,MinGW,Git Bash或者WSL。而现在微软又推出了Coreutils,以后在windows中使用Linux命令就更方便了。
Coreutils for Windows
Microsoft.Coreutils是微软在Build 2026开发者大会正式发布、官方维护的Windows原生Unix/Linux风格命令行工具集。可以理解为官方版本的"MinGW"。微软官方说明中提到,该项目基于开源的 uutils/coreutils,也就是用 Rust 重新实现 GNU coreutils 的跨平台项目。微软在此基础上做了面向 Windows 的打包和适配。
lscatcpmvrmmkdirpwdsortuniqwcgrepfind
它不是 WSL,也不是 Git Bash 或 Cygwin。它提供的是 Windows 原生可执行程序,不需要虚拟机,不需要 Linux 子系统,也不需要额外打开特殊 shell。
为什么选择Coreutils
Coreutils for Windows 最直接的价值,是减少 Windows、Linux、macOS、WSL、容器和云服务器之间的命令差异。
比如查看目录,在 Linux/macOS 中通常是:
传统 Windows CMD 中则是:
查看文件内容,在 Linux 中常用:
而 Windows 里可能要写:
这些差异单独看都不复杂,但当你每天在本机、服务器、容器和 CI 环境之间来回切换时,它们会不断打断工作流。Coreutils for Windows 的目标,就是让常用命令、参数和管道操作尽量保持一致。
它和 WSL、Git Bash 有什么区别?
WSL更像是完整 Linux 环境,适合运行 Linux 程序、安装包管理器、模拟服务器环境,能力强,但也更重。
Git Bash、MSYS2、Cygwin属于第三方兼容环境,可以提供类 Unix 命令体验,但通常会引入自己的 shell、路径规则和兼容层。
Coreutils for Windows则更轻。它不是给你一个完整 Linux,而是把最常用的基础命令变成 Windows 原生工具,让你可以在现有终端里直接使用。
一句话概括:WSL 是一套 Linux 环境,Coreutils for Windows 是一组 Windows 原生命令工具。
适合谁安装?
如果你是下面几类用户,Coreutils for Windows 值得一试:
- 想让 Windows 终端更接近 Linux/macOS 体验的人。
但如果你只是普通办公用户,几乎不打开命令行,那它对你的提升可能并不明显。
如何安装
目前最简单的方式是通过 WinGet 安装,直接在PowerShell中运行下面命令即可安装。
winget install Microsoft.Coreutils
如果权限不足或者无法访网络,也可以直接从github下载安装包。
https://github.com/microsoft/coreutils/releases
安装完成后,重新打开终端,可以尝试:
ls --helpcat --helpgrep --help
后续如果要升级,可以使用:
winget upgrade Microsoft.Coreutils
如果需要卸载:
winget uninstall Microsoft.Coreutils
常用命令举例
安装之后,你可以在 Windows Terminal、CMD 或 PowerShell 中尝试下面这些命令。
全部内容可以参照文档:https://uutils.github.io/coreutils/docs/
查看目录:
查看当前路径:
创建文件夹:
创建空文件:
查看文件内容:
查找包含关键词的日志:
统计文件行数:
复制、移动、删除文件:
cp test.txt backup.txtmv backup.txt old.txtrm old.txt
注意事项
Coreutils for Windows 很方便,但它不是“完整 Linux 替代品”。如果你需要 Linux 内核能力、包管理器、系统调用或完整容器运行环境,仍然应该使用 WSL 或真正的 Linux 环境。
另外,Windows 和 Unix/Linux 在一些底层机制上并不相同:
- Windows 使用 ACL 权限模型,不是 POSIX 权限模型;
- Windows 没有完整的 POSIX 信号机制;
- 某些命令可能和 PowerShell 或 CMD 内置命令重名;
微软 GitHub 仓库也标注该项目仍处于 preview 阶段。因此在生产脚本里使用时,建议先测试命令行为,尤其是涉及删除、移动、权限和路径处理的脚本。