InfoQ 22款好用的CLI工具


InfoQ 22款好用的CLI工具
文章图片
作者|switowski
策划|万佳
作者根据多年的终端使用经验 , 详细介绍了一些实用的CLI工具 , 希望它们能帮读者提高生产力 。
前段时间 , 我写过一篇我最喜欢的Mac应用的文章 。 其实 , 我大部分的时间都花费在终端的使用上 , 我觉得有必要给大家推荐一下比较好用的终端工具 。 先给大家列个推荐清单 , 如下图 。
InfoQ 22款好用的CLI工具
文章图片
高频CLI工具推荐
1fishshell
Shell-毋庸置疑 , 在终端中 , Shell是使用最频繁也最重要的工具 。 过去 , 我曾经使用过Bash和ZShell , 而如今 , 我正在使用的是FishShell 。 这是一个非常优秀的终端Shell工具 , 拥有许多开箱即用的功能 , 例如语法自动推荐补全、语法高亮显示或使用快捷键在最近访问的文件夹之间来回切换 。
InfoQ 22款好用的CLI工具
文章图片
一方面 , 它非常适合初学者使用 , 因为使用者无需进行任何设置 。 另一方面 , 由于它使用的脚本语法与其他Shell有所差异 , 因此通常用户不能把拷贝自网上的脚本直接粘贴使用 。 你必须将不兼容的命令更改为合法的Fish脚本 , 或者启动一个Bash会话以运行Bash脚本 。
https://fishshell.com/docs/current/index.html#syntax-overview
我能理解这种更改背后的原因(毕竟Bash脚本不是易于用户使用的语言) , 但这种不兼容丝毫没有给我带来任何好处 。 我平时很少编写Bash/Fish脚本 , 所以经常遗忘这些语法 , 因此每次要使用这些脚本时我总是必须从头开始重新学习它 。 与Bash脚本相比 , Fish脚本的资源相对更少 。 我通常不会去阅读文档 , 重复造轮子 , 而是从StackOverflow复制粘贴现成的脚本拿来即用 。
虽然前面我提到了FishShell的几个缺点 , 但是我还是会推荐你去用一下 , 因为切换Shell工具十分简单 , 所以很值得你去尝试一下 。 特别是当你懒得自己去配置Shell , 并希望通过最少的配置就能获得很好的使用效果的时候 , 那就更不要错过它了 。
Fish插件
你可以自己添加相关插件来扩展FishShell的功能 。 最简单的安装插件的方法就是使用插件管理工具 , 比如Fisher、OhMyFish或者fundle 。 现在 , 我使用的插件管理工具是Fisher , 我用它安装管理了三个插件:
franciscolourenco/done——在长时间运行的脚本完成后发送通知 。
evanlucas/fish-kubectl-completions——1个自动补全kubectl(Kubernetescommandlinetool)命令的插件 。
fzf——将fzf工具与Fish集成在一起的插件 。
过去 , 我有使用很多的插件(比如rbenv、pyenv、nodenv、fzf、z) , 但是我改用其他工具以避免影响我的Shell的运行速度(这是我过去使用Zshell所得到的一个教训) 。
下载地址:https://fishshell.com/
2Starship
如果必须要从本篇文章中选择一个我最喜欢的终端工具——那非Starship莫属 。 Starship可以适用于任何Shell 。 你只需要安装它 , 然后在相应的配置文件.bashrc/.zshrc/config.fish添加一行配置 , 剩下的工作交给它来完成就好了 。
InfoQ 22款好用的CLI工具
文章图片
它可以做到:
根据你是否在代码仓库中添加了新文件、是否修改了文件、是否暂存了文件等情况 , 用相应的符号表示git仓库的状态 。
根据你所在的Python项目目录 , 展示Python的版本号 , 这也适用于Go/Node/Rust/Elm等其他编程语言环境 。
展示上一个命令执行所用的时间 , 指令运行时间必须在毫秒级别 。
如果上一个命令执行失败 , 会展示相应的错误提示符 。