[#]: 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