这里的工具,是指 Linux/Unix 操作系统里的命令行工具。这些操作系统里大都有这些命令: cat, find, grep 等,最近几年,尤其是在 Rust 语言诞生之后,出现了一些新的命令行工具,跟这些老工具有类似的功能,同时更易用,更美观,性能更好。bat 可以代替 cat,fd 可以代替 find,ripgrep 可以代替 grep,此外还有 httpie,tldr,htop 等。

下面每一节的标题下方即是该工具的官方页面或 github 链接,可以找到更详情的介绍,以及安装方法等信息。

bat

bat

一个 cat 克隆,搭配语法高亮和 Git 集成。

bat 跟 cat 都是用于输出、展示内容的,跟 cat 相比,bat 有这些特性:

  • 多种编程语言和标记语言(比如 Markdown)的语法高亮
  • 与 git 集成,可以展示当前文件内容的变更
  • 使用 -A--show-all 参数可以展示「不可打印」字符。
  • 当输出内容超过一屏,(通过把内容传递给 less 命令)自动分页。

fd

fd

fd 是一种简单又快速和用户友好的 find 替代方案。

fd 跟 bat 是同一个作者。

跟 find 相比,fd 的特性:

  • 更快
  • 搜索语法更方便,不需要 find -i name '*PATTERN*',只需 fd PATTERN
  • 彩色的终端输出
  • 默认忽略隐藏目录和文件,并且默认遵守 .gitignore

ripgrep

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

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 发起请求的写法更方便,输出结果对人类更友好。

官方的这张图,足以展示出两者的主要区别。

curl and httpie

tldr

tldr

Simplified and community-driven man pages

tldr 是更简单的 man。

使用命令行工具,免不了查文档。尤其是在用新的命令行工具,总会有一个适应的过程。对于最常见的用法,新工具往往跟旧工具差不多,没有什么学习成本。而不那么常见的用法,可能就要查文档了(前面介绍的工具的安装包里,都包含了手册,安装之后,通过 man 就可以查看对应文档了)。问题是 man page 往往看起来比较费劲,tldr 就是针对这个问题的。

例如官网这个示例,查询 tar 命令的用法:

tldr tar

这个结果并不能完全覆盖 man page 的所有内容,tar 的所有用法。不过对于日常使用,也足够了。

可以在这个链接 https://tldr.ostera.io/ 体验一下 tldr 命令。