最近沉迷于一批Rust编写的生产力工具, 每个都是blazing-fast, 有的还很酷炫. 在这里做个收集分享, 具体安装、教程就不细说了, 自行查阅.
ripgrep
最刁的应该就是ripgrep了, 名称也起得很调皮: R.I.P grep
, 意图很明显了, 就是取代grep的, 且实际性能碾压grep. 作者在他的文章中列举了很多benchmark. 截取一个感受一下:
Tool | Command | Line count | Time |
---|---|---|---|
ripgrep | rg -L -u -tc -n -w '[A-Z]+_SUSPEND' | 404 | 0.079s |
ucg | ucg --type=cc -w '[A-Z]+_SUSPEND' | 390 | 0.163s |
GNU grep | egrep -R -n --include='*.c' --include='*.h' -w '[A-Z]+_SUSPEND' | 404 | 0.611s |
不过, 我用得最多的并不是rg
命令, 而是在vim中的LeaderF插件的模糊匹配, 速度也是贼快.
inferno
inferno这个工具很多人不常用, 但是对我的帮助是最大的. 几乎秒生成🔥火焰图的工具, 和原版FlameGraph相比, 速度快了18~20倍.
贴一个作者的benchmark:
1 | collapse/dtrace/1 time: [8.2767 ms 8.2817 ms 8.2878 ms] |
感受一下对比:
broot
还在用tree
命令吗? 试试broot吧! 交互式的树形结构查找, 一目了然, 关键是毫秒级的查询响应.
du
dua-cli
dua (-> Disk Usage Analyzer) , 类似du
命令, 但是提供交互式的查看方式.
dust
du + rust = dust. 更直观的方式显示du命令. 不过不是常规的树型结构, 而是倒树型.
dutree
dutree, du
命令+tree
命令, 提供 files-only 功能.
上面三个工具, 由于dua-cli
不包含树型等复杂的图形, 所以在统计上速度最快(以--depth 1
测试). 各有千秋, 大家可以自选.
bat
这个bat不是我们想的BAT. 目的是取代cat
(cat with wings -> bat). 以前一直认为cat就是打印到终端, 用来查看文件而已, 直到看到了bat:
自动根据文件类型做语法高亮, 好看多了. 还有其它的命令参数, 甚至有一个和ripgrep
结合的命令: batgrep
, 带高亮地打印前者的输出.
hexyl
如果要查看二进制文件内容怎么办? bat只能打印出来告诉你是 <BINARY>. 这时候需要hexyl, 非常友好的二进制查看工具, 曾经还在苦苦寻找好用GUI工具.
当然还支持很多参数, 自定义查看方式.
dtool
除了查看文件内容或者二进制数据外, 我们通常还会计算文件哈希值或者一些其它的文件常见操作, 而dtool这个工具就像一个开发者的小型瑞士军刀, 提供了开发者很多常见命令操作, 如计算哈希值、编码转换等等常见操作.
convert a string to base64
1 | $ echo -n abc | dtool s2h | dtool h2b64 |
convert a encoded timestamp to date
1 | $ echo -n 2c28e75d | dtool nd -tu32 | dtool ts2d |
convert a jpeg to base64
1 | $ cat pic.jpg | dtool b2h | dtool h2b64 |
calculate file md5
1 | $ cat pic.jpg | dtool b2h | dtool hash -a md5 |
ytop
常用的htop
命令也有一个Rust的版本, 叫ytop, 样子也是很酷炫.
procs
曾经也是各种记ps命令的参数, 后来用htop
. 现在有了procs, 功能上虽不如htop
丰富, 但是能够查看docker容器的状态.
后面再分享两个比较fancy的工具.
lsd
lsd看名称就是替代ls
的, 加了各种icon和高亮, 需要安装nerd
字体
starship
光看logo和名字就知道很fancy了, 以模块的哲学来定义shell终端展示.
还有另外一个叫nushell, 用终端制表的方式打印输出, 和上面几个相比就没有高亮了.
tui-rs
最后祭出tui-rs, 是一个Rust的终端GUI library, 提供各种Widget, 可以用来DIY自己的神器. 包括上面的ytop
也是基于tui-rs开发的.
感谢各位作者和Rust, 给大家带来的这些高效工具, 欢迎推荐👏.
开了一个仓库用来记录和存放:https://github.com/unpluggedcoder/awesome-rust-tools,不定期更新中。