Files
Knowledge/1 使用/Windows/Microsoft.Coreutils 用法.md
T

3.1 KiB
Raw Blame History

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 命令成为默认选项。

你有遇到过命令冲突的具体情况吗?如果想了解更多排查或设置默认命令的方法,随时告诉我~