【开源】 WinuxCmd,在Windows终端获得原生Linux命令体验
- 内容介绍
- 文章标签
- 相关推荐
你是否在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下用了

