这里的工具,是指 Linux/Unix 操作系统里的命令行工具。这些操作系统里大都有这些命令: cat, find, grep 等,最近几年,尤其是在 Rust 语言诞生之后,出现了一些新的命令行工具,跟这些老工具有类似的功能,同时更易用,更美观,性能更好。bat 可以代替 cat,fd 可以代替 find,ripgrep 可以代替 grep,此外还有 httpie,tldr,htop 等。
下面每一节的标题下方即是该工具的官方页面或 github 链接,可以找到更详情的介绍,以及安装方法等信息。
bat
一个 cat 克隆,搭配语法高亮和 Git 集成。
bat 跟 cat 都是用于输出、展示内容的,跟 cat 相比,bat 有这些特性:
- 多种编程语言和标记语言(比如 Markdown)的语法高亮
- 与 git 集成,可以展示当前文件内容的变更
- 使用
-A
或--show-all
参数可以展示「不可打印」字符。 - 当输出内容超过一屏,(通过把内容传递给 less 命令)自动分页。
fd
fd 是一种简单又快速和用户友好的 find 替代方案。
fd 跟 bat 是同一个作者。
跟 find 相比,fd 的特性:
- 更快
- 搜索语法更方便,不需要
find -i name '*PATTERN*'
,只需fd PATTERN
。 - 彩色的终端输出
- 默认忽略隐藏目录和文件,并且默认遵守
.gitignore
。
ripgrep
安装 ripgrep 之后,其命令是 rg
。在日常的开发工作中,可以替代 grep 命令,在目录中搜索某个字符串或正则表达式。为什么是 ripgrep
这个名字,请看 What does the “rip” in ripgrep mean?
ripgrep 在搜索时,跟 fd 一样默认忽略隐藏目录和文件,遵守 .gitignore
。
ripgrep 比 grep 快得多。在超大型项目,比如 Linux 内核源码、Chromium 源码这种体量的代码仓库里,ripgrep 有明显的性能优势。详情可见 ripgrep is faster than {grep, ag, git grep, ucg, pt, sift}。
httpie
HTTPie—aitch-tee-tee-pie—is a command line HTTP client with an intuitive UI, JSON support, syntax highlighting, wget-like downloads, plugins, and more.
httpie 的命令是 http
,它可以用来代替 curl 命令。比起 curl,httpie 发起请求的写法更方便,输出结果对人类更友好。
官方的这张图,足以展示出两者的主要区别。
tldr
Simplified and community-driven man pages
tldr 是更简单的 man。
使用命令行工具,免不了查文档。尤其是在用新的命令行工具,总会有一个适应的过程。对于最常见的用法,新工具往往跟旧工具差不多,没有什么学习成本。而不那么常见的用法,可能就要查文档了(前面介绍的工具的安装包里,都包含了手册,安装之后,通过 man
就可以查看对应文档了)。问题是 man page 往往看起来比较费劲,tldr 就是针对这个问题的。
例如官网这个示例,查询 tar
命令的用法:
这个结果并不能完全覆盖 man page 的所有内容,tar 的所有用法。不过对于日常使用,也足够了。
可以在这个链接 https://tldr.ostera.io/ 体验一下 tldr 命令。