乐趣区

关于终端:22款终端生产力工具效率飞起值得收藏

程序员在搞开发时,终端 CLI 工具 的应用必不可少,往往都是 生产力工具 ,所以明天在此给大家举荐一下比拟好用的终端工具。先给大家列个 举荐清单,如下图。

高频 CLI 工具举荐

1、fish shell

毋庸置疑,在终端工具中,Shell 是应用最频繁也最重要的工具。过来,我已经应用过 Bash 和 Z Shell,而现在,这个 Fish Shell,也是一个十分优良的终端 Shell 工具,领有许多开箱即用的性能,例如语法主动举荐补全、语法高亮显示或应用快捷键在最近拜访的文件夹之间来回切换。

下载地址:https://fishshell.com/

2、Starship

如果必须要从本篇文章中抉择一个我最喜爱的终端工具——那非 Starship 莫属。Starship 能够实用于任何 Shell。你只须要装置它,而后在相应的配置文件.bashrc/.zshrc/config.fish 增加一行配置,剩下的工作交给它来实现就好了。

它能够做到:

  • 依据你是否在代码仓库中增加了新文件、是否批改了文件、是否暂存了文件等状况,用相应的符号示意 git 仓库的状态。
  • 依据你所在的 Python 我的项目目录,展现 Python 的版本号,这也实用于 Go/Node/Rust/Elm 等其余编程语言环境。
  • 展现上一个命令执行所用的工夫,指令运行工夫必须在毫秒级别。
  • 如果上一个命令执行失败,会展现相应的谬误提示符。

还有成千上万的其余信息能够展现。然而,它能以更加敌对的模式智能地给你出现!比方,如果你不在 git 存储库中,它将暗藏 git 信息。如果您不在 Python 我的项目中,则不会有 Python 版本信息,因为显示它没有什么意义。它永远不会给你展现多余信息,始终保持终端的好看,优雅和简洁。

下载地址:https://starship.rs/

3、z

“z”能够让你疾速地在文件目录之间跳转。它会记住你拜访的历史文件夹,通过短暂的学习后,你就能够应用 z path_of_the_folder_name 命令在目录之间跳转了。

比方,如果我常常拜访 ~/work/src/projects,我只须要运行 z pro,就能够立马跳转到那里。z 的原理参考了 frecency 算法——一个基于统计 frequency 和 recency 进行剖析的算法。如果它存储了你不想应用的门路文件夹,你随时能够手动将其删除。它进步了我在罕用的不同文件门路之间频繁切换的效率,帮我节俭了键盘击键次数以及大量的门路记忆。

下载地址:https://github.com/rupa/z

4、fzf

fzf — fuzzy finder,即含糊查找器。它是一种通用工具,可让你应用含糊搜寻来查找文件、历史命令、过程、git 提交等。你键入一些字母,它会尝试匹配后果列表中任何地位的字母。输出的字母越多,后果也就越精确。

下载地址:https://github.com/junegunn/fzf

5、fd

下面动图是 find 命令(左)和 fd 命令(右)的应用比照。

相似于零碎自带的 find 命令,但应用起来更简略,查找速度更快,并且具备良好的默认设置。

比方你想找一个名为“invoice”的文件,然而不确定文件的扩展名,还是查找一个寄存所有 invoice 的目录,而不单是一个文件。你能够撸起袖子,开始为 find 命令编写那些简单的正则表达式,也能够间接命令行运行 fd invoice。

默认状况下,fd 会疏忽暗藏的以及在.gitignore 列出的文件和目录。大多数时候,这也是咱们想要的,然而在极少数非凡状况下,如果须要禁用此性能时,我会给该命令设置一个别名:fda=’fd -IH’。

你会发现,fd 命令输入的色彩配置很漂亮,而且依据基准测试(上述 GIF),它的执行速度甚至比 find 命令的还要快。

下载地址:https://github.com/sharkdp/fd

6、ripgrep

上图为 grep(左)与 rg(右)命令执行时的比照。

与上述 fd 指令相似,ripgrep 是 grep 命令的代替办法,不过 ripgrep 的执行速度更快,而且具备健全的默认配置以及丰盛的黑白输入。

下载地址:https://github.com/BurntSushi…

7、htop 和 glances

在 Linux 或 Mac 上显示过程运行状态信息最常用工具是咱们相熟的 top,它是每位系统管理员的好帮手。

htop 工具是 top 工具的绝佳替代品。

top 工具是十分根底的监控工具,提供的性能无限,因而很多人转去应用 htop。htop 比起 top,劣势很显著——除了性能更加欠缺以外,它的色调搭配也很丰盛,整体上应用起来更加敌对。

借助 glances,还能够让你高深莫测地疾速理解零碎以后状态。

glances 是 htop 的补充工具。除了列出所有过程及其 CPU 和内存应用状况之外,它还能够显示无关零碎的其余信息,比方:

  • 网络及磁盘应用状况
  • 文件系统已应用的空间和总空间
  • 来自不同传感器(例如电池)的数据
  • 以及最近耗费过多资源的过程列表

htop 下载地址:https://hisham.hm/htop/
glances 下载地址:https://nicolargo.github.io/g…

8、virtualenv 和 virtualfish

Virtualenv 是用于在 Python 中创立虚拟环境的工具。

VirtualFish 则是 Fish Shell 的虚拟环境管理器。它提供了许多命令来执行疾速创立、列出或删除虚拟环境等操作。

virtualenv 下载地址:https://pypi.org/project/virt…
virtualfish 下载地址:https://github.com/justinmaye…

9、pyenv、nodenv 和 rbenv

pyenv 能够轻松实现 Python 版本的切换。

Pyenv、nodenv 和 rubyenv 是用于治理计算机上不同版本的 Python、Node 和 Ruby 的工具。

假如你要在计算机上安装两个版本的 Python。比方,你正在从事两个不同的 Python 我的项目,或者因为非凡状况依然须要应用 Python2。不同 Python 版本在电脑上治理很简单。你须要确保不同的我的项目具备正确版本的软件依赖包。如果不小心,很容易弄乱这种软弱的配置。

该工具为版本治理提供了很多帮忙,并将这一噩梦变得易于治理。它能够全局或“按文件夹”切换 Python 版本,而且每个版本都是互相隔离的。

pyenv 下载地址:https://github.com/pyenv/pyenv
nodenv 下载地址:https://github.com/nodenv/nodenv
rbenv 下载地址:https://github.com/rbenv/rbenv

10、pipx

Virtualenv 解决了 Python 程序包治理中的许多问题,然而还有一个计划能够解决。如果我想在全局环境下装置 Python 软件包(比方它是一个独立的工具,正如后面提到的 glances 工具),那么我会遇到全局装置带来的问题。在虚拟环境之外装置软件包不是一个好主见,未来可能会导致意想不到的问题。另一方面,如果我决定应用虚拟环境,那么每次我要运行程序时都须要激活该虚拟环境。这也不是最不便的解决方案。

事实证明,pipx 工具能够解决下面提到的问题。它将 Python 软件依赖包装置到独自的环境中(因而不会存在依赖项抵触的问题)。与此同时,这些工具提供的 CLI 命令在全局环境内也可用。因而,我无需激活任何环境——pipx 会帮我实现这个操作!

pipx 下载地址:https://github.com/pipxprojec…

11、ctop 和 lazydocker

ctop 的实时监控示例

当你应用 Docker 并对其监控时,这两个工具会很有帮忙。ctop 是 Docker 容器的顶级接口。它能够为你:

  • 展现正在运行和已进行的容器列表。
  • 展现统计信息,例如内存、CPU 使用率以及针对每个容器的其余详细信息窗口(例如绑定的端口等其余信息)。
  • 提供快捷菜单,不便疾速进行、杀掉指定容器过程或显示给定容器的日志。

这比你尝试从 docker ps 命令中找出所有这些信息要不便多了。

lazydocker 也是一个十分好用的 Docker 工具

lazydocker 它是一个十分成熟的领有终端 UI 界面的工具,提供了十分丰盛的性能用于治理 Docker。

ctop 下载地址:https://github.com/bcicen/ctop
lazydocker 下载地址:https://github.com/jesseduffi…

12、Homebrew

如果应用的是 Mac,那就无需再多介绍 Homebrew 了。它是 macOS 上被业界广泛认可的软件包管理器。

下载地址:https://brew.sh/

13、asciinema

asciinema 是可用于记录终端会话的工具。然而,与录制 GIF 不同,它能够让用户抉择并复制这些录制中的代码!这对于录制编码教程来说非常好用。asciinema 录制的内容,反对间接复制,非常给力。

下载地址:https://asciinema.org/

14、colordiff 和 diff-so-fancy

如果想在终端中应用 diff 操作(比拟两个文件之间的差别),能够放弃应用 diff 命令,而是应用 colordiff。colordiff 输入能够高亮显示,因而在查看文件差别内容时要不便得多,而不是在 diff 命令输入内容下,费劲地查看所有的“<”和“>”符号来比照文件差别。

如果你感觉还不够,那么举荐 diff-so-fancy。它是比 colordiff 更敌对的一个差别比照工具。

它通过以下形式进一步改善了文件内容差别展现的外观:

  • 突出显示每一行中差别的单词,而不是整行
  • 简化变更文件的题目
  • 去除 + 和 – 符号(色彩差别展现就够了)
  • 分明地指出新行和删除的空行

colordiff 下载地址:https://www.colordiff.org/
diff-so-fancy 下载地址:https://github.com/so-fancy/d…

15、tree

能够通过 brew install tree 装置该工具。如果要查看给定目录的内容,那么 tree 是执行此操作的必备工具。它能以丑陋的树状构造显示所有子目录及文件:

<pre data-tool=”mdnice 编辑器 ” style=”margin: 10px 0px; padding: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; border-radius: 5px; box-shadow: rgba(0, 0, 0, 0.55) 0px 2px 10px;”>`$ 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` </pre>

16、bat

相似于在终端中罕用的用于显示文件内容的 cat 命令,然而 bat 成果更佳。

它减少了语法高亮显示,git gutter 标记(如果实用),主动分页(如果文件很大)等性能,并且使得输入的内容浏览起来更加敌对。

bat 下载地址:https://github.com/sharkdp/bat

17、httpie

如果你须要发送一些 HTTP 申请,但发现应用 curl 不够直观,那么能够尝试一下 httpie。这是一款十分好用的 curl 代替工具。正当的默认配置以及简洁的语法使它更易于应用,命令返回也是黑白输入。

httpie 下载地址:https://httpie.org/

18、tldr

简化版的命令帮忙手册。

“man pages”展现的信息太全面了,然而很多时候应用 tldr 能够更快地帮你找到特定信息,这才是用户真正想要的。

tldr 下载地址:https://tldr.sh/

19、exa

exa 是 ls 命令的一个可代替计划。

它色彩艳丽,还能够显示 git 状态等其余信息,主动将文件大小转换为不便人们浏览的单位,并且所有这些都放弃与 ls 简直雷同的执行速度。

exa 下载地址:https://the.exa.website/

20、litecli 和 pgcli

这是 SQLite 和 PostgreSQL CLI 的解决方案。借助主动提醒和语法突出显示,它们比默认的 sqlite3 和 psql 工具要好用很多。

litecli 下载地址:https://litecli.com/
pgcli 下载地址:https://www.pgcli.com/

21、mas

mas 是一个用于从 App Store 装置软件的 CLI 工具。

mas 下载地址:https://github.com/mas-cli/mas

22、ncdu

这是在终端进行磁盘剖析时应用的工具,它应用起来简略快捷。当须要开释一些硬盘空间时,能够应用这款工具。

ncdu 下载地址:https://dev.yorhel.nl/ncdu

总结

以上举荐工具清单很长,小伙伴们有什么好用的也能够安利进去,一起交换提高。

往期举荐  

面试官:你能说说 SOA 架构和微服务架构的区别吗?

知乎高赞:Spring MVC 过期了吗?网友:你连 V 和 C 都还没搞明确~

List 去除反复数据的 5 种正确姿态!你晓得几种?

找不到 SQL 数据库面试题?这里有 50 题,附答案

发愁没我的项目?用 Java 开发一个停车场零碎【附源码】

图解计算机网络(1):带你搞懂 5 个基础知识

别乱提交代码了,你必须晓得的 Git 分支开发标准!

5 千字帮你搞定 JAVA 汇合类 / 枚举

Java 罕用类库,用好大大提高生产力

退出移动版