25 个 Linux 下的炫酷又强大的命令行神器,你用过其中哪几个呢?

Posted by Mike on 2020-05-15

众所周知,我们在 Linux 下大多数时候是使用命令行来处理任务的。这样不但操作起来效率比较高,而且界面也比较炫酷。下面,我们就给大家推荐一些不但炫酷又好用的 Linux 命令行神器。

1. exa

exa 是一个用来替代 ls 的工具, exa 相比于 ls 增加了很多新的特性,比如:支持不同文件类型可以用不同颜色来展示、exa 比 ls 速度更快一些等。

项目地址:https://github.com/ogham/exa

更多详细介绍可参考:「推荐一个比 ls 命令速度快 100 倍的文件目录浏览神器」 一文。

2. FD

fd 是基于 Rust 开发的一个速度超快的命令行搜索工具,fd 旨在成为 Linux / Unix 下 find 命令的替代品。

fd 虽然不能提供现在 find 命令所有的强大功能,但它也提供了足够强大的功能来满足你日常需要。比如:简洁的语法、彩色的终端输出、超快的查询速度、智能大小写、支持正则表达式以及可并行执行命令等特性。

项目地址:https://github.com/sharkdp/fd

更多详细介绍可参考:「推荐一款比 Find 快 10 倍的搜索工具 FD」 一文。

3. RipGrep

Ripgrep 是命令行下一个基于行的命令行搜索工具,比 ag、grep、ack 速度更快。RipGrep 使用 Rust 开发,可以在多平台下运行,支持 Mac、Linux 和 Windows 等平台。

项目地址:https://github.com/BurntSushi/ripgrep

更多详细介绍可参考:「推荐一款命令行下最快的文本搜索神器 RipGrep」 一文。

4. Tig

Tig 是一款命令行下 Git 的可视化工具,可以很方便地在命令行下以交互的方式完成 Git 的各种操作。

项目地址:https://github.com/jonas/tig

5. FZF

FZF 是使用 GO 语言开发的一款命令行下支持模糊搜索的交互式工具。FZF 可以用来查找任何列表内容,包括文件、Git 分支、进程等。所有的命令行工具都可以生成列表后再通过管道将结果输入到 FZF 上进行模糊搜索。FZF 还可以结合其它工具(比如:rg、bat 和 Fasd )来完成更多的工作。

项目地址:https://github.com/junegunn/fzf

6. FPP

FPP (Facebook Path Picker ) 是由 Fackbook 开源一款终端多文件路径选择工具,它可以用于完善优化终端中的操作, 比如:Git、Grep 等的输出结果。

项目地址:https://github.com/facebook/PathPicker

7. BAT

BAT 是命令行下一款用来显示文件内容的工具,bat 命令功能跟常用命令 cat 类似。只是 bat 功能上更加强大一些,bat 在 cat 命令的基础上加入了行号显示、代码高亮和 Git 集成。

项目地址: https://github.com/sharkdp/bat

更多详细介绍可参考:「推荐一款命令行下支持语法高亮和Git集成的文件查看工具 bat」 一文。

8. MyCli

MyCli 是一个 MySQL 的命令行客户端,可以实现自动补全和语法高亮。MyCli 也可用于 MariaDB 和Percona。

项目地址:http://mycli.net/

更多详细介绍可参考:「MySQL的增强型语法高亮终端-MyCli」 一文。

9. HTop

HTop 称之为 Top 的增强版,是一个相对于 Top 命令提供更美观、更方便的进程监控工具。

项目地址: https://hisham.hm/htop/

更多详细介绍可参考:「一款比 top 强悍好用的进程管理监控工具」 一文。

10. Glances

Glances 是一个用于监控系统的跨平台、基于文本模式的命令行工具。它是用 Python 编写的,使用 psutil 库从系统获取信息。你可以用它来监控 CPU、平均负载、内存、网络接口、磁盘 I/O,文件系统空间利用率、挂载的设备、所有活动进程以及消耗资源最多的进程。信息比 htop 更加丰富,除了命令行,Glances 还提供页面服务,可以让你从页面上随时查看某服务器的状态。

项目地址: https://github.com/nicolargo/glances

11. lrzsz

lrzsz 软件包是一个支持 Zmodem 协议的工具包。 其中包含的 rz、sz 命令是通过 ZModem 协议在远程服务器和终端机器间上传下载文件的利器。

lrzsz 支持交互式文件传输,在多重跳板机下传输文件非常好用,不用一级一级传输。

项目地址: https://www.ohse.de/uwe/software/lrzsz.html

更多详细介绍可参考:「在 iTerm2 中使用 Zmodem 实现快速传输文件」 一文。

12. Ncdu

Ncdu (NCurses Disk Usage) 是一个基于 Ncurses 库的 du 命令的界面。它通过大家熟知的 du 命令,为用户提供一个快速且容易被使用的界面。它可以显示磁盘使用的百分比,且允许你使用 ncurses 库的方式在目录之间导航。

项目地址: https://dev.yorhel.nl/ncdu

13. Tmux

Tmux 是一个优秀的终端复用工具,功能类似 GNU Screen,但使用 BSD 许可发布。用户可以通过 Tmux 在一个终端内管理多个分离的会话、窗口及面板,对于同时使用多个命令行,或多个任务时非常方便。

项目地址: https://github.com/tmux/tmux

14. MultiTail

MultiTail 是一个开源的 Ncurses 实用程序,可用于在单个窗口或单个 Shell 中将多个日志文件同时显示到标准输出。

项目地址: https://www.vanheusden.com/multitail

15. ShellCheck

ShellCheck 是一款实用的 Shell 脚本静态检查工具,可以帮助你提前发现并修复语法错误以及不规范的写法。

项目地址:https://github.com/koalaman/shellcheck

16. Explainshell

Explainshell 是一个帮助你解释命令行的网站,它会分析命令的帮助文档,然后根据你想查询的命令参数来抽取对应的解释,然后简洁易懂地显示出来。

项目地址: https://github.com/idank/explainshell

17. Asciinema

Asciinema 是一个终端下非常棒的录屏和回放软件。Asciinema 对终端输入输出进行捕捉,然后以文本的形式来记录和回放。

基于 Asciinema 用文本来记录的特性,使其拥有了非常炫酷的特性。你可以在播放过程中随时暂停,然后对播放器中的文本进行复制或者其它操作。

项目地址:https://github.com/asciinema/asciinema

更多详细介绍可参考:「手把手教你使用终端录屏神器 Asciinema」 一文。

18. Svg-term

一个可以根据 Asciinema 录制文件生成 SVG 动画的小工具。

项目地址: https://github.com/marionebl/svg-term-cli

来看一个实例:将通过 Asciinema 在终端录制的视频转换为 SVG 文件。

1
2
3
4
5
6
7
8
9
10
# 安装 svg-term 
$ npm install -g svg-term-cli

# 直接转换发布在 Asciinema 网站上的视频,需要先确认视频所在链接中的录制 ID,例如: https://asciinema.org/a/219486 的 ID 就是 219486
$ svg-term --cast=219486 --out ~/home/mike/out.svg --padding 18 --height 8 --width 80

# 如果你不想把录制文件上传到 Asciinema 网站上,你也可以直接使用 svg-term 转换本地录制文件

$ asciinema rec cast.json
$ cat cast.json | svg-term-cli

19. Wrk

Wrk 是轻量级的 HTTP 性能测试工具。相比于 Apache ab 功能更强大,支持 HTTP 1.1,而且可以用 Lua 写脚本支持更复杂的测试场景。

项目地址:https://github.com/wg/wrk

20. HTTPie

HTTPie (读aych-tee-tee-pie) 是一款开源的命令行 HTTP 工具。HTTPie 采用 Python 开发,底层用到了 Requests 和 Pygments 库。

HTTPie 设计用来增强 wget 和 curl 的可用性。它的主要目标是使通过命令行与网络服务器进行交互的过程变得尽可能的人性化。其提供了一个简单的 HTTP 环境来让我们通过简单而自然的语法发送任意 HTTP 请求,并显示彩色输出。HTTPie 可用于测试,调试和与 HTTP 服务器进行普通的交互。

项目地址: http://httpie.org/

更多详细介绍可参考:「如何用 HTTPie 更高效的调试接口」 一文。

21. HTTP Prompt

HTTP Prompt 是一个交互式的命令行 HTTP 客户端,支持自动完成、语法高亮,基于 HTTPie 和 prompt_toolkit 构建。HTTP Prompt 相对于其它命令行的 HTTP 客户端 (如:HTTPie、Curl 等)使用上更加直观方便。

项目地址: https://github.com/eliangcs/http-prompt

更多详细介绍可参考:「Linux 命令行下交互式 HTTP 客户端–HTTP Prompt」 一文。

22. TLDR

TLDR 全称Too long, Don’t read,翻译成中文就是太长不读。它可以帮助你快速查看命令行工具的使用实例。简而言之,就是 Man 页面的精简版本。

项目地址: https://github.com/tldr-pages/tldr

更多详细介绍可参考:「Linux命令行学习神器tldr」 一文。

23. Ranger

Ranger 是一个命令行下的文件管理器。Ranger 使用 Python 编写,默认为使用 Vim 风格的按键绑定。

项目地址: https://github.com/ranger/ranger

24. Axel

Axel 是 Linux 下一个不错的高速下载工具。支持多线程下载、断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件。非常适合网速不给力时多线程下载,以提高下载速度。

项目地址: https://github.com/axel-download-accelerator/axel

25. Cloc

Cloc 是一款使用 Perl 语言开发的开源代码统计工具,支持多平台使用、多语言识别,能够计算指定目标文件或文件夹中的文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code)。

项目地址: http://cloc.sourceforge.net/

更多详细介绍可参考:「代码统计利器 CLOC」 一文。

参考文档

  1. http://www.google.com

  2. https://darrenburns.net/posts/tools/

  3. https://darrenburns.net/posts/more-tools

  4. https://darrenburns.net/posts/even-more-tools

  5. https://darrenburns.net/posts/command-line-tools-iv

  6. https://juejin.im/post/5afabcb1f265da0b886d92b6

  7. https://www.cnblogs.com/zqb-all/p/10054594.html