【开源】 WinuxCmd,在Windows终端获得原生Linux命令体验

2026-04-11 14:351阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

你是否在Windows开发的时候遇到过这样的情况?

PS C:\Users\Administrator> ls -la Get-ChildItem: A parameter cannot be found that matches parameter name 'la'.

是的,在cmd/pwsh的终端生态下,ls/mkdir/echo等命令,都是powershell定制的别名,这个别名看似给开发者带来了很大的便捷,实际上由于参数不支持,导致更多的难受的情景。
powershell的命令并不如linux友好,至少不好记,每一个命令都非常非常的长,这对于经常有跨平台开发的开发者显然并不友好,这也导致了大量开发者抛弃pwsh,转而使用了posix兼容的终端,如mysys2,cygwin,git bash等。

与此同时,还有更坑的点,这都是pwsh给开发者埋下的坑

PS C:\Users\Administrator> where cmake PS C:\Users\Administrator> where.exe cmake C:\Program Files\CMake\bin\cmake.exe PS C:\Users\Administrator>

是的!where居然不等于where.exe!那么大部分眼里面的用where直接代替linux的which实际上是不行的!那么where到底的是什么?

PS C:\Users\Administrator> Get-Alias -Name where CommandType Name Version Source ----------- ---- ------- ------ Alias where -> Where-Object PS C:\Users\Administrator>

神马?where居然是Where-Object的别名?那怪不得查不到呢!
PowerShell中的where实际上是Where-Object的别名,用于过滤对象。

于此同时,类似的坑还有很多。在windows10的很多的版本的主机上,curl!=curl.exe,而是Invoke-WebRequest的别名。这些命令行参数,本质上只有名字起了一个别名,所有的参数基本都是不支持的!

那么就要引入我今天要介绍的自己研发的项目:WinuxCmd了,他解决了原生powershell/cmd终端没有办法很好适配linux命令的问题。这个解决方案面向的是那些需要混合使用pwsh命令,或者是难以离开pwsh生态的人。比如我个人觉得oh-my-posh的一些主题和插件很有用,比如git插件,比如自动补全,等等等等。比git bash的终端支持好了不止一点,所以对于我个人来说,pwsh终端是很难被代替的。

你的AI智能体是否遇到过这样的问题
不知道大家有没有遇到过这种情况,自己的Ai,或者是本地的CLI,有时候他会尝试运行一些linux命令,或者从一开始他输入的命令就是linux的。当他读到错误的时候,他才开始思考:

我们观察到这个命令运行失败了,那么用户可能是windows环境, 我们需要用windows命令.让我想一下对应的powershell命令...

这个经常性的错误会干扰ai的思考,并且上下文一压缩,他又开始忘了这回事了,所以这会给开发者带来不少的困扰。当进行复杂的PWSH命令的时候,由于AI缺少大量的训练数据(绝对没有linux平台的数据多),他写出的powershell命令就很有可能会出错了。

我们提供的解决方案

  • 在Windows平台上借助现代C++,实现一个只依赖于部分标准库和windows Api的原生LINUX命令集合,兼容绝大部分的常用命令行参数。
  • 针对Powershll平台,用一个包装的powershell函数,取消掉所有可以取消掉的别名,将我们的可执行文件临时暴露到path中以供使用,针对CMD平台,也是类似的思想,将可执行文件临时设置或者是永久注册到注册表中

途中遇到的困难和解决方式

  • 在PWSH中,所有的管道传递的都是对象,我们原本提供的包装函数会产生管道失效的问题,于是我们使用了临时添加PATH的方式取代了复杂的包装函数,这样就支持原本的字符流的管道,这符合LINUX风格。并且我们的命令可以和POWERSHLL命令在管道中混用
  • 刚开始我是将PATH永久添加的,但是后来一想,不可以污染用户的PATH,于是通过windows powershell的用户配置文件,用powershell将部分函数安装到这里,每一次用户都可以临时启用,并且如果想恢复powershell别名,我们也提供了反激活的方案。
  • CATCH2/GTEST对于终端/管道直接运行的可执行文件并不友好。于是我自己从头开始手动实现了一个端到端的测试框架,兼容GTEST的多种参数,如过滤执行,分组执行。并且集成到了CTEST当中,可以用测试案例的而非PWSH的方式方便的进行测试,可以很好的可视化在终端/管道中的命令表现的情况。

我们产品的亮点

  • 截止到我发帖这天,2026年2月21日,我们已经实现了三十三个命令,和他们大部分的命令行参数。通过各种编译优化黑科技,所有命令加起来只有900KB.
  • 我们的命令启动时间(通过powershell测量,在15-30ms,平均20.0ms的时间,对比RUST实现的COREUTILS和老牌的GITBASH,他们的平均时间是70-80ms,快了四倍左右)
  • C++23实现,提供了命令脚手架和方便的注册宏,有自己的测试框架和为了项目专门实现的的容器库,如栈上的VEC和编译期的MAP等,速度对比STL原生遥遥领先。
  • AI友好,覆盖了大部分AI常用命令和参数,他基本很少出现报错的情况了。

使用手册

PS C:\Users\Administrator> winux WinuxCmd v0.3.2 - GNU Coreutils for Windows =================================================== Installation: Location: C:\Users\Administrator\AppData\Local\WinuxCmd\WinuxCmd-0.3.2-win-x64\bin Management Commands: winux activate - Enable GNU commands winux deactivate - Restore original commands winux status - Check activation status winux list - List available commands winux version - Show version winux help - Show this help GNU Commands (direct): winux ls -la - List files winux cp source dest - Copy files winux mv source dest - Move files winux rm file - Remove file winux cat file - Show file content winux mkdir dir - Create directory Direct Access: winuxcmd --help - Show winuxcmd help PS C:\Users\Administrator>

可以不激活直接使用

PS C:\Users\Administrator\repo\WinuxCmd> winux ls .clang-format CMakePresets.json README.md build-dev scaffold.exe .clang-tidy CONTRIBUTING.md TemplateLicense.lict build-release scripts .github CONTRIBUTING_ZH.MD Testing build-test src .gitignore DOCS benchmark cmake tests .vs LICENSE build-asan examples CMakeLists.txt README-zh.md build-benchmark out PS C:\Users\Administrator\repo\WinuxCmd>

可以激活直接使用

PS C:\Users\Administrator\repo\WinuxCmd> winux activate Use commands directly (except 'echo' and 'cp' need '.exe'). PS C:\Users\Administrator\repo\WinuxCmd> ls -la drwxr-xr-x 1 Administrator Administrator Feb 21 02:47 . drwxr-xr-x 1 Administrator Administrator Feb 20 18:29 .. -rw-r--r-- 1 Administrator Administrator 9098 Feb 20 18:29 .clang-format -rw-r--r-- 1 Administrator Administrator 3477 Feb 20 18:29 .clang-tidy drwxr-xr-x 1 Administrator Administrator Feb 21 03:01 .git drwxr-xr-x 1 Administrator Administrator Feb 20 18:29 .github -rw-r--r-- 1 Administrator Administrator 326 Feb 21 02:34 .gitignore drwxr-xr-x 1 Administrator Administrator Feb 21 03:09 .vs -rw-r--r-- 1 Administrator Administrator 19907 Feb 21 02:47 CMakeLists.txt -rw-r--r-- 1 Administrator Administrator 2740 Feb 21 01:08 CMakePresets.json -rw-r--r-- 1 Administrator Administrator 16175 Feb 20 18:29 CONTRIBUTING.md -rw-r--r-- 1 Administrator Administrator 14582 Feb 20 18:29 CONTRIBUTING_ZH.MD drwxr-xr-x 1 Administrator Administrator Feb 20 18:29 DOCS -rw-r--r-- 1 Administrator Administrator 1094 Feb 20 18:29 LICENSE -rw-r--r-- 1 Administrator Administrator 12238 Feb 21 02:49 README-zh.md -rw-r--r-- 1 Administrator Administrator 13075 Feb 21 02:49 README.md -rw-r--r-- 1 Administrator Administrator 1175 Feb 20 18:29 TemplateLicense.lict drwxr-xr-x 1 Administrator Administrator Feb 21 02:35 Testing drwxr-xr-x 1 Administrator Administrator Feb 21 00:30 benchmark drwxr-xr-x 1 Administrator Administrator Feb 21 01:08 build-asan drwxr-xr-x 1 Administrator Administrator Feb 21 03:09 build-benchmark drwxr-xr-x 1 Administrator Administrator Feb 21 01:06 build-dev drwxr-xr-x 1 Administrator Administrator Feb 21 02:02 build-release drwxr-xr-x 1 Administrator Administrator Feb 20 18:41 build-test drwxr-xr-x 1 Administrator Administrator Feb 21 00:13 cmake drwxr-xr-x 1 Administrator Administrator Feb 21 00:01 examples drwxr-xr-x 1 Administrator Administrator Feb 21 01:06 out -rwxr-xr-x 1 Administrator Administrator 249856 Feb 21 02:22 scaffold.exe drwxr-xr-x 1 Administrator Administrator Feb 20 23:35 scripts drwxr-xr-x 1 Administrator Administrator Feb 20 22:36 src drwxr-xr-x 1 Administrator Administrator Feb 21 01:18 tests PS C:\Users\Administrator\repo\WinuxCmd>

可以通过deactivate反激活并且恢复PWSH原生别名
支持管道,支持和PWSH的原生命令混用管道
支持CMD,对于CMD来说可能还更方便,因为cmd不像pwsh有时候会出现奇奇怪怪的转义问题。

项目地址

[项目官网](WinuxCmd - Linux Commands on Windows)

目前支持的命令:

Command Description Supported Flags ( [NOT SUPPORT] = parsed but not implemented )
ls List directory contents -l, -a, -A, -h, -r, -t, -n, -g, -o, -1, -C, -w/–width, --color; -b/-B/-c/-d/-f/-F/-i/-k/-L/-m/-N/-p/-q/-Q/-R/-s/-S/-T/-u/-U/-v/-x/-X/-Z [NOT SUPPORT]
cat Concatenate and display files -n, -E, -s, -T
cp Copy files and directories -r, -v, -f, -i
mv Move/rename files -v, -f, -i, -n
rm Remove files/directories -r, -f, -v, -i
mkdir Create directories -p, -v, -m MODE
rmdir Remove empty directories –ignore-fail-on-non-empty, -p/–parents, -v
touch Update file timestamps / create -a, -c/–no-create, -d/–date, -h/–no-dereference, -m, -r/–reference, -t, --time
echo Display text -n, -e, -E, -u/–upper, -r/–repeat N
head Output first part of files -n/–lines, -c/–bytes, -q/–quiet/–silent, -v/–verbose, -z/–zero-terminated
tail Output last part of files -n/–lines, -c/–bytes, -z/–zero-terminated, -f/–follow [NOT SUPPORT], -F [NOT SUPPORT], --pid [NOT SUPPORT], --sleep-interval [NOT SUPPORT]
find Search for files -name, -iname, -type (d/f/l), -mindepth, -maxdepth, -print, -print0, -P, -quit; -L/-H/-delete/-exec/-ok/-printf/-prune [NOT SUPPORT]
grep Print lines matching patterns -E/-F/-G, -e, -f, -i/–no-ignore-case, -w, -x, -z, -s, -v, -m NUM, -b, -n, --line-buffered, -H/-h, --label, --binary-files, -r/-R, --include/–exclude/–exclude-dir, -L/-l, -c, -T, -Z, --color; -P [NOT SUPPORT]
sort Sort lines -b, -f, -n, -r, -u, -z, -o FILE, -t SEP, -k KEY; -d/-g/-i/-h/-M/-m/-R/-s [NOT SUPPORT]
uniq Report or omit repeated lines -c, -d, -f NUM, -i, -s NUM, -u, -w NUM, -z; -D, --group [NOT SUPPORT]
cut Cut fields from lines -d DELIM, -f LIST, -s, -z; -b/-c/–output-delimiter [NOT SUPPORT]
which Locate a command in PATH/PATHEXT -a; --skip-dot/–skip-tilde/–show-dot/–show-tilde [NOT SUPPORT]
env Print/modify environment -i/–ignore-environment, -u NAME, -0/–null; -S/–split-string, -C/–chdir, running COMMAND [NOT SUPPORT]
wc Count lines/words/bytes -c, -l, -w, -m, -L
pwd Print working directory -L (logical), -P (physical)
ps Report process status -e/-A/-a/-x (all processes), -f (full format), -l (long format), -u USER (user format), -w (wide output), --no-headers, --sort=KEY (sort by column)
tee Read from stdin and write to stdout and files -a/–append, -i/–ignore-interrupts, -p/–diagnose
chmod Change file mode bits -c/–changes, -f/–silent/–quiet, -v/–verbose, -R/–recursive, --reference
date Print or set system date/time -d/–date, -u/–utc, +FORMAT; -s/–set [NOT SUPPORT]
df Report file system disk space usage -h/–human-readable, -H/–si, -T/–print-type, -i/–inodes, -t/–type, -x/–exclude-type, -a/–all
du Estimate file space usage -h/–human-readable, -H/–si, -s/–summarize, -c/–total, -d/–max-depth, -a/–all
kill Send a signal to processes -l/–list, -s/–signal; -9/-KILL/-15/-TERM [supported signals]
ln Make links between files -s/–symbolic, -f/–force, -i/–interactive, -v/–verbose, -n/–no-dereference
diff Compare files line by line -u/–unified, -q/–brief, -i/–ignore-case, -w/–ignore-all-space, -B/–ignore-blank-lines, -y/–side-by-side [NOT SUPPORT], -r/–recursive [NOT SUPPORT]
file Determine file type -b/–brief, -i/–mime, -z/–compress, --mime-type, --mime-encoding
realpath Print the resolved absolute path -e/–canonicalize-existing, -m/–canonicalize-missing, -s/–strip, -z/–zero
xargs Build and execute command lines from input -n/–max-args, -I/–replace, -P/–max-procs, -t/–verbose, -0/–null; -d/–delimiter [NOT SUPPORT]
sed Stream editor -n/–quiet, -e/–expression, -f/–file, -i/–in-place [basic substitution: s/pattern/replacement/flags]
网友解答:
--【壹】--:

那必然没有的


--【贰】--:

怎么都安装不上是啥原因呢PS C:\Users\Administrator> cd E:\soft\WinuxCmd-0.4.0-win-x64\bin
PS E:\soft\WinuxCmd-0.4.0-win-x64\bin> E:\soft\WinuxCmd-0.4.0-win-x64\bin\winux-activate.ps1
e[36mWinuxCmd Profile Initializere[0m
e[36m===========================e[0m

e[33mSetting up WinuxCmd in PowerShell profile…e[0m
e[31mWinuxCmd not found in: C:\Users\Administrator\AppData\Local\WinuxCmde[0m
e[31mFailed to find WinuxCmd installatione[0m
Please install WinuxCmd first.
PS E:\soft\WinuxCmd-0.4.0-win-x64\bin>

在 PowerShell 中运行(无需管理员权限)

irm https://dl.caomengxuan666.com/install.ps1 | iex 一闪也没了


--【叁】--: EyeofTwilight:

有时候他会尝试运行一些linux命令,或者从一开始他输入的命令就是linux的。当他读到错误的时候,他才开始思考:

遇到太多次了,导致我都换成在linux下用ai coding了


--【肆】--:

感谢大佬。


--【伍】--:

感谢分享,有时间试试


--【陆】--:

star为敬


--【柒】--:

安装后它能一直保持最新版本吗?还是说有新版本就需要再安装一次?


--【捌】--:

之前一直使用cmder+busybox(二进制600kb),感觉项目不太吸引我


--【玖】--:

但是我还是更喜欢gsudo


--【拾】--:

记得win11有了sudo


--【拾壹】--:

感谢佬分享


--【拾贰】--:

那必然是远远不能,完整Linux系统和部分命令还是差得多。

只是终端工具和简易命令替换,类似 cmd.exe 和 alias 组合而已。


--【拾叁】--:

感谢佬友分享!


--【拾肆】--:

我选择msys2,工具链齐全生态完善,fish开箱即用,性能不差这么几毫秒


--【拾伍】--:

我很好奇,在git bash下会有这个问题吗


--【拾陆】--:

感谢分享


--【拾柒】--:

老哥,实际使用过程中:cmder+busybox能替代WSL吗?


--【拾捌】--:

感觉很不错,等下就试试


--【拾玖】--:

真棒啊,可以在Windows下用了

问题描述:

你是否在Windows开发的时候遇到过这样的情况?

PS C:\Users\Administrator> ls -la Get-ChildItem: A parameter cannot be found that matches parameter name 'la'.

是的,在cmd/pwsh的终端生态下,ls/mkdir/echo等命令,都是powershell定制的别名,这个别名看似给开发者带来了很大的便捷,实际上由于参数不支持,导致更多的难受的情景。
powershell的命令并不如linux友好,至少不好记,每一个命令都非常非常的长,这对于经常有跨平台开发的开发者显然并不友好,这也导致了大量开发者抛弃pwsh,转而使用了posix兼容的终端,如mysys2,cygwin,git bash等。

与此同时,还有更坑的点,这都是pwsh给开发者埋下的坑

PS C:\Users\Administrator> where cmake PS C:\Users\Administrator> where.exe cmake C:\Program Files\CMake\bin\cmake.exe PS C:\Users\Administrator>

是的!where居然不等于where.exe!那么大部分眼里面的用where直接代替linux的which实际上是不行的!那么where到底的是什么?

PS C:\Users\Administrator> Get-Alias -Name where CommandType Name Version Source ----------- ---- ------- ------ Alias where -> Where-Object PS C:\Users\Administrator>

神马?where居然是Where-Object的别名?那怪不得查不到呢!
PowerShell中的where实际上是Where-Object的别名,用于过滤对象。

于此同时,类似的坑还有很多。在windows10的很多的版本的主机上,curl!=curl.exe,而是Invoke-WebRequest的别名。这些命令行参数,本质上只有名字起了一个别名,所有的参数基本都是不支持的!

那么就要引入我今天要介绍的自己研发的项目:WinuxCmd了,他解决了原生powershell/cmd终端没有办法很好适配linux命令的问题。这个解决方案面向的是那些需要混合使用pwsh命令,或者是难以离开pwsh生态的人。比如我个人觉得oh-my-posh的一些主题和插件很有用,比如git插件,比如自动补全,等等等等。比git bash的终端支持好了不止一点,所以对于我个人来说,pwsh终端是很难被代替的。

你的AI智能体是否遇到过这样的问题
不知道大家有没有遇到过这种情况,自己的Ai,或者是本地的CLI,有时候他会尝试运行一些linux命令,或者从一开始他输入的命令就是linux的。当他读到错误的时候,他才开始思考:

我们观察到这个命令运行失败了,那么用户可能是windows环境, 我们需要用windows命令.让我想一下对应的powershell命令...

这个经常性的错误会干扰ai的思考,并且上下文一压缩,他又开始忘了这回事了,所以这会给开发者带来不少的困扰。当进行复杂的PWSH命令的时候,由于AI缺少大量的训练数据(绝对没有linux平台的数据多),他写出的powershell命令就很有可能会出错了。

我们提供的解决方案

  • 在Windows平台上借助现代C++,实现一个只依赖于部分标准库和windows Api的原生LINUX命令集合,兼容绝大部分的常用命令行参数。
  • 针对Powershll平台,用一个包装的powershell函数,取消掉所有可以取消掉的别名,将我们的可执行文件临时暴露到path中以供使用,针对CMD平台,也是类似的思想,将可执行文件临时设置或者是永久注册到注册表中

途中遇到的困难和解决方式

  • 在PWSH中,所有的管道传递的都是对象,我们原本提供的包装函数会产生管道失效的问题,于是我们使用了临时添加PATH的方式取代了复杂的包装函数,这样就支持原本的字符流的管道,这符合LINUX风格。并且我们的命令可以和POWERSHLL命令在管道中混用
  • 刚开始我是将PATH永久添加的,但是后来一想,不可以污染用户的PATH,于是通过windows powershell的用户配置文件,用powershell将部分函数安装到这里,每一次用户都可以临时启用,并且如果想恢复powershell别名,我们也提供了反激活的方案。
  • CATCH2/GTEST对于终端/管道直接运行的可执行文件并不友好。于是我自己从头开始手动实现了一个端到端的测试框架,兼容GTEST的多种参数,如过滤执行,分组执行。并且集成到了CTEST当中,可以用测试案例的而非PWSH的方式方便的进行测试,可以很好的可视化在终端/管道中的命令表现的情况。

我们产品的亮点

  • 截止到我发帖这天,2026年2月21日,我们已经实现了三十三个命令,和他们大部分的命令行参数。通过各种编译优化黑科技,所有命令加起来只有900KB.
  • 我们的命令启动时间(通过powershell测量,在15-30ms,平均20.0ms的时间,对比RUST实现的COREUTILS和老牌的GITBASH,他们的平均时间是70-80ms,快了四倍左右)
  • C++23实现,提供了命令脚手架和方便的注册宏,有自己的测试框架和为了项目专门实现的的容器库,如栈上的VEC和编译期的MAP等,速度对比STL原生遥遥领先。
  • AI友好,覆盖了大部分AI常用命令和参数,他基本很少出现报错的情况了。

使用手册

PS C:\Users\Administrator> winux WinuxCmd v0.3.2 - GNU Coreutils for Windows =================================================== Installation: Location: C:\Users\Administrator\AppData\Local\WinuxCmd\WinuxCmd-0.3.2-win-x64\bin Management Commands: winux activate - Enable GNU commands winux deactivate - Restore original commands winux status - Check activation status winux list - List available commands winux version - Show version winux help - Show this help GNU Commands (direct): winux ls -la - List files winux cp source dest - Copy files winux mv source dest - Move files winux rm file - Remove file winux cat file - Show file content winux mkdir dir - Create directory Direct Access: winuxcmd --help - Show winuxcmd help PS C:\Users\Administrator>

可以不激活直接使用

PS C:\Users\Administrator\repo\WinuxCmd> winux ls .clang-format CMakePresets.json README.md build-dev scaffold.exe .clang-tidy CONTRIBUTING.md TemplateLicense.lict build-release scripts .github CONTRIBUTING_ZH.MD Testing build-test src .gitignore DOCS benchmark cmake tests .vs LICENSE build-asan examples CMakeLists.txt README-zh.md build-benchmark out PS C:\Users\Administrator\repo\WinuxCmd>

可以激活直接使用

PS C:\Users\Administrator\repo\WinuxCmd> winux activate Use commands directly (except 'echo' and 'cp' need '.exe'). PS C:\Users\Administrator\repo\WinuxCmd> ls -la drwxr-xr-x 1 Administrator Administrator Feb 21 02:47 . drwxr-xr-x 1 Administrator Administrator Feb 20 18:29 .. -rw-r--r-- 1 Administrator Administrator 9098 Feb 20 18:29 .clang-format -rw-r--r-- 1 Administrator Administrator 3477 Feb 20 18:29 .clang-tidy drwxr-xr-x 1 Administrator Administrator Feb 21 03:01 .git drwxr-xr-x 1 Administrator Administrator Feb 20 18:29 .github -rw-r--r-- 1 Administrator Administrator 326 Feb 21 02:34 .gitignore drwxr-xr-x 1 Administrator Administrator Feb 21 03:09 .vs -rw-r--r-- 1 Administrator Administrator 19907 Feb 21 02:47 CMakeLists.txt -rw-r--r-- 1 Administrator Administrator 2740 Feb 21 01:08 CMakePresets.json -rw-r--r-- 1 Administrator Administrator 16175 Feb 20 18:29 CONTRIBUTING.md -rw-r--r-- 1 Administrator Administrator 14582 Feb 20 18:29 CONTRIBUTING_ZH.MD drwxr-xr-x 1 Administrator Administrator Feb 20 18:29 DOCS -rw-r--r-- 1 Administrator Administrator 1094 Feb 20 18:29 LICENSE -rw-r--r-- 1 Administrator Administrator 12238 Feb 21 02:49 README-zh.md -rw-r--r-- 1 Administrator Administrator 13075 Feb 21 02:49 README.md -rw-r--r-- 1 Administrator Administrator 1175 Feb 20 18:29 TemplateLicense.lict drwxr-xr-x 1 Administrator Administrator Feb 21 02:35 Testing drwxr-xr-x 1 Administrator Administrator Feb 21 00:30 benchmark drwxr-xr-x 1 Administrator Administrator Feb 21 01:08 build-asan drwxr-xr-x 1 Administrator Administrator Feb 21 03:09 build-benchmark drwxr-xr-x 1 Administrator Administrator Feb 21 01:06 build-dev drwxr-xr-x 1 Administrator Administrator Feb 21 02:02 build-release drwxr-xr-x 1 Administrator Administrator Feb 20 18:41 build-test drwxr-xr-x 1 Administrator Administrator Feb 21 00:13 cmake drwxr-xr-x 1 Administrator Administrator Feb 21 00:01 examples drwxr-xr-x 1 Administrator Administrator Feb 21 01:06 out -rwxr-xr-x 1 Administrator Administrator 249856 Feb 21 02:22 scaffold.exe drwxr-xr-x 1 Administrator Administrator Feb 20 23:35 scripts drwxr-xr-x 1 Administrator Administrator Feb 20 22:36 src drwxr-xr-x 1 Administrator Administrator Feb 21 01:18 tests PS C:\Users\Administrator\repo\WinuxCmd>

可以通过deactivate反激活并且恢复PWSH原生别名
支持管道,支持和PWSH的原生命令混用管道
支持CMD,对于CMD来说可能还更方便,因为cmd不像pwsh有时候会出现奇奇怪怪的转义问题。

项目地址

[项目官网](WinuxCmd - Linux Commands on Windows)

目前支持的命令:

Command Description Supported Flags ( [NOT SUPPORT] = parsed but not implemented )
ls List directory contents -l, -a, -A, -h, -r, -t, -n, -g, -o, -1, -C, -w/–width, --color; -b/-B/-c/-d/-f/-F/-i/-k/-L/-m/-N/-p/-q/-Q/-R/-s/-S/-T/-u/-U/-v/-x/-X/-Z [NOT SUPPORT]
cat Concatenate and display files -n, -E, -s, -T
cp Copy files and directories -r, -v, -f, -i
mv Move/rename files -v, -f, -i, -n
rm Remove files/directories -r, -f, -v, -i
mkdir Create directories -p, -v, -m MODE
rmdir Remove empty directories –ignore-fail-on-non-empty, -p/–parents, -v
touch Update file timestamps / create -a, -c/–no-create, -d/–date, -h/–no-dereference, -m, -r/–reference, -t, --time
echo Display text -n, -e, -E, -u/–upper, -r/–repeat N
head Output first part of files -n/–lines, -c/–bytes, -q/–quiet/–silent, -v/–verbose, -z/–zero-terminated
tail Output last part of files -n/–lines, -c/–bytes, -z/–zero-terminated, -f/–follow [NOT SUPPORT], -F [NOT SUPPORT], --pid [NOT SUPPORT], --sleep-interval [NOT SUPPORT]
find Search for files -name, -iname, -type (d/f/l), -mindepth, -maxdepth, -print, -print0, -P, -quit; -L/-H/-delete/-exec/-ok/-printf/-prune [NOT SUPPORT]
grep Print lines matching patterns -E/-F/-G, -e, -f, -i/–no-ignore-case, -w, -x, -z, -s, -v, -m NUM, -b, -n, --line-buffered, -H/-h, --label, --binary-files, -r/-R, --include/–exclude/–exclude-dir, -L/-l, -c, -T, -Z, --color; -P [NOT SUPPORT]
sort Sort lines -b, -f, -n, -r, -u, -z, -o FILE, -t SEP, -k KEY; -d/-g/-i/-h/-M/-m/-R/-s [NOT SUPPORT]
uniq Report or omit repeated lines -c, -d, -f NUM, -i, -s NUM, -u, -w NUM, -z; -D, --group [NOT SUPPORT]
cut Cut fields from lines -d DELIM, -f LIST, -s, -z; -b/-c/–output-delimiter [NOT SUPPORT]
which Locate a command in PATH/PATHEXT -a; --skip-dot/–skip-tilde/–show-dot/–show-tilde [NOT SUPPORT]
env Print/modify environment -i/–ignore-environment, -u NAME, -0/–null; -S/–split-string, -C/–chdir, running COMMAND [NOT SUPPORT]
wc Count lines/words/bytes -c, -l, -w, -m, -L
pwd Print working directory -L (logical), -P (physical)
ps Report process status -e/-A/-a/-x (all processes), -f (full format), -l (long format), -u USER (user format), -w (wide output), --no-headers, --sort=KEY (sort by column)
tee Read from stdin and write to stdout and files -a/–append, -i/–ignore-interrupts, -p/–diagnose
chmod Change file mode bits -c/–changes, -f/–silent/–quiet, -v/–verbose, -R/–recursive, --reference
date Print or set system date/time -d/–date, -u/–utc, +FORMAT; -s/–set [NOT SUPPORT]
df Report file system disk space usage -h/–human-readable, -H/–si, -T/–print-type, -i/–inodes, -t/–type, -x/–exclude-type, -a/–all
du Estimate file space usage -h/–human-readable, -H/–si, -s/–summarize, -c/–total, -d/–max-depth, -a/–all
kill Send a signal to processes -l/–list, -s/–signal; -9/-KILL/-15/-TERM [supported signals]
ln Make links between files -s/–symbolic, -f/–force, -i/–interactive, -v/–verbose, -n/–no-dereference
diff Compare files line by line -u/–unified, -q/–brief, -i/–ignore-case, -w/–ignore-all-space, -B/–ignore-blank-lines, -y/–side-by-side [NOT SUPPORT], -r/–recursive [NOT SUPPORT]
file Determine file type -b/–brief, -i/–mime, -z/–compress, --mime-type, --mime-encoding
realpath Print the resolved absolute path -e/–canonicalize-existing, -m/–canonicalize-missing, -s/–strip, -z/–zero
xargs Build and execute command lines from input -n/–max-args, -I/–replace, -P/–max-procs, -t/–verbose, -0/–null; -d/–delimiter [NOT SUPPORT]
sed Stream editor -n/–quiet, -e/–expression, -f/–file, -i/–in-place [basic substitution: s/pattern/replacement/flags]
网友解答:
--【壹】--:

那必然没有的


--【贰】--:

怎么都安装不上是啥原因呢PS C:\Users\Administrator> cd E:\soft\WinuxCmd-0.4.0-win-x64\bin
PS E:\soft\WinuxCmd-0.4.0-win-x64\bin> E:\soft\WinuxCmd-0.4.0-win-x64\bin\winux-activate.ps1
e[36mWinuxCmd Profile Initializere[0m
e[36m===========================e[0m

e[33mSetting up WinuxCmd in PowerShell profile…e[0m
e[31mWinuxCmd not found in: C:\Users\Administrator\AppData\Local\WinuxCmde[0m
e[31mFailed to find WinuxCmd installatione[0m
Please install WinuxCmd first.
PS E:\soft\WinuxCmd-0.4.0-win-x64\bin>

在 PowerShell 中运行(无需管理员权限)

irm https://dl.caomengxuan666.com/install.ps1 | iex 一闪也没了


--【叁】--: EyeofTwilight:

有时候他会尝试运行一些linux命令,或者从一开始他输入的命令就是linux的。当他读到错误的时候,他才开始思考:

遇到太多次了,导致我都换成在linux下用ai coding了


--【肆】--:

感谢大佬。


--【伍】--:

感谢分享,有时间试试


--【陆】--:

star为敬


--【柒】--:

安装后它能一直保持最新版本吗?还是说有新版本就需要再安装一次?


--【捌】--:

之前一直使用cmder+busybox(二进制600kb),感觉项目不太吸引我


--【玖】--:

但是我还是更喜欢gsudo


--【拾】--:

记得win11有了sudo


--【拾壹】--:

感谢佬分享


--【拾贰】--:

那必然是远远不能,完整Linux系统和部分命令还是差得多。

只是终端工具和简易命令替换,类似 cmd.exe 和 alias 组合而已。


--【拾叁】--:

感谢佬友分享!


--【拾肆】--:

我选择msys2,工具链齐全生态完善,fish开箱即用,性能不差这么几毫秒


--【拾伍】--:

我很好奇,在git bash下会有这个问题吗


--【拾陆】--:

感谢分享


--【拾柒】--:

老哥,实际使用过程中:cmder+busybox能替代WSL吗?


--【拾捌】--:

感觉很不错,等下就试试


--【拾玖】--:

真棒啊,可以在Windows下用了