Microsoft.Coreutils 包含了 **超过 75 个**原生的类 Unix 命令行工具。 该工具包的每个命令都支持标准的 `--help` 参数来查看完整用法。 这里按功能为你整理的常用命令列表: | 功能分类 | 命令 (部分示例) | 描述 | | :--- | :--- | :--- | | **📁 文件与目录管理** | `ls`, `cp`, `mv`, `rm` | 列出、复制、移动/重命名、删除文件或目录 | | | `mkdir`, `rmdir`, `touch` | 创建、删除目录,以及创建空文件或更新时间戳 | | | `ln` | 在文件之间创建硬链接或软链接 | | | `pwd` | 显示当前工作目录的完整路径 | | **📝 文本处理** | `cat`, `grep` | 连接文件并打印到标准输出,以及在文件中搜索匹配模式 | | | `head`, `tail` | 输出文件的开头或结尾部分 | | | `cut`, `sort`, `uniq` | 切割、排序和去重文本行 | | | `wc` | 统计文件的字节数、字数、行数 | | | `diff` | 逐行比较两个文件的差异(来自 `uutils/coreutils`) | | **⚙️ 系统查询与信息** | `date`, `hostname` | 显示或设置系统日期/时间,以及主机名 | | | `df`, `du` | 显示磁盘空间使用情况和文件/目录的磁盘占用 | | | `echo`, `printenv` | 显示一行文本,或打印环境变量值 | | | `id`, `whoami` | 显示用户身份信息 | | | `uptime` | 显示系统已运行时间 | | **🔐 校验与编码** | `md5sum`, `sha256sum` | 计算或校验文件的 MD5 或 SHA256 校验值 | | | `base64`, `base32` | 以 base64 或 base32 方式编码或解码数据 | | **🔍 查找工具** | `find`, `xargs` | 在目录树中搜索文件,以及从标准输入构建和执行命令行 | > 此外,`sort` 和 `find` 这两个命令内部还集成了对 DOS 风格 `/switch` 参数的支持,以最大限度地兼容旧有的 CMD 脚本。 ### 🛠️ 功能是完整的,但不是所有的 这是一个约 5MB 的轻量级工具包,采用了 **"单二进制 (multi-call binary)"** 的架构。安装后系统通过 `NTFS 硬链接 (NTFS hardlinks)` 创建 `ls.exe`、`cp.exe` 等命令入口,它们都指向同一个 `coreutils.exe` 主程序。 不过,有几个原因**导致部分命令被排除**: 1. **与系统内置命令冲突**:为避免混淆,以下命令未随包提供。 * `dir`, `more`, `expand`, `kill`, `timeout`, `whoami`, `paste` 2. **依赖缺失的 POSIX 功能**:因 Windows 不完全支持某些 POSIX 特性,以下命令未包含。 * `chmod`, `chown`, `chroot`, `nohup`, `tty`, `id`, `stty`, `who` ### 💡 命令冲突与解决方法 这些命令与系统原有的命令在 CMD 和 PowerShell 中可能存在冲突。例如,PowerShell 中的 `cat`、`ls`、`cp` 等命令本质上是内部别名,会优先于微软 Coreutils 版本被执行。 为了解决冲突,你可以: * **使用完整路径**:直接调用 `C:\Program Files\coreutils\cat.exe` 来执行。 * **移除别名**:删除 PowerShell 配置文件中相关的别名,使 Coreutils 命令成为默认选项。 你有遇到过命令冲突的具体情况吗?如果想了解更多排查或设置默认命令的方法,随时告诉我~