高频CLI工具推荐(二):如何提高生产力?
2021-06-30
点击上方的“ ”,选择设置为“Set as Star”
优质文章,即时送达!
作者根据多年的终端经验,详细介绍了一些实用的CLI工具,希望能帮助读者提高工作效率。
我大部分时间都在使用终端。我觉得有必要给大家推荐一个更好的终端工具。首先,为每个人列出一个推荐清单,如下所示。
高频CLI工具推荐
1 条鱼
-毫无疑问,在终端中,它是最常用、最重要的工具。过去我用的是 Bash 和 Z,但现在我用的是 Fish。这是一款出色的终端工具,具有许多开箱即用的功能,例如自动语法推荐和完成、语法突出显示或使用快捷键在最近访问的文件夹之间来回切换。
一方面,它非常适合初学者,因为用户不需要进行任何设置。另一方面,由于其使用的脚本语法与其他脚本不同,通常用户无法直接粘贴从网上复制的脚本。您必须将不兼容的命令更改为合法的 Fish 脚本,或者启动 Bash 会话以运行 Bash 脚本。
#-
我可以理解这种变化背后的原因(毕竟 Bash 脚本不是一种用户友好的语言),但是这种不兼容并没有给我带来任何好处。我很少写 Bash/Fish 脚本,所以我经常忘记这些语法,所以每次我想使用这些脚本时,我总是要从头开始重新学习。与 Bash 脚本相比,Fish 脚本的资源相对较少。我一般不会看文档重新发明轮子,而是复制粘贴现成的脚本并使用。
虽然前面提到了Fish的几个缺点,但还是推荐大家使用。因为切换工具非常简单,值得你一试。尤其是当你懒得自己配置,又希望用最少的配置获得好的使用效果时,那就不要错过了。
鱼插件
您可以自己添加相关插件来扩展Fish的功能。安装插件最简单的方法是使用插件管理工具,例如 Oh My Fish 或。现在,我使用的插件管理工具是,我用它来安装和管理三个插件:
/done-在长时间运行的脚本完成时发送通知。
/fish---一个自动补全(线工具)命令的插件。
fzf-一个将 fzf 工具与 Fish 集成的插件。
以前用过很多插件(比如,,,, fzf, z),但是为了避免影响我的运行速度,我改用其他工具了(这是我在z中使用的一个教训过去)。
下载链接:
2
如果您必须从本文中选择我最喜欢的终端工具之一 - 它必须是。可以应用于任何。你只需要安装它,然后在对应的配置文件././.fish中添加一行配置,剩下的交给它来完成。
它可以:
还有无数其他信息要显示。但是,它可以以更友好的形式智能地呈现给您!例如,如果您不在 git 存储库中,它将隐藏 git 信息。如果你不在项目中,就不会有版本信息,因为显示没有意义。绝不会显示冗余信息,始终保持终端的美观、优雅、简洁。
运行速度怎么样?它是用 Rust 编写的,尽管有这么多功能,但它仍然比我以前使用过的所有工具提示都要快!我对提示信息很干净,所以我经常破解自己的版本。我会根据已有的提示找到对应的功能代码,然后将它们粘在一起,确保只有我需要的功能才能让它快速运行。 “外部工具永远不会比我精心制作的工具提示更快!”这就是我怀疑的原因。
下载链接:
3 z
"z" 允许您在文件目录之间快速跳转。它会记住您访问过的历史文件夹。经过短暂的学习,您可以使用 z ame 命令在目录之间跳转。
比如,如果我经常访问~/work/src/,我只需要运行z pro,我就可以立即跳转到那里。 z的原理是指算法——一种基于统计和分析的算法。如果它存储了您不想使用的路径文件夹,您可以随时手动删除它。它提高了我经常使用的不同文件路径之间频繁切换的效率,并为我节省了键盘击键次数和大量路径内存。
下载链接:
4 fzf
fzf—,模糊查找器。它是一个通用工具,允许您使用模糊搜索来查找文件、历史命令、进程、git 提交等。您键入一些字母,它会尝试匹配结果列表中的任何字母。输入的字母越多,结果就越准确。你在其他代码编辑器中可能有这种搜索体验——当你想打开一个文件时,只需输入部分文件名即可搜索,无需输入完整路径——这就是模糊搜索。
我通过fish fzf插件使用它,所以我可以搜索命令历史或快速打开文件。这是一个很棒的工具,可以每天为我节省大量时间。
下载链接:
5 fd
上面的动画是find命令(左)和fd命令(右)的使用对比。
类似于系统自带的find命令,但使用更简单,查找速度更快,默认设置好。
无论您想查找名为“”的文件,但不确定文件扩展名,您都应该找到一个存储所有这些文件的目录,而不仅仅是一个文件。您可以卷起袖子开始为 find 命令编写复杂的正则表达式,也可以直接从命令行运行 fd。反正对我来说,我只选择最简单的。
默认情况下,fd 会忽略列出的隐藏文件和目录。大多数时候,这是我们想要的,但在少数特殊情况下,如果您需要禁用此功能,我会为命令设置别名: fda='fd -IH'。
你会发现fd命令输出的颜色配置非常漂亮,而且根据基准测试(上面的GIF),它的执行速度甚至比find命令还要快。
下载链接:
6
上图是grep(左)和rg(右)命令执行时的对比。
与上面的fd命令类似,是grep命令的替代,但是执行速度更快,并且有完善的默认配置和丰富的色彩输出。
它也会跳过忽略和隐藏的文件软件编程工具,所以如果有特殊需要,我们可以设置命令别名:rga ='rg -uuu'。它将禁用所有智能过滤并使性能与标准 grep 命令保持一致。
下载链接:
7 htop 和
Mac上最常用的显示进程运行状态信息的工具就是大家熟悉的top了,是每个系统管理员的好帮手。而且,即使你像我一样主要从事网络开发,查看电脑的运行状态也是很有用的。您知道,只需查看当前进程或占用您所有 RAM 的进程。你应该怎么做?
htop 工具是 top 工具的绝佳替代品。
top工具是一个很基础的监控工具,功能有限,所以很多人转用htop。与top相比,htop优势明显——除了功能更全,配色也非常丰富,整体来说更加人性化。
借助该工具,您还可以一目了然地快速了解系统的当前状态。
是htop的补充工具。除了列出所有进程及其 CPU 和内存使用情况外,它还可以显示有关系统的其他信息,例如:
我选择使用htop来过滤和终止进程,因为对我来说效率提升了很多,而且我也可以用它来快速浏览电脑的运行状态。提供API接口、Web UI,支持多种导出格式,让系统监控更上一层楼。因此我强烈推荐这里的波浪!
htop 下载链接:
下载链接:
8 和
是用于在(我更喜欢内置的 venv 模块)中创建虚拟环境的工具。
是 Fish 的虚拟环境管理器(如果您不使用 Fish,请查看 )。它提供了许多命令来执行快速创建、列出或删除虚拟环境等操作。
下载链接:
下载链接:
9 和
您可以轻松地在版本之间切换。
,是用于管理计算机上不同版本的 Node 和 Ruby 的工具。
假设您要在计算机上安装两个版本。例如,您正在处理两个不同的项目,或者由于特殊情况仍然需要使用。计算机上不同版本的管理很复杂。需要保证不同的项目有正确版本的软件依赖包。一不小心,很容易把这个脆弱的配置搞乱,被其他软件包使用的二进制文件覆盖。
这个工具为版本管理提供了很多帮助,让这个噩梦更容易管理。可以全局或“按文件夹”切换版本,每个版本相互隔离。
最近发现了一个叫做asdf的工具,可以统一管理,和其他envs。它为几乎所有的编程语言提供版本管理。下次我需要为编程语言设置版本管理器时,我一定会尝试。
下载链接:
下载链接:
下载链接:
10 点像素
解决了很多包管理的问题,但还是有办法解决的。如果我想在全局环境中安装包(例如,它是一个独立的工具,如上所述),那么我会遇到全局安装导致的问题。在虚拟环境之外安装软件包不是一个好主意,将来可能会导致意外问题。另一方面,如果我决定使用虚拟环境,则每次要运行程序时都需要激活虚拟环境。这也不是最方便的解决方案。
事实证明,pipx工具可以解决上述问题。它将软件依赖包安装到单独的环境中(因此不会出现依赖冲突的问题)。同时,这些工具提供的 CLI 命令也可以在全局环境中使用。因此,我不需要激活任何环境-pipx 会为我做这件事!
如果你想进一步了解这些工具并想了解如何使用它们,我为 2020 年会议制作了一个名为“现代开发者工具包”的视频。
这是一个两小时的视频教程,内容涉及如何设置开发环境、要使用的工具以及如何从头开始制作 TODO 应用程序(包括测试和文档)。你可以看。
pipx 下载链接:
11 ctop 和
Ctop的实时监控示例
这两个工具在您使用和监控时会非常有用。 ctop 是容器的顶层接口。它可以为您做到:
这比试图从 ps 命令中查找所有这些信息要方便得多。
是我最喜欢的工具
如果你觉得ctop很酷,请先尝试再做决定!它是一个非常成熟的工具,带有终端UI界面,并提供了非常丰富的管理功能。这是我最喜欢的管理工具!
ctop 下载链接:
下载链接:
推荐的低频 CLI 工具
除了我几乎每天都在使用的工具之外,这些年来我还收集了一些很棒的工具,它们对于某些特定需求非常有用。例如软件编程工具,一些终端工具可以用来将终端操作记录到GIF中(并允许你在GIF中暂停和复制文本!),而其他终端工具可以用来列出目录结构、连接数据库等。一介绍。
12
如果你用的是Mac,那我就不用再介绍了。它是业界普遍认可的包管理器。顺便说一句,它还有一个GUI版软件叫,有兴趣的可以试试。
下载链接:
13
是一种可用于记录终端会话的工具。但是,与录制 GIF 不同的是,它允许用户选择和复制这些录制内容中的代码!
这对于录制编码教程非常有用。你应该会遇到那种尴尬的情况——当你准备按照视频教程在终端输入一个巨大的命令时,但是讲师没有给你提供这段代码片段,你要花很长时间整理这些长命令。录制的内容支持直接复制,功能非常强大。
下载链接:
14 和 diff-so-
我很少在终端使用diff操作(比较两个文件的区别),但是如果需要进行这个操作,可以放弃使用diff命令而使用。输出可以高亮显示,这样查看文件差异内容更方便,而不是在diff命令输出内容下查看所有""符号比较文件差异。
如果你觉得还不够,那我向你推荐diff-so-。是比较友好的差异比较工具。
它通过以下方式进一步改善了文件内容差异显示的外观:
下载链接:
diff-so- 下载链接:
15 棵树
您可以通过 brew 树安装该工具。如果要查看给定目录的内容,那么树是执行此操作的必备工具。它可以以漂亮的树状结构显示所有子目录和文件:
$ tree .
.
├── recovery.md
├── README.md
├── archive
├── automator
│ ├── Open\ Iterm2.workflow
│ │ └── Contents
│ │ ├── Info.plist
│ │ ├── QuickLook
│ │ │ └── Thumbnail.png
│ │ └── document.wflow
│ └── Start\ Screen\ Saver.workflow
├── brew-cask.sh
16 蝙蝠
类似于终端常用的cat命令,用于显示文件内容,但bat效果更好。
增加了语法高亮、git标签(如果有)、自动分页(如果文件大)等,让输出内容更易读。
bat下载链接: