22款终端生产力工具,效率飞起!
点击上方 好好学java ,选择 星标 公众号重磅资讯,干货,第一时间送达
今日推荐:推荐19个github超牛逼项目!个人原创100W +访问量博客:点击前往,查看更多
译文:switowski.com/blog/favorite-cli-tools
程序员在搞开发时,终端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操作(比较两个文件之间的差异),可以放弃使用diff命令,而是使用 colordiff。colordiff输出可以高亮显示,因此在查看文件差异内容时要方便得多,而不是在diff命令输出内容下,费力地查看所有的“ <”和“>”符号来对比文件差异。
如果你觉得还不够,那么推荐 diff-so-fancy。它是比colordiff更友好的一个差异对比工具。
它通过以下方式进一步改善了文件内容差异展示的外观:
突出显示每一行中差异的单词,而不是整行
简化变更文件的标题
去除 + 和 - 符号(颜色差异展示就够了)
清楚地指出新行和删除的空行
colordiff 下载地址:https://www.colordiff.org/
diff-so-fancy 下载地址:https://github.com/so-fancy/diff-so-fancy
15、tree
可以通过brew install tree安装该工具。如果要查看给定目录的内容,那么 tree 是执行此操作的必备工具。它能以漂亮的树状结构显示所有子目录及文件:
$ 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命令,但是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
总结
以上推荐工具清单很长,小伙伴们有什么好用的也可以安利出来,一起交流进步。
推荐文章
面试官问:前后端分离项目,有什么优缺点?我说:没
2020 年腾讯新增 20 亿行代码,鹅厂第一编程语言还是它
通俗讲解分布式锁,看完不懂算我输
写博客能月入10K?
一款基于 Spring Boot 的现代化社区(论坛/问答/社交网络/博客)
更多项目源码
这或许是最美的Vue+Element开源后台管理UI
推荐一款高颜值的 Spring Boot 快速开发框架
一款基于 Spring Boot 的现代化社区(论坛/问答/社交网络/博客)
13K点赞都基于 Vue+Spring 前后端分离管理系统ELAdmin,大爱
想接私活时薪再翻一倍,建议根据这几个开源的SpringBoot项目
22款终端生产力工具,效率飞起!相关推荐
- 22 款终端生产力工具,效率飞起!
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | switowski.com/blog/favo ...
- 程序员最喜欢的22款软件开发工具
市面上有海量的软件开发工具,因此,选择最佳软件开发工具可能是一项挑战.本文是 22 款顶级软件开发工具的精选列表. 我们将软件开发工具分为以下几类: 推荐工具 IDE (集成开发环境) 框架 云工具 ...
- 工具推荐:22款最流行的计算机取证工具【2017年更新版】
本文讲的是工具推荐:22款最流行的计算机取证工具[2017年更新版], 什么是计算机取证? 计算机取证(Computer Forensics,又名计算机取证技术.计算机鉴识.计算机法医学)是指运用计算 ...
- Hyper 终端美化工具 让你的终端更美观功能更丰富
前言 Hyper 是一款终端美化工具 基于Web技术,JS/HTML/CSS ,支持扩展增强,很不错! 且支持win,mac 下载 官网 : 立即前往 Hyper : 立即获取 双击运行安装 选择安装 ...
- 肝!22款超好用的CLI工具
作者 | switowski 策划 | 万佳 作者根据多年的终端使用经验,详细介绍了一些实用的 CLI 工具,希望它们能帮读者提高生产力. 前段时间,我写过一篇我最喜欢的 Mac 应用的文章.其实,我 ...
- linux 下qt 终端隐藏在后台_20 个 Linux 终端下的生产力工具 | Linux 中国
来试下这些开源工具.你的效率一定会提升. 来源:https://linux.cn/article-12274-1.html 作者:Alan Smithee 译者:Xiaobin.Liu 诚然,很多人使 ...
- 盘点 12 款让开发效率“飞起”的 VS Code 插件
作者 | 浪里行舟 来源 | 前端工匠(ID:frontendJS) VS Code,是一个免费的.开源的跨平台编辑器,也是我最满意的编辑器之一. 本文向大家推荐一些我喜欢的VS Code插件,不出意 ...
- 提高工作效率必备的生产力工具
前言 总结了一些自己平时经常用到生产力工具,都挺轻量级用起来超级顺手的工具,分享给大家,一个好的程序员必定是对自己的软件环境是有严格要求的,或者说是洁癖型的要求,不容许存在垃圾软件污染生产环境的.(还 ...
- 【赶紧收藏】22款设计师必备色彩工具,轻松打造别样的“视觉诱惑”
色彩,作为网页或App设计的重要视觉元素之一,不仅能够帮助UI/UX设计师有效地展示和突出界面或产品相关信息和功能, 而且还能够轻松自然的流露和传达设计师相应情感,迅速吸引用户眼球的同时,引起用户情感 ...
最新文章
- 学嵌入式Linux软件开发需要的知识
- PCA和白化练习之处理图像
- SCART接口保护 ESD二极管选型
- jQuery实战之 attr() 和 prop() 的区别
- 使用API获得SAP CRM Sales Area数据
- 开车走吗?朋友......
- python中opencv是什么_python-opencv的用法
- bigdecimal js 判断等于0_为啥阿里禁用BigDecimal的equals方法做等值比较
- 单体内置对象_单体内置对象
- validform 一行代码完成所有验证
- Spring Cloud服务网关 Zuul
- SQLALchemy (ORM工具)[PostgreSQL为例]
- linux 基础命令汇总
- 三十二个vbs整蛊代码,好玩到没朋友
- 【蚂蚁链学习1】初识蚂蚁链的智能合约(solidity)
- 测试两台服务器之间的网络带宽
- lenet5实现手写数字识别---python
- Archlinux更新提示invalid or corrupted package (PGP signature)
- 计算机指数函数算法框图,计算指数函数的算法
- Jackson膜封闭:选择合适的封闭试剂孵化时间和洗涤
热门文章
- 瑞友天翼4.0在XP下安装注意事项
- STM32初识——中断初始化过程(by woody)
- kthread_run创建内核线程的原理
- linux copy_from/to_user原理
- 使用PySpark搭建机器学习模型
- 4.1 Qt绘图原理
- BUUCTF-[网鼎杯 2020 青龙组]singal——angr学习记录
- HTTP的四种请求方法
- [How TO]-windows安装wget工具
- linux kernel中的wait_for_completion和complete总结