[#]: subject: "A list of new(ish) command line tools"
[#]: via: "https://jvns.ca/blog/2022/04/12/a-list-of-new-ish--command-line-tools/"
[#]: author: "Julia Evans https://jvns.ca/"
[#]: collector: "lujun9972"
[#]: translator: "geekpi"
[#]: reviewer: "wxy"
[#]: publisher: "wxy"
[#]: url: "https://linux.cn/article-14488-1.html"

新式 Linux 命令行工具大全
======

![](https://img.linux.net.cn/data/attachment/album/202204/18/230845e83y1wla8feawucp.jpg)

嗨!今天我 [在 twitter][1] 询问有没有一些像 `ripgrep`、`fd`、`fzf`、`exa` 及 `bat` 之类的新式命令行工具。

我收到了一大堆回复,都是我没有听说过的工具,所以我想我应该在这里列出一个清单。另外,很多人还指出有一个 [modern-unix][2] 的列表。

### 标准工具的替代物

  * [ripgrep][3]、[ag][4]、[ack][5] (`grep`)
  * [exa][6]、[lsd][7] (`ls`)
  * [mosh][8] (`ssh`)
  * [bat][9] (`cat`)
  * [delta][10] (`git` 分页器)
  * [fd][11] (`find`)
  * [drill][12]、[dog][13] (`dig`)
  * [duf][14] (`df`)
  * [dust][15]、`ncdu` (`du`)
  * [pgcli][16] (psql)
  * [btm][17]、[btop][18]、[glances][19]、[gtop][20]、[zenith][21] (`top`)
  * [tldr][22] (类似 `man`)
  * [sd][23] (`sed`)
  * [difftastic][24] (`diff`)
  * `mtr` (`traceroute`)
  * [plocate][25] (`locate`)
  * `xxd`、[hexyl][26] (`hexdump`)

### 新的发明

这里有一些不完全是替代标准工具的工具:

  * [z][27]、[fasd][28]、[autojump][29]、[zoxide][30] (使查找文件/改变目录更容易的工具)
  * [broot][31]、[nnn][32]、[ranger][33] (文件管理器)
  * [direnv][34] (根据当前目录加载环境变量)
  * [fzf][35]、[peco][36] (“模糊查找器”)
  * [croc][37] 和 [magic-wormhole][38] (将文件从一台计算机发送到另一台)
  * [hyperfine][39] 基准测试
  * [httpie][40]、[curlie][41]、[xh][42] (用于发出 HTTP 请求)
  * [entr][43] (当文件改变时运行任意命令)
  * [asdf][44] (多语言的版本管理器)
  * [tig][45]、[lazygit][46] (`git` 的交互界面)
  * [lazydocker][47] (`docker` 的交互式界面)
  * [choose][48] (基本版的 `awk`/`cut`)
  * [ctop][49] (容器的 `top`)
  * [fuck][50] (自动纠正命令行错误)
  * [tmate][51] (与朋友分享你的终端)
  * [lnav][52]、[angle-grinder][53] (管理日志的工具)
  * [mdp][54]、[glow][55] (在终端显示 Markdown 的方法)
  * `pbcopy`/`pbpaste`(用于剪贴板和标准输入/标准输出之间)可能不是“新的”,但被提到了很多次。你可以使用 `xclip` 在 Linux 上做同样的事情

### JSON/YAML/CSV 工具

  * [jq][57] (一个很好的 JSON 处理工具)
  * [jc][58] (将各种工具的输出转换成 JSON)
  * [jo][59] (创建 JSON 对象)
  * [yq][60] (类似 `jq`,但用于 YAML),还有 [另一个 yq][61]
  * [fq][62] (类似 `jq`,但用于二进制)
  * [htmlq][63] (类似 `jq`,但用于 HTML)
  * [fx][64] (交互式 JSON 工具)
  * [jless][65] (JSON 分页器)
  * [xsv][66] (一个用于 CSV 文件的命令行工具,来自 burntsushi)
  * [visidata][67] (“一个用于表格数据的交互式多功能工具”)
  * [miller][68] (“像用于 CSV/TSV/JSON/JSON 的 awk/sed/cut/join/sort”)

### grep 工具

  * [pdfgrep][69] (用于 PDF 的 `grep`)
  * [gron][70] (用于 JSON 的 `grep`)
  * [ripgrep-all][71] (`ripgrep`,但也用于 PDF、zip、电子书等)

### 不太新的工具

下面是人们提到的一些不那么新的工具,但不那么知名:

  * `pv` (“管道查看程序”,给你一个管道的进度条)
  * `vidir` (来自 [moreutils][72],可以让你在 `vim` 中批量重命名/删除文件)
  * `sponge`、`ts`、`parallel` (也来自 moreutils)

### 我的一些最爱

我最喜欢的是 `entr`、`ripgrep`、`git-delta`、`httpie`、`plocate` 和 `jq`,这些都是我已经使用过的。

我也想尝试一下 `direnv`、`btm`、`z`、`xsv` 和 `duf`,但我认为我知道到的最令人兴奋的工具是 `vidir`。

--------------------------------------------------------------------------------

via: https://jvns.ca/blog/2022/04/12/a-list-of-new-ish--command-line-tools/

作者:[Julia Evans][a]
选题:[lujun9972][b]
译者:[geekpi](https://github.com/geekpi)
校对:[wxy](https://github.com/wxy)

本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出

[a]: https://jvns.ca/
[b]: https://github.com/lujun9972
[1]: https://twitter.com/b0rk/status/1513903221466664962
[2]: https://github.com/ibraheemdev/modern-unix
[3]: https://github.com/BurntSushi/ripgrep/
[4]: https://github.com/ggreer/the_silver_searcher
[5]: https://github.com/beyondgrep/ack3
[6]: https://github.com/ogham/exa
[7]: https://github.com/Peltoche/lsd
[8]: https://mosh.org/
[9]: https://github.com/sharkdp/bat
[10]: https://github.com/dandavison/delta
[11]: https://github.com/sharkdp/fd
[12]: https://www.nlnetlabs.nl/projects/ldns/about/
[13]: https://github.com/ogham/dog
[14]: https://github.com/muesli/duf
[15]: https://github.com/bootandy/dust
[16]: https://www.pgcli.com/
[17]: https://github.com/ClementTsang/bottom
[18]: https://github.com/aristocratos/btop
[19]: https://github.com/nicolargo/glances
[20]: https://github.com/aksakalli/gtop
[21]: https://github.com/bvaisvil/zenith
[22]: https://tldr.sh/
[23]: https://github.com/chmln/sd
[24]: https://github.com/Wilfred/difftastic
[25]: https://plocate.sesse.net/
[26]: https://github.com/sharkdp/hexyl
[27]: https://github.com/rupa/z
[28]: https://github.com/clvv/fasd
[29]: https://github.com/wting/autojump
[30]: https://github.com/ajeetdsouza/zoxide
[31]: https://github.com/Canop/broot
[32]: https://github.com/jarun/nnn
[33]: https://github.com/ranger/ranger
[34]: https://github.com/direnv/direnv
[35]: https://github.com/junegunn/fzf
[36]: https://github.com/peco/peco
[37]: https://github.com/schollz/croc
[38]: https://github.com/magic-wormhole/magic-wormhole
[39]: https://github.com/sharkdp/hyperfine
[40]: https://httpie.io/
[41]: https://github.com/rs/curlie
[42]: https://github.com/ducaale/xh
[43]: https://github.com/eradman/entr
[44]: https://github.com/asdf-vm/asdf
[45]: https://github.com/jonas/tig
[46]: https://github.com/jesseduffield/lazygit
[47]: https://github.com/jesseduffield/lazydocker
[48]: https://github.com/theryangeary/choose
[49]: https://github.com/bcicen/ctop
[50]: https://github.com/nvbn/thefuck
[51]: https://tmate.io/
[52]: https://github.com/tstack/lnav
[53]: https://github.com/rcoh/angle-grinder
[54]: https://github.com/visit1985/mdp
[55]: https://github.com/charmbracelet/glow
[56]: https://stackoverflow.com/questions/5130968/how-can-i-copy-the-output-of-a-command-directly-into-my-clipboard/41843618#41843618
[57]: https://stedolan.github.io/jq/
[58]: https://github.com/kellyjonbrazil/jc
[59]: https://github.com/jpmens/jo
[60]: https://github.com/mikefarah/yq
[61]: https://github.com/kislyuk/yq
[62]: https://github.com/wader/fq
[63]: https://github.com/mgdm/htmlq
[64]: https://github.com/antonmedv/fx
[65]: https://github.com/PaulJuliusMartinez/jless
[66]: https://github.com/BurntSushi/xsv
[67]: https://www.visidata.org/
[68]: https://github.com/johnkerl/miller
[69]: https://pdfgrep.org/
[70]: https://github.com/tomnomnom/gron
[71]: https://github.com/phiresky/ripgrep-all
[72]: https://joeyh.name/code/moreutils