跳到正文
发现
命令行工具开发者工具

WinuxCmd:Windows 原生 Unix 命令集

一个约 3 MB 的原生 Windows 可执行文件,直接在 Windows 路径上提供 176 个 Unix 命令。

admin
发布于 2026-11-03
浏览
1
访问
0
下载
0
版本
v1.2.1
平台
Windows
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

WinuxCmd 用单个原生 Win32 可执行文件在 Windows 上实现 Unix 命令,不需要 WSL、Cygwin 或 MSYS2,也不做路径转换。它使用 GNU 语法,并直接理解 C:\、UNC 路径和 NTFS ACL。官方数据:176 个命令、1,924 个选项,约 3–4 MB 单文件,冷启动约 19 ms,采用静态链接、零运行时依赖。

项目以 C++23 编写,采用 MIT 许可证,可与同组织的 niubash(Windows 原生 bash)配合使用。

主要功能

  • 原生而非模拟:直接调用 Win32 API,提供 cygpath、getfacl 等用于在 Windows 路径与环境之间进行转换。
  • GNU 兼容性:find 实现 88 个选项(完整表达式解析、-exec/-execdir/-ok、-printf);grep 支持 PCRE2;sed 支持原地 -i 编辑。
  • 内置 WPM 包管理器:用于安装不适合自己重写的工具,如 jq、ripgrep、fd、fzf、bat、make、neovim、curl、wget。
  • 测试:3,659 个单元测试,以及与 GNU coreutils 9.7 等上游实现的 178 例差分对比测试(165 通过,13 个已知平台差异)。
  • 两种版本:默认版不会为 [、env、false、kill、test、time、true 创建命令入口链接(这些语义由宿主 shell 内建命令决定;winuxcmd kill -9 <pid> 仍可用);full 版生成全部入口,仅以 -full 资源名单独发布。

安装与使用

使用 winget 安装:

winget install WinuxCmd

也可从 GitHub Releases 下载 WinuxCmd-<version>-x64-setup.exe(或 ARM64 安装包),或解压 WinuxCmd-<version>-win-x64.zip 便携版并加入 PATH。

典型用法与 GNU 命令一致:

ls -la
grep -rn "TODO" src/
sed -i 's/http:/https:/g' config.ini
find . -name "*.tmp" -exec rm {} \;
find . -name "*.cpp" -print0 | xargs -0 wc -l

WPM 使用示例:

wpm install jq
wpm search json
wpm list --all

如需要完整的 bash 语言环境,可搭配 niubash 使用。

注意事项

  • 默认版与 full 版的差别只在是否为 [、env、false、kill、test、time、true 创建入口链接;full 版不进入 wpm 索引,需单独下载。
  • 部分命令仍存在与 GNU 的行为差异:例如 whoami/users/groups 选项较少,stat 在深层路径上有差异,fmt、tsort、ptx 存在输出格式差异,cp 的部分选项在 Windows 上被拒绝,Linux 所有权与 SELinux 相关选项不可用。
  • 测试版二进制通过 SignPath Foundation 进行代码签名,正式发布签名仍待审批。
  • 从源码构建需要 VS 2022 + CMake 3.30 + Ninja。

本作品整理自 GitHub 开源项目 unixwin/WinuxCmd,原作者 @unixwin,许可证 MIT。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v1.2.1当前版本

    发布 x64 与 ARM64 二进制;引入默认版与 full 版区分,默认版不为 [、env、false、kill、test、time、true 创建入口链接;提供安装包、便携压缩包及 AI agent skill 包。

评论