如果你熟悉 Linux 系统命令行,比如
ls
、cat
、cp
、rm
,那你用过的其实是 GNU coreutils 提供的一套基础工具。而 uutils 社区的 coreutils 是一个使用 Rust 语言从零实现的同类项目,目标是 跨平台、高性能、更安全地重现这些核心命令行工具。Github地址: github.com/uutils/core…
核心特性
- 跨平台支持:uutils 可以在 Linux、macOS、Windows 和其他 Rust 支持的平台上运行。
- Drop-in 替代:uutils 力求成为 GNU Coreutils 的直接替代品,任何与 GNU 行为不同的地方都被视为 bug。
- Rust 实现:利用 Rust 的内存安全和性能优势,构建高效、可靠的命令行工具。
- 多模式构建:支持构建单个工具包(coreutils)或多个功能不同的可执行程序(例如:ls、cp)。
- 完善的文档:提供了用户和开发者文档,方便使用和贡献代码。
- Shell 补全和 Manpage 支持:支持 Bash、Fish、Zsh、PowerShell、Elvish 等 shell 的自动补全,并可生成 manpages。
安装方法
方法一、使用 Cargo 安装
cargo install coreutils
安装完成后,二进制文件将位于 ~/.cargo/bin/coreutils
。
方法二、使用源码构建
-
克隆仓库
git clone https://github.com/uutils/coreutils cd coreutils
-
使用 Cargo 构建
构建默认核心工具集,将在
target/release
目录中生成coreutils
可执行程序:cargo build --release
构建特定平台的扩展功能(例如 macOS):
cargo build --release --features macos
构建单个工具,将在
target/release
目录中生成cat
可执行程序:cargo build --release -p uu_cat
使用方法
安装完成后,你可以像使用 GNU Coreutils 一样使用这些命令。例如:
coreutils cat filename.txt
coreutils ls -l
coreutils rm file.txt
如果你安装的是单个工具(如 uu_cat
),则可以直接调用:
cat filename.txt
目前官方已经提供了 ls、mv、cp 等高达 91 个工具,0.0.30版本支持的工具集如下:
arch, b2sum, b3sum, base32, base64, basename, basenc, cat, cksum, comm, cp, csplit, cut,
date, dd, df, dir, dircolors, dirname, du, echo, env, expand, expr, factor, false, fmt,
fold, hashsum, head, hostname, join, link, ln, ls, md5sum, mkdir, mktemp, more, mv, nl,
nproc, numfmt, od, paste, pr, printenv, printf, ptx, pwd, readlink, realpath, rm, rmdir,
seq, sha1sum, sha224sum, sha256sum, sha3-224sum, sha3-256sum, sha3-384sum, sha3-512sum,
sha384sum, sha3sum, sha512sum, shake128sum, shake256sum, shred, shuf, sleep, sort, split,
sum, sync, tac, tail, tee, test, touch, tr, true, truncate, tsort, uname, unexpand, uniq,
unlink, vdir, wc, whoami, yes