推荐50个可以让你装X的CLI工具!

作为开发人员,我们花了很多时间在终端上。有很多有用的 CLI 工具,它们可以让你在工作中更轻松、更快捷、更有趣。

这篇文章推荐50 CLI 工具,没有一一尝试,不过试了几个,均觉得不错,即提效又可以装X。当然如果还有好用的CLI - 可以在评论区补充:)

↕️ 内容(点击展开)

实用性

thefuck - 自动更正错误键入的命令

thefuck是那些一旦你尝试过就无法没有的实用程序之一。每当你输入错误命令并出现错误时,只需运行它,它就会自动更正它。使用向上/向下选择更正,或者只是运行以立即执行最有可能的更正。fuck``fuck --yeah

GIF动图

安装

bash 复制代码
# MacOS (via Homebrew)
brew install thefuck

# Arch Linux
sudo pacman -S thefuck

# FreeBSD
pkg install thefuck

zoxide - 轻松导航 (更好的 cd)

z允许你跳转到任何目录,而无需记住或指定其完整路径。它会记住你访问过的目录,因此你可以快速跳转 - 你甚至不需要输入完整的文件夹名称。它还具有交互式选择选项,因此你可以实时过滤目录结果fzf

GIF动图

安装

bash 复制代码
# MacOS (via Homebrew)
brew install zoxide

# Arch Linux
sudo pacman -S zoxide

# Debian / Ubuntu
sudo apt install zoxide

# FreeBSD
pkg install zoxide

# Other (via Rust Creates)
cargo install zoxide --locked

tldr - 社区维护的文档 (更好的man

tldr是社区维护的大量手册页。与传统的手册页不同,它们经过总结,包含有用的使用示例,并且颜色精美,便于阅读

GIF动图

安装

bash 复制代码
# MacOS (via Homebrew)
brew install tldr

# Other (via NPM)
npm install -g tldr

scc - 计算代码行数 (更好的 cloc

scc为你提供以每种语言为特定目录编写的代码行数的明细。它还显示了一些有趣的统计数据,例如估计的开发成本和复杂性信息。它的速度非常快,非常准确,并且支持多种语言

安装

bash 复制代码
# MacOS (via Homebrew)
brew install scc

# Other (via go)
go install github.com/boyter/scc/v3@latest

exa - 列出文件 (更好的 ls

exa是基于 Rust 的命令的现代替代品,用于列出文件。它可以显示文件类型图标、颜色、文件/文件夹信息,并具有多种输出格式 - 树、网格或列表ls

安装

bash 复制代码
# MacOS (via Homebrew)
brew install exa

# Arch Linux
sudo pacman -S exa

# Debian / Ubuntu
sudo apt install exa

duf - 磁盘使用情况 (更好的 df

duf非常适合显示有关已装载磁盘的信息和检查可用空间。它产生清晰多彩的输出,并包括用于排序和自定义结果的选项。

安装

bash 复制代码
# MacOS (via Homebrew)
brew install duf

# Arch Linux
sudo pacman -S duf

# Debian / Ubuntu
sudo apt install duf

# FreeBSD
pkg install duf

aria2 - 下载实用程序 (更好的 wget

aria2是一个轻量级、多协议、恢复下载实用程序,适用于 HTTP/HTTPS、FTP、SFTP、BitTorrent 和 Metalink,支持通过 RPC 接口进行控制。它的功能非常丰富,并且有很多选择。还有 ziahamza/webui-aria2 - 一个不错的 Web 界面伴侣。

安装

bash 复制代码
# MacOS (via Homebrew)
brew install aria2

# Arch Linux
sudo pacman -S aria2

# Debian / Ubuntu
sudo apt install aria2

bat - 读取文件 (更好的cat

bat是具有语法高亮和 git 集成的克隆。它是用 Rust 编写的,性能非常高,并且有几个用于自定义输出和主题的选项。支持自动管道和文件串联cat

安装

bash 复制代码
# MacOS (via Homebrew)
brew install bat

# Arch Linux
sudo pacman -S bat

# Debian / Ubuntu
sudo apt install bat

diff-so-fancy - 文件比较 (更好的diff

diff-so-fancy为你提供更美观的差异,用于比较字符串、文件、目录和 git 更改。更改突出显示使发现更改变得更加容易,并且你可以自定义输出布局和颜色

安装

bash 复制代码
# MacOS (via Homebrew)
brew install diff-so-fancy

# Arch Linux
sudo pacman -S diff-so-fancy

# Debian / Ubuntu
sudo apt install diff-so-fancy

entr - 监控变化

entr允许你在文件更改时运行任意命令。你可以传递文件、目录、符号链接或正则表达式来指定它应该监视哪些文件。它对于自动重建项目、对日志做出反应、自动化测试等非常有用。与类似的项目不同,它使用 kqueue(2) 或 inotify(7) 来避免轮询,并提高性能

安装

bash 复制代码
# MacOS (via Homebrew)
brew install entr

# Arch Linux
sudo pacman -S entr

# Debian / Ubuntu
sudo apt install entr

exiftool - 读取 + 写入元数据

ExifTool 是用于读取、写入、剥离和创建各种文件类型的元信息的便捷实用程序。再也不会在分享照片时意外泄露你的位置!


fdupes - 重复文件查找器

jdupes用于识别和/或删除指定目录中的重复文件。当你有两个或多个相同的文件时,它对于释放磁盘空间很有用


fzf - 模糊文件查找器 (更好地find

fzf是一个非常强大且易于使用的模糊文件查找器和过滤工具。它允许你跨文件搜索字符串或模式。fzf 还为大多数 shell 和 IDE 提供了插件,用于在搜索时显示即时结果。阿列克谢·萨莫什金(Alexey Samoshkin)的这篇文章重点介绍了它的一些用例。

GIF动图

安装

bash 复制代码
# MacOS (via Homebrew)
brew install fzf

# Arch Linux
sudo pacman -S fzf

# Debian / Ubuntu
sudo apt install fzf

hyperfine - 命令基准测试

hyperfine可以轻松准确地对任意命令或脚本进行基准测试和比较。它负责预热运行,清除缓存以获得准确的结果,并防止来自其他程序的干扰。它还可以将结果导出为原始数据并生成图表。

安装

bash 复制代码
# MacOS (via Homebrew)
brew install hyperfine

# Arch Linux
sudo pacman -S hyperfine

# Debian / Ubuntu
sudo apt install hyperfine

just - 现代命令运行器 (更好的make

just与类似,但有一些不错的补充。它允许你将项目命令组合到副本中,这些副本可以轻松列出和运行。支持别名、位置参数、不同的 shell、点环境集成、字符串插入以及你可能需要的几乎所有其他内容make

安装

bash 复制代码
# MacOS (via Homebrew)
brew install just

# Arch Linux
sudo pacman -S just

# Debian / Ubuntu
sudo apt install just

jq - JSON 处理器

jq就像 ,但对于 JSON - 你可以使用它轻松对结构化数据进行切片、过滤、映射和转换。它可用于编写复杂的查询来提取或操作 JSON 数据。还有一个 jq playground,你可以使用它来试用它,或者根据实时反馈制定查询sed


most - 多窗口滚动分页器 (最好的less

most是一个寻呼机,用于读取长文件或命令输出。 支持多窗口,并可选择不换行文本most


procs - 进程查看器 (更好的 ps)

procs是一个易于导航的流程查看器,它具有彩色突出显示功能,使流程的排序和搜索变得容易,具有树视图和实时更新

GIF动图


rip - 删除工具 (更好的 rm)

rip是一种安全、符合人体工程学且高性能的删除工具。它可以让你直观地删除文件和目录,并轻松恢复已删除的文件

GIF动图


ripgrep - 在文件中搜索 (更好的 grep

ripgrep是一个面向行的搜索工具,它以递归方式在当前目录中搜索正则表达式模式。它可以忽略二进制文件的内容并跳过二进制文件。它能够在压缩档案中搜索,或仅搜索特定的扩展名,并使用各种编码方法理解文件.gitignore


rsync - 快速、增量的文件传输

rsync允许你在本地复制大文件,或者从远程主机或外部驱动器复制大文件。它可用于保持多个位置的文件同步,非常适合创建、更新和恢复备份


sd - 查找和替换 (更好的 sed

sd是一个简单、快速和直观的查找和替换工具,基于字符串文字。它可以在文件、整个目录或任何管道文本上执行


tre - 目录层次结构 (更好的tree

tre输出当前目录或指定目录的文件的树状列表,并带有颜色。使用该选项运行时,它会对每个项目进行编号,并创建一个临时别名,你可以使用该别名快速跳转到该位置-e


xsel - 访问剪贴板

xsel让你通过命令行读取和写入 X 选择剪贴板。它可用于将命令输出通过管道传递到剪贴板,或将复制的数据传递到命令中



CLI 监控和性能应用程序

bandwhich - 带宽利用率监视器

实时显示带宽使用情况、连接信息、传出主机和 DNS 查询


ctop - 容器指标和监控

类似于 ,但用于监控正在运行(Docker 和 runC)容器的资源使用情况。它显示实时 CPU、内存和网络带宽,以及每个容器的名称、状态和 ID。还有一个内置的日志查看器,以及用于管理(停止、启动、执行等)容器的选项top

GIF动图


bpytop - 资源监控 (更好的 htop

bpytop是一个快速、交互式、可视化的资源监视器。它显示排名靠前的进程、最近的 CPU、内存、磁盘和网络历史记录。在界面中,你可以导航、排序和搜索 - 还支持自定义颜色主题

GIF动图


glances - 资源监视器 + Web 和 API

glances是另一个资源监视器,但具有不同的功能集。它包括一个完全响应的 Web 视图、一个 REST API 和历史监控。它易于扩展,并且可以与其他服务集成

GIF动图


gping - 交互式 ping 工具 (更好的 ping

gping可以在多个主机上运行 ping 测试,同时在实时图表中显示结果。当与标志一起使用时,它还可用于监视执行时间--cmd

GIF动图


dua-cli - 磁盘使用率分析器和监控器(更好du

dua-cli通过交互方式,你可以查看每个已装载驱动器的已用磁盘空间和可用磁盘空间,并轻松释放存储空间

GIF动图


speedtest-cli - 命令行速度测试实用程序

speedtest-cli只需通过 speedtest.net 运行互联网速度测试 - 但直接从终端:)

GIF动图


dog - DNS查找客户端 (更好的dig

dog是一个易于使用的DNS查找客户端,支持DoT和DoH,颜色精美的输出和发出JSON的选项


CLI 生产力应用程序

上网冲浪、播放音乐、查看电子邮件、管理日历、阅读新闻等等,所有这些都无需离开终端!

browsh - CLI Web 浏览器

browsh是一个完全交互式、实时和现代的基于文本的浏览器,呈现给 TTY 和浏览器。它支持鼠标和键盘导航,对于纯粹基于终端的应用程序来说,功能非常丰富。它还可以缓解困扰现代浏览器的电池消耗问题,并且通过对 MoSH 的支持,由于带宽减少,你可以体验到更快的加载时间

GIF动图


buku - 书签管理器

buku是一个基于终端的书签管理器,具有大量的配置、存储和使用选项。还有一个可选的 Web UI浏览器插件,用于在终端外访问你的书签


cmus - 音乐浏览器/播放器

cmus是终端音乐播放器,通过键盘快捷键控制。它支持多种音频格式和编解码器,并允许将曲目组织到播放列表中并应用播放设置


cointop - 跟踪加密货币价格

cointop显示当前的加密货币价格,并跟踪你投资组合的价格历史。支持价格警报、历史图表、货币转换、模糊搜索等等。你可以通过 Web 上的 cointop.sh 或运行ssh cointop.sh


ddgr - 从终端搜索网络

ddgr就像谷歌员工一样,但对于 DuckDuckGo。它快速、干净、简单,支持即时答案、搜索完成、搜索刘海和高级搜索。默认情况下,它尊重你的隐私,并且还具有 HTTPS 代理支持,并与 Tor 配合使用


micro - 代码编辑器 (更好的 nano

micro是一个易于使用、快速且可扩展的代码编辑器,支持鼠标。由于它被打包到一个二进制文件中,因此安装非常简单curl https://getmic.ro | bash


khal - 日历客户端

khal是一个终端日历应用程序,可显示即将发生的事件、月份和议程视图。你可以将其与任何 CalDAV 日历同步,并直接添加、编辑和删除事件


mutt - 电子邮件客户端

mut是一个经典的,基于终端的邮件客户端,用于发送、阅读和管理电子邮件。它支持所有主流电子邮件协议和邮箱格式,允许附件、密件抄送/抄送、线程、邮件列表和传递状态通知


newsboat - RSS / ATOM新闻阅读器

newsboat是一个RSS提要阅读器和聚合器,用于直接从终端阅读新闻,博客和关注更新


rclone - 管理云存储

rclone是一个方便的实用程序,用于将文件和文件夹同步到各种云存储提供商。它可以直接从命令行调用,也可以轻松集成到脚本中,以替代繁重的桌面同步应用程序


taskwarrior - 待办事项 + 任务管理

task是一个 CLI 任务管理/待办事项应用程序。它既简单又不显眼,而且功能强大且可扩展,内置了高级组织和查询功能。还有很多(700+!)额外的插件,用于扩展其功能并与第三方服务集成


tuir - Reddit 的终端 UI

tuir如果你想在实际浏览 Reddit 时看起来像在工作,那么这是一个很好的选择!它具有直观的键绑定、自定义主题,也可以渲染图像和多媒体内容。还有黑客新闻的haxor



CLI 开发套装

httpie - HTTP/API 测试测试客户端

httpie是一个 HTTP 客户端,用于测试、调试和使用 API。它支持你所期望的一切 - HTTPS、代理、身份验证、自定义标头、持久会话、JSON 解析。用法简单,具有富有表现力的语法和彩色输出。与其他 HTTP 客户端(Postman、Hopscotch、Insomnia 等)一样,HTTPie 也包括一个 Web UI


lazydocker - 完整的 Docker 管理应用程序

lazydocker是一个 Docker 管理应用程序,可让你查看所有容器和映像、管理其状态、读取日志、检查资源使用情况、重新启动/重建、分析层、修剪未使用的容器、映像和卷等等。它使你无需记住、键入和链接多个 Docker 命令。


lazygit - 完整的 Git 管理应用程序

lazygit是一个可视的 Git 客户端,在命令行上。轻松添加、提交和提取文件、解决冲突、比较差异、管理日志以及执行压缩和倒带等复杂操作。所有内容、颜色都有键绑定,并且易于配置和扩展


kdash - Kubernetes 仪表板应用程序

kdash是一款多合一的 Kubernetes 管理工具。查看节点指标、监视资源、流式传输容器日志、分析上下文以及管理节点、Pod 和命名空间


gdp-dashboard - 可视化 GDP 调试器

gdp-dashboard向 GNU 调试器添加一个可视元素,用于调试 C 和 C++ 程序。轻松分析内存、单步执行断点和查看寄存器



CLI 外部服务

ngrok - 用于共享本地主机的反向代理

ngroksafely* 将你的本地主机暴露在唯一 URL 后面的 Internet 中。这样一来,你就可以与远程同事实时共享你正在处理的工作。使用非常简单,但它也具有许多高级功能,例如身份验证、Webhook、防火墙、流量检查、自定义/通配符域等等


tmate - 通过互联网共享终端会话

tmate让你立即与世界其他地方的人共享实时终端会话。它可以跨不同的系统工作,支持访问控制/身份验证,可以自托管,并具有 Tmux 的所有功能


asciinema - 录制 + 共享终端会话

asciinema对于轻松录制、共享和嵌入终端会话非常有用。非常适合展示你构建的内容,或展示教程的命令行步骤。与截屏视频不同,用户可以复制粘贴内容、即时更改主题并控制播放


navi允许你浏览备忘单并执行命令。参数的建议值动态显示在列表中。减少打字,减少错误,使自己不必记住数千条命令。它与 tldrcheat.sh 集成以获取内容,但你也可以导入其他备忘单,甚至编写自己的备忘单


transfer.sh - 快速文件共享

transfer使直接从命令行上传和共享文件变得非常容易。它是免费的,支持加密,为你提供唯一的 URL,也可以自托管。

我编写了一个 Bash 辅助函数来简化使用,你可以在此处找到它或通过运行bash <(curl -L -s https://alicia.url.lol/transfer)


surge - 秒级部署站点

surge是一个免费的静态托管提供商,你可以通过一个命令直接从终端部署到它,只需从你的目录中运行即可!它支持自定义域、自动 SSL 证书、pushState 支持、跨域资源支持 - 而且是免费的!surge``dist


wttr.in - 查看天气

wttr.in是一种以命令行中易于理解的格式显示天气的服务。只需运行或尝试一下。有 URL 参数可以自定义返回的数据以及格式curl wttr.in``curl wttr.in/London



CLI 乐趣

cowsay - 让 ASCII 奶牛说出你的信息

cowsay是一头可配置的会说话的牛。它改编自托尼·梦露的原作


figlet - 将文本输出为大 ASCII 艺术文本

figlet将文本输出为 ASCII 图稿


lolcat - 使控制台输出 raibow 着色

lolcat使传递给它的任何文本都呈现彩虹色


neofetch - 显示系统数据和 ditstro 信息

neofetch打印发行版和系统信息(因此你可以在 r/unixporn 上灵活使用 Arch)

例如,我使用 、 和 创建一个自定义的基于时间的 MODD,在用户首次登录时显示给用户。它通过他们的名字问候他们,显示服务器信息和时间、日期、天气和 IP。这是源代码cowsay``figlet``lolcat``neofetch


相关推荐
Mintopia29 分钟前
像素的进化史诗:计算机图形学与屏幕的千年之恋
前端·javascript·计算机图形学
Mintopia32 分钟前
Three.js 中三角形到四边形的顶点变换:一场几何的华丽变身
前端·javascript·three.js
归于尽1 小时前
async/await 从入门到精通,解锁异步编程的优雅密码
前端·javascript
陈随易1 小时前
Kimi k2不行?一个小技巧,大幅提高一次成型的概率
前端·后端·程序员
猩猩程序员1 小时前
Rust 动态类型与类型反射详解
前端
杨进军1 小时前
React 实现节点删除
前端·react.js·前端框架
yanlele1 小时前
【实践篇】【01】我用做了一个插件, 点击复制, 获取当前文章为 Markdown 文档
前端·javascript·浏览器
爱编程的喵1 小时前
React useContext 深度解析:告别组件间通信的噩梦
前端·react.js
望获linux2 小时前
【实时Linux实战系列】多核同步与锁相(Clock Sync)技术
linux·前端·javascript·chrome·操作系统·嵌入式软件·软件