本文首发于:微信公众号「运维之美」,公众号 ID:Hi-Linux。
「运维之美」是一个有情怀、有态度,专注于 Linux 运维相关技术文章分享的公众号。公众号致力于为广大运维工作者分享各类技术文章和发布最前沿的科技信息。公众号的核心理念是:分享,我们认为只有分享才能使我们的团体更强大。如果你想第一时间获取最新技术文章,欢迎关注我们!
公众号作者 Mike,一个月薪 3000 的杂工。从事 IT 相关工作 15+ 年,热衷于互联网技术领域,认同开源文化,对运维相关技术有自己独特的见解。很愿意将自己积累的经验、心得、技能与大家分享交流,篇篇干货不要错过哟。如果你想联系到我,可关注公众号获取相关信息。
众所周知,我们在 Linux 下大多数时候是使用命令行来处理任务的。这样不但操作起来效率比较高,而且界面也比较炫酷。下面,我们就给大家推荐一些不但炫酷又好用的 Linux 命令行神器。
1. exa
exa 是一个用来替代 ls 的工具, exa 相比于 ls 增加了很多新的特性,比如:支持不同文件类型可以用不同颜色来展示、exa 比 ls 速度更快一些等。
更多详细介绍可参考:「推荐一个比 ls 命令速度快 100 倍的文件目录浏览神器」 一文。
2. FD
fd 是基于 Rust 开发的一个速度超快的命令行搜索工具,fd 旨在成为 Linux / Unix 下 find 命令的替代品。
fd 虽然不能提供现在 find 命令所有的强大功能,但它也提供了足够强大的功能来满足你日常需要。比如:简洁的语法、彩色的终端输出、超快的查询速度、智能大小写、支持正则表达式以及可并行执行命令等特性。
更多详细介绍可参考:「推荐一款比 Find 快 10 倍的搜索工具 FD」 一文。
3. RipGrep
Ripgrep 是命令行下一个基于行的命令行搜索工具,比 ag、grep、ack 速度更快。RipGrep 使用 Rust 开发,可以在多平台下运行,支持 Mac、Linux 和 Windows 等平台。
更多详细介绍可参考:「推荐一款命令行下最快的文本搜索神器 RipGrep」 一文。
4. Tig
Tig 是一款命令行下 Git 的可视化工具,可以很方便地在命令行下以交互的方式完成 Git 的各种操作。
5. FZF
FZF 是使用 GO 语言开发的一款命令行下支持模糊搜索的交互式工具。FZF 可以用来查找任何列表内容,包括文件、Git 分支、进程等。所有的命令行工具都可以生成列表后再通过管道将结果输入到 FZF 上进行模糊搜索。FZF 还可以结合其它工具(比如:rg、bat 和 Fasd )来完成更多的工作。
6. FPP
FPP (Facebook Path Picker ) 是由 Fackbook 开源一款终端多文件路径选择工具,它可以用于完善优化终端中的操作, 比如:Git、Grep 等的输出结果。
7. BAT
BAT 是命令行下一款用来显示文件内容的工具,bat 命令功能跟常用命令 cat 类似。只是 bat 功能上更加强大一些,bat 在 cat 命令的基础上加入了行号显示、代码高亮和 Git 集成。
更多详细介绍可参考:「推荐一款命令行下支持语法高亮和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 还提供页面服务,可以让你从页面上随时查看某服务器的状态。
11. lrzsz
lrzsz 软件包是一个支持 Zmodem 协议的工具包。 其中包含的 rz、sz 命令是通过 ZModem 协议在远程服务器和终端机器间上传下载文件的利器。
lrzsz 支持交互式文件传输,在多重跳板机下传输文件非常好用,不用一级一级传输。
更多详细介绍可参考:「在 iTerm2 中使用 Zmodem 实现快速传输文件」 一文。
12. Ncdu
Ncdu (NCurses Disk Usage) 是一个基于 Ncurses 库的 du 命令的界面。它通过大家熟知的 du 命令,为用户提供一个快速且容易被使用的界面。它可以显示磁盘使用的百分比,且允许你使用 ncurses 库的方式在目录之间导航。
13. Tmux
Tmux 是一个优秀的终端复用工具,功能类似 GNU Screen,但使用 BSD 许可发布。用户可以通过 Tmux 在一个终端内管理多个分离的会话、窗口及面板,对于同时使用多个命令行,或多个任务时非常方便。
14. MultiTail
MultiTail 是一个开源的 Ncurses 实用程序,可用于在单个窗口或单个 Shell 中将多个日志文件同时显示到标准输出。
15. ShellCheck
ShellCheck 是一款实用的 Shell 脚本静态检查工具,可以帮助你提前发现并修复语法错误以及不规范的写法。
16. Explainshell
Explainshell 是一个帮助你解释命令行的网站,它会分析命令的帮助文档,然后根据你想查询的命令参数来抽取对应的解释,然后简洁易懂地显示出来。
17. Asciinema
Asciinema 是一个终端下非常棒的录屏和回放软件。Asciinema 对终端输入输出进行捕捉,然后以文本的形式来记录和回放。
基于 Asciinema 用文本来记录的特性,使其拥有了非常炫酷的特性。你可以在播放过程中随时暂停,然后对播放器中的文本进行复制或者其它操作。
更多详细介绍可参考:「手把手教你使用终端录屏神器 Asciinema」 一文。
18. Svg-term
一个可以根据 Asciinema 录制文件生成 SVG 动画的小工具。
来看一个实例:将通过 Asciinema 在终端录制的视频转换为 SVG 文件。
# 安装 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 写脚本支持更复杂的测试场景。
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 等)使用上更加直观方便。
更多详细介绍可参考:「Linux 命令行下交互式 HTTP 客户端--HTTP Prompt」 一文。
22. TLDR
TLDR 全称Too long, Don’t read,翻译成中文就是太长不读。它可以帮助你快速查看命令行工具的使用实例。简而言之,就是 Man 页面的精简版本。
更多详细介绍可参考:「Linux命令行学习神器tldr」 一文。
23. Ranger
Ranger 是一个命令行下的文件管理器。Ranger 使用 Python 编写,默认为使用 Vim 风格的按键绑定。
24. Axel
Axel 是 Linux 下一个不错的高速下载工具。支持多线程下载、断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件。非常适合网速不给力时多线程下载,以提高下载速度。
25. Cloc
Cloc 是一款使用 Perl 语言开发的开源代码统计工具,支持多平台使用、多语言识别,能够计算指定目标文件或文件夹中的文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code)。
更多详细介绍可参考:「代码统计利器 CLOC」 一文。