程序员在搞开发时,终端 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 罕用类库,用好大大提高生产力