热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

建议收藏!22款终端生产力工具,效率飞起!

点击上方“菜鸟学Python”,选“星标”公众号重磅干货,第一时间到达程序员在搞开发时,终端CLI工具的使用必不可少,往往都

点击上方“菜鸟学Python”,选“星标”公众号

重磅干货,第一时间到达

程序员在搞开发时,终端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/ripgrep

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/glances/

8、virtualenv 和 virtualfish

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

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

virtualenv 下载地址:https://pypi.org/project/virtualenv/
virtualfish 下载地址:https://github.com/justinmayer/virtualfish

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/pipxproject/pipx

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/jesseduffield/lazydocker

12、Homebrew

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

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

13、asciinema

asciinema是可用于记录终端会话的工具。但是,与录制 GIF 不同,它可以让用户选择并复制这些录制中的代码!这对于录制编码教程来说十分好用。asciinema录制的内容,支持直接复制,十分给力。

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

14、colordiff 和 diff-so-fancy

如果想在终端中使用diff操作&#xff08;比较两个文件之间的差异&#xff09;&#xff0c;可以放弃使用diff命令&#xff0c;而是使用 colordiff。colordiff输出可以高亮显示&#xff0c;因此在查看文件差异内容时要方便得多&#xff0c;而不是在diff命令输出内容下&#xff0c;费力地查看所有的“ <”和“>”符号来对比文件差异。

如果你觉得还不够&#xff0c;那么推荐 diff-so-fancy。它是比colordiff更友好的一个差异对比工具。

它通过以下方式进一步改善了文件内容差异展示的外观&#xff1a;

  • 突出显示每一行中差异的单词&#xff0c;而不是整行

  • 简化变更文件的标题

  • 去除 &#43; 和 - 符号&#xff08;颜色差异展示就够了&#xff09;

  • 清楚地指出新行和删除的空行

colordiff 下载地址&#xff1a;https://www.colordiff.org/
diff-so-fancy 下载地址&#xff1a;https://github.com/so-fancy/diff-so-fancy

15、tree

可以通过brew install tree安装该工具。如果要查看给定目录的内容&#xff0c;那么 tree 是执行此操作的必备工具。它能以漂亮的树状结构显示所有子目录及文件&#xff1a;

$ 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、bat

类似于在终端中常用的用于显示文件内容的cat命令&#xff0c;但是bat效果更佳。

它增加了语法高亮显示&#xff0c;git gutter 标记&#xff08;如果适用&#xff09;&#xff0c;自动分页&#xff08;如果文件很大&#xff09;等功能&#xff0c;并且使得输出的内容阅读起来更加友好。

bat 下载地址&#xff1a;https://github.com/sharkdp/bat

17、httpie

如果你需要发送一些 HTTP 请求&#xff0c;但发现使用curl不够直观&#xff0c;那么可以尝试一下httpie。这是一款非常好用的curl替代工具。合理的默认配置以及简洁的语法使它更易于使用&#xff0c;命令返回也是彩色输出。

httpie 下载地址&#xff1a;https://httpie.org/

18、tldr

简化版的命令帮助手册。

“man pages”展示的信息太全面了&#xff0c;但是很多时候使用tldr可以更快地帮你找到特定信息&#xff0c;这才是用户真正想要的。

tldr 下载地址&#xff1a;https://tldr.sh/

19、exa

exa是ls命令的一个可替代方案。

它色彩艳丽&#xff0c;还可以显示 git 状态等其他信息&#xff0c;自动将文件大小转换为方便人们阅读的单位&#xff0c;并且所有这些都保持与ls几乎相同的执行速度。

exa 下载地址&#xff1a;https://the.exa.website/

20、litecli 和 pgcli

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

litecli 下载地址&#xff1a;https://litecli.com/
pgcli 下载地址&#xff1a;https://www.pgcli.com/

21、mas

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

mas 下载地址&#xff1a;https://github.com/mas-cli/mas

22、ncdu

这是在终端进行磁盘分析时使用的工具&#xff0c;它使用起来简单快捷。当需要释放一些硬盘空间时&#xff0c;可以使用这款工具。

ncdu 下载地址&#xff1a;https://dev.yorhel.nl/ncdu

总结

以上推荐工具清单很长&#xff0c;小伙伴们有什么好用的也可以安利出来&#xff0c;一起交流进步。

译文&#xff1a;switowski.com/blog/favorite-cli-tools

22款你最喜欢哪一款&#xff1f;欢迎在留言区点评&#xff0c;来个三连哦&#xff01;

推荐阅读2021编程语言「后浪」趋势预测&#xff1a;Javascript、Python热度不减&#xff0c;但崛起最快的却是它
955 不加班公司名单&#xff1a;955.WLB
抖音创始人张一鸣&#xff1a;10 年面试 2000 人&#xff0c;我发现混的好的人&#xff0c;全都有同一个特质
卧槽&#xff01;没想到&#xff0c;用Python竟能做五仁月饼
Python 初学者进阶的九大技能
终于&#xff0c;Flask 迎来了真正的对手&#xff01;
7个最佳的学习Python编程的开源库
每个程序员都是从菜鸟开始成长起来的&#xff0c;没有人生下来就是程序员高手。菜鸟编程大本营&#xff0c;专注于分享趣味的编程技巧&#xff0c;不限于Java, Python ,Go, Javascript等语言&#xff0c;让菜鸟爱上编程&#xff0c;进阶成为高手。菜鸟编程本营&#xff0c;从菜鸟进阶高手
点这里&#xff0c;获取新手福利


推荐阅读
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • MySQL多表数据库操作方法及子查询详解
    本文详细介绍了MySQL数据库的多表操作方法,包括增删改和单表查询,同时还解释了子查询的概念和用法。文章通过示例和步骤说明了如何进行数据的插入、删除和更新操作,以及如何执行单表查询和使用聚合函数进行统计。对于需要对MySQL数据库进行操作的读者来说,本文是一个非常实用的参考资料。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有