50个你离不开的 CLI 工具

news2024/11/15 19:34:47

作为开发人员,我们在终端上花费了大量时间。有很多有用的 CLI 工具,它们可以让您在命令行中的生活更轻松、更快速,而且通常更有趣。

这篇文章概述了我最依赖的 50 个必备 CLI 工具。如果我遗漏了什么 - 请在评论中告诉我 :)

在本文的结尾,我包含了一些脚本来帮助您在各种系统/发行版上自动安装和更新这些工具。

工具

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

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

动图

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

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

动图

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

tldr 是社区维护的手册页的巨大集合。与传统的手册页不同,它们进行了总结,包含有用的用法示例,并且颜色很好,便于阅读

动图

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

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

exa- 列出文件(更好ls)

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


duf- 磁盘使用(更好df)

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


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

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


bat- 阅读文件(更好cat)

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

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

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


entr- 注意变化

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

exiftool- 读取+写入元数据

ExifTool 是一个方便的实用程序,用于读取、写入、剥离和创建各种文件类型的元信息。再次分享照片时不要不小心泄露您的位置!

fdupes- 重复文件查找器

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

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

fzf 是一个功能极其强大且易于使用的模糊文件查找器和过滤工具。它允许您跨文件搜索字符串或模式。fzf 也有适用于大多数 shell 和 IDE 的 插件 ,用于在搜索时显示即时结果。Alexey Samoshkin 的这篇 文章重点介绍了它的一些用例。

动图

hyperfine- 命令基准测试

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


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

just 类似于make 但有一些不错的补充。它让您可以将项目命令分组到副本中,这些副本可以轻松列出和运行。支持别名、位置参数、不同的 shell、dot env 集成、字符串插入以及几乎所有您可能需要的东西


jq- JSON处理器

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

most- 多窗口滚动寻呼机(最好少)

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

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

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

动图


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

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

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

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

rsync- 快速、增量文件传输

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

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

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

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

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

xsel- 访问剪贴板

xsel 让我们通过命令行读取和写入 X Selection 剪贴板。它对于将命令输出通过管道传输到剪贴板或将复制的数据传输到命令中很有用

CLI 监控和性能应用程序

bandwhich- 带宽利用率监视器

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

ctop- 容器指标和监控

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

动图


bpytop- 资源监控(更好htop)

bpytop 是一个快速、交互式、可视化的资源监视器。它显示了最热门的运行进程、最近的 CPU、内存、磁盘和网络历史记录。您可以从界面中导航、排序和搜索——还支持自定义颜色主题

动图


glances- 资源监控器+网络和API

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

动图


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

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

动图


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

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

动图


speedtest-cli- 命令行速度测试工具

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

动图


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

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


CLI 生产力应用程序

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

browsh- CLI 网络浏览器

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

动图


buku- 书签管理器

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

cmus- 音乐浏览器/播放器

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

cointop- 跟踪加密货币价格

cointop 显示当前的加密货币价格,并跟踪您的投资组合的价格历史记录。支持价格提醒、历史图表、货币换算、模糊搜索等。您可以通过网络在 cointop.sh 上尝试演示,或者通过运行ssh cointop.sh

ddgr- 从终端搜索网络

ddgr 就像 googler ,但对于 DuckDuckGo。它快速、干净、简单,支持即时回答、搜索完成、搜索 bangs 和高级搜索。它默认尊重您的隐私,也有 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 的终端用户界面

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- 共享本地主机的反向代理

ngrok 安全* 将您的本地主机暴露在唯一 URL 后面的互联网上。这使您可以与远程同事实时共享您的工作。使用 非常简单 ,但它也有很多高级功能,例如身份验证、webhooks、防火墙、流量检查、自定义/通配符域等等

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

tmate 让您立即与世界其他地方的人分享实时终端会话。跨系统工作,支持访问控制/授权,可自托管,具备Tmux的所有特性

asciinema- 录制+分享终端会话

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

https://asciinema.org/a/335480/iframe?


navi- 交互式备忘单

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

https://asciinema.org/a/406461/iframe?


transfer.sh- 快速文件共享

transfer 直接从命令行上传和共享文件真的很容易。它是免费的,支持加密,为您提供唯一的 URL,也可以自行托管。
我写了一个 Bash 辅助函数来使使用更容易一些,你可以 在这里找到它 或者通过运行来尝试bash <(curl -L -s https://alicia.url.lol/transfer)

surge- 在几秒钟内部署站点

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

wttr.in- 检查天气

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


CLI 乐趣

cowsay- 让 ASCII 母牛说出您的信息

cowsay 是一个可配置的会说话的牛。它基于Tony Monroe的 原作

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

figlet 将文本输出为 ASCII 艺术

lolcat- 使控制台输出彩虹色

lolcat 使任何传递给它的文本变成彩虹色

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

neofetch 打印发行版和系统信息(这样你就可以灵活地在 r/unixporn 上使用 Arch btw)

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



安装和管理

我们大多数人都有一套核心的 CLI 应用程序和我们所依赖的实用程序。设置一台新机器并单独安装每个程序很快就会让人厌烦。因此,安装和更新终端应用程序的任务非常适合自动化。以下是我编写的一些示例脚本,可以轻松将其放入您的点文件中或独立运行以确保您永远不会错过任何应用程序。

对于 MacOS 用户,最简单的方法是使用Homebrew。只需创建一个 Brewfile(使用touch ~/.Brewfile),然后列出您的每个应用程序,然后运行brew bundle. 您可以通过将其放入 Git 存储库来备份您的包列表。这是一个示例,让您入门:https ://github.com/Lissy93/Brewfile

在 Linux 上,您通常希望使用本机包管理器(例如pacmanapt)。例如,这是在 Arch Linux 系统上安装上述应用程序的脚本

Linux 上的桌面应用程序可以通过 Flatpak 以类似的方式进行管理。同样,这是一个示例脚本:)


结论

...就是这样 - 一个方便的 CLI 应用程序列表,以及一种在您的系统中安装和保持它们最新的方法。

希望其中一些对你们中的一些人有用:)

我很想知道您最喜欢的 CLI 应用程序是什么,请在下面的评论中告诉我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/175593.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二叉树专题汇总

二叉树的前中后序遍历day11|144.二叉树的前序遍历、145.二叉树的后序遍历、94.二叉树的中序遍历_奈川直子的博客-CSDN博客二叉树的层序遍历、翻转二叉树、对称二叉树day12|层序遍历合集、226.翻转二叉树、101.对称二叉树_奈川直子的博客-CSDN博客N叉树最大深度、完全二叉树节点…

LCHub:2023年无代码、低代码8大技术趋势

在数字化转型、新冠疫情、全球经济环境动荡等多因素驱动下,使得组织改变了对低代码、无代码的看法,市场规模和场景化落地实现快速增长。根据Gartner预测,到2025年,70%的应用程序将由低代码和无代码开发平台构建,其中 80%的应用程序由非IT工作者开发而成。 没有编程背景的…

青山不语,碧海无痕,数字山河间的中国脊梁

刚刚过去的2022&#xff0c;对于新农人来说&#xff0c;是不寻常的一年。福建宁德的渔民祖祖辈辈都以外出打鱼为生&#xff0c;渔排生活条件艰苦&#xff0c;娱乐匮乏&#xff0c;销路也不稳定&#xff0c;这种苦闷正随着AI、直播等数字新技术的到来而被消解。青海列卜加村的孙…

Arduino的nodemcu 8266开发板使用MicroPython开发的整体流程

程序安装准备 安装开发板驱动&#xff0c;官网&#xff1a;&#xff08;https://cn.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tabdownloads&#xff09;这里不是CH340驱动&#xff0c;而是CP210x USB to USART 驱动&#xff0c;最终也是在“设备管理器查看COM口…

【LeetCode:33. 搜索旋转排序数组~~~二分】

题目描述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…

操作系统真相还原_第5章第1节:利用BIOS中断0x15 获取内存信息

文章目录功能号返回信息功能号详解子功能号&#xff1a;0xE820子功能号&#xff1a;0xE801子功能号&#xff1a;0x88内存检测示例当前内存分布说明程序boot.incmbr.sloader.s编译并写入硬盘启动bochs运行功能号 EAX0xE820&#xff1a;遍历主机上全部内存 AX0xE801&#xff1a;…

分享121个ASP源码,总有一款适合您

ASP源码 分享121个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 121个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/1wwsIoZidHihm5WHPKjlvMg?pwdew3b 提取码&#x…

如何在linux服务器部署sonar服务?

文章目录前言一、上传sonar插件二、设置sonar插件的权限三、启动插件四、配置环境变量前言 sonar服务是代码质量扫描的工具,我们如何利用sonar进行代码质量扫描还有在linux服务器上部署呢?下面这篇文章详细的记录了我在sonar的使用过程中所遇到的各种坑。 一、上传sonar插件…

十大经典排序算法【算法思想+图解+代码】【数据结构与算法笔记】

前言&#xff1a;文中大部分为本人收集整理&#xff0c;综合学习资料&#xff0c;个人理解……。希望能帮助你少掉写头发&#xff0c;早日走出理解的深渊。因为写作较为仓促文中内容难免会有纰漏&#xff0c;发现可评论区回复&#xff08;无奖&#xff09;。排序(Sort)分析排序…

StudioOne6旗舰版DAW2023跨版本升级新功能介绍

PreSonus2023发布了Studio One 6旗舰级DAW的跨版本升级。他们获奖的DAW软件的这一最新版本引入了大量的新功能和增强功能&#xff0c;包括用户界面的定制选项&#xff0c;PreSonus说这使第6版成为他们迄今为止最个性化的升级。PreSonus发布了旗舰级DAW的跨版本升级&#xff0c;…

Leetcode:131. 分割回文串(C++)

目录 问题描述&#xff1a; 实现代码与解析&#xff1a; 回溯&#xff1a; 原理思路&#xff1a; 问题描述&#xff1a; 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个子串都是 回文串 。返回 s 所有可能的分割方案。 回文串 是正着读和反着读都…

客快物流大数据项目(一百零六):实时ETL处理

文章目录 实时ETL处理 一、业务流程 二、​​

Kettle简介

一、Kettle基本介绍 Kettle(现更名为Pentaho Data Integration-Pentaho)是一款国外开源的ETL工具&#xff0c;纯java编写&#xff0c;可以在Window、Linux、Unix上运行&#xff0c;绿色无需安装。它允许你管理来自不同数据库的数据&#xff0c;通过提供一个图形化的用户环境来…

盒模型应用 改变宽高范围 改变背景覆盖范围 溢出处理 断词规则 空白处理

目录盒模型应用改变宽高范围改变背景覆盖范围溢出处理断词规则 word-break空白处理 溢出的空白处理盒模型应用 改变宽高范围 默认情况下&#xff0c;width 和 height 设置的是内容盒宽高。 页面重构师&#xff1a;将psd文件&#xff08;设计稿&#xff09;制作为静态页面 衡量…

【竞赛题】6297. 根据第 K 场考试的分数排序

题目 班里有 m 位学生&#xff0c;共计划组织 n 场考试。给你一个下标从 0 开始、大小为 m x n 的整数矩阵 score &#xff0c;其中每一行对应一位学生&#xff0c;而 score[i][j] 表示第 i 位学生在第 j 场考试取得的分数。矩阵 score 包含的整数 互不相同 。 另给你一个整数…

【机器学习】多标签分类

目录&#xff1a;多标签分类一、算法1.1 One-vs-Rest1.2 AdaBoost-MH1.3 ML-KNN一、算法 多标签分类的适用场景较为常见&#xff0c;比如&#xff0c;一份歌单可能既属于标签旅行也属于标签驾车。有别于多分类分类&#xff0c;多标签分类中每个标签不是互斥的。多标签分类算法…

Python使用K-means聚类分析

Python使用K-means聚类分析 文章目录Python使用K-means聚类分析介绍1.集群标签作为特征一、k-均值聚类二、示例 - 加州住房2.KMeans总结介绍 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; 本文将使用所谓的无监督学习算法。 无监督算法不使用目标&#xff…

软件测试复习11:自动化测试

专栏&#xff1a;《软件测试》 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录自动化测试的前提自动化测试的过程自动化测试的5个级别自动化测试的局限自动化测试的前提 自动化测试可以很好地代替人&#xf…

Facebook运营策略中的SEO优化:10个提示

在过去的一年中&#xff0c; Facebook上的品牌营销预算激增&#xff0c;这就是为什么许多人正在使用 Facebook来推广其业务。然而&#xff0c;并非所有新品牌都可以通过在社交媒体上进行成功的 SEO优化而获得成功。如果你想在 Facebook上销售你的产品或服务&#xff0c;你需要从…

2022年终总结——从打工到创业的转折

目录一、机会的创造和紧抓二、时间线的诉说1.1-4月份&#xff0c;在外面工作的过程中也在考虑这个事情&#xff1b;是在一个自己刚熟悉的金融行业学习提升&#xff1f;还是回归到自己铺垫了很久的教育行业深耕&#xff1f;2.5月份&#xff0c;孤身一人奔赴创业之路&#xff1b;…