GitHub日收12000星,六个命令行工具引爆程序员圈
程序员少不了和命令行打交道
而一个好的工具可以让工作变得更容易、更效率
也可以帮助开发者解锁新的能力:将不可能化为可能,或者简单化一件事情。
我在浏览国外的技术网站时就发现了一篇分享命令行工具的文章
在这里分享给大家
以下是译文:
1、Broot
我不知道我是怎么认识 Broot 的,但它很实用。当你打开一个小目录,并想要查看land的位置,那么 tree 功能可以优秀地完成这点。 ✗ tree . ├── dartboard.png ├── header.jpg ├── opensign.png ├── quote1.png └── trophy.png 0 directories, 5 files
但是,如果目录有很多文件或子目录, tree 就没有那么有用了:当文件滚动到你面前时,你只能看到最后一个屏幕上全是信息。 $ tree < scrolling text for a long time > ├── banner.js └── index.html 328 directories, 2028 files
Broot 通过分析终端窗口的大小并调整其输出以适应它,来解决这个问题。
你可以在 Broot 中使用方向键进行导航,它也有助于通过传入 -w 标志( broot -w )来跟踪磁盘空间的使用情况:
它可以做很多其他的事情,可以看看GitHub guide的指南,但对我来说,它只是提供了一个更好的 tree 。 ℹ️ 安装 Broot
使用 brew 以在MacOS上安装,或者按照其他环境的安装说明安装。
brew install broot
2、Funky
如果你希望将终端用作IDE,那么根据当前目录更改终端是很有帮助的。有很多方法可以做到这一点,比如 DirEnv 。
当进入目录时, DirEnv 会加载和卸载 .env 文件;这点和 smartcd 类似。它允许在更改到特定路径时运行shell脚本——这让用户可以启动和停止服务,更改提示符,或任何用户想要的内容。
然而,我最喜欢用的是 Funky ,它有个很怪的名字。它通过"使shell函数更容易定义、更灵活、更具有交互性而将其提升到下一个层次。"
Funky 的工作方式很简单:在进入一个目录时, Funky 会查找一个包含bash函数列表的 .funky 文件。它会把这些文件加载,并在用户退出时卸载。
这意味着,当我进入这个Jekyll博客(一个ruby开发的博客系统)的目录时,我已经加载了新的别名,用于创建新文章、检查标记、拉入图像等等。
我可以通过键入 Funky 列出这些: $ funky lint() { markdownlint --fix "./_posts/*.md"; } set-header() { cp "$(latest-image)" "$(image-folder)/header.jpg"; } set-image() { cp "$(latest-image)" "$(image-folder)/$(date +%s).png"; }
不过 Funky 可以做的不止这些。它具有交互式添加和编辑函数以及注册全局函数和别名的功能。但我喜欢的是它能够在特定的上下文中快速给出一个命令,一个简短的别名。
ℹ️ 安装 Funky
安装Funky需要用到pip:
pip3 install pyfunky
并在你的 .zshrc, bashrc 或者类似的东西上加上hooks:
## find where funky.sh was installed by pip and source it
source /usr/local/lib/python3.9/site-packages/scripts/shell/funky.sh
3、 Fuzzy Finder (FZF)
为这篇文章使用fzf定位生成的图像
如果说 Funky 和 Broot 提高了生产力,那么更多的工具将如虎添翼。所以我去Lobste.rs询问人们还在使用什么其他工具。 FZF 被提到了很多次,而现在我也开始使用它了。
FZF是一个命令行模糊查找器。它的运行速度很快,而且在需要在命令行输入值的许多地方,它可以交互式地让你基于模糊关键字匹配筛选选项。
如果用户安装了快捷方式( /usr/local/opt/fzf/install ),就可以通过在任何地方键入 ** ,获得一个交互式模糊查找器来缩小到所需的路径。 FZF 还可以更快地搜索历史记录。
它是一个UNIX过滤器,它读取输入,显示一个可向下过滤的交互式列表,然后将选中的项发送到另一端,但这种描述低估了它的用处。
我推荐看这个视频,Alexey Samoshkin在舒缓的钢琴演奏的背景下介绍了 FZF 的许多可能的用途:https://www.youtube.com/embed/qgG5Jhi_Els
ℹ️ 安装 FZF
使用 软件包管理器作为一个选择 安装FZF:
brew install fzf
并在你的 .zshrc, bashrc 或者类似的东西上加上hooks:
#ZSH
source ~/.fzf.zsh
#BASH
source ~/.fzf.bash
4、 McFly
使用McFly在此路径中常见的普通命令
当你想要打开一个文件( vim ** )时, FZF 非常适合在命令行中过滤文件路径,但是对于完成命令行,有比原始历史文件更多的可用信息。 McFly 试图使用这些额外的信息来提供更多相关的结果。
额外的信息是什么?
首先,McFly在其启发式排名中考虑了以下选项: 在命令之前输入的命令。 你运行该命令的频率。 你最近运行该命令的时间。
它在SQLite数据库中追踪所有这些信息,它还通过以下方式追踪和权衡建议: 命令的退出状态。 运行中命令的目录。 如果你以前在McFly中选择了它。
被建议失败的命令是令人讨厌的,但是我从来没有考虑过基于当前目录或从未被选择的降级项来缩小选择范围。
McFly 使用神经网络来进行排名,一个可能的缺点是,如果你的SQLite数据库太大,那么在提出建议时就会滞后。但是,可以使用 MCFLY_HISTORY_LIMIT 来限制这种增长。
我只使用了几天,所以我不能给它一个公平的评价,但这种概念——使用额外的信息来定制工具,以适应实际使用——令人充满希望。 ℹ️ 安装 McFly
有许多方法可以安装McFly。比如说brew:
brew tap cantino/mcfly
brew install mcfly
并在你的 .zshrc, bashrc 或者类似的东西上加上hooks:
eval "$(mcfly init zsh)"
二进制文件发出初始化脚本,而不是将初始化脚本转储到主目录,这是一种很好的做
法。而Zoxide——下面要介绍的工具——也能做到这一点。此外,FZF会干扰McFly的
CTRL-R,必须注释掉FZF初始化脚本中的这一行以使McFly正常工作。
5、Better CD
使用zoxide作为cd的替代品
对于一些完成路径, FZF 工作得很好,但在使用 cd 更改目录时,它没有帮助:从主目录输入 cd **TAB 后, FZF 需要一段时间来构建完整的列表选项。
它比使用现有的ZSH完成的 " cd TAB TAB " 导航到文件夹更快。
然而,有许多工具试图改进 cd 、 autojump 、 z 和 Fasd 的所有跟踪目录使用情况,并为你提供一个简单的快捷键来更改到常用访问的目录。
R /commandline 详细讨论了这些不同的 cd 替换,但其中最有动力的是 Zoxide 。 Zoxide 是用Rust语言重写的 z ,并且承诺可以提高速度。
安装之后,用户可以像 cd (z ~/path/foo/bar) 一样使用它,但是也可以根据路径的文本匹配 (z bar ~= cd ~/path/foo/bar) 来更改目录。
不需要提供完整的路径,用户就能更改位置,只要提供路径的唯一子字符串, Zoxide 就能使用它的使用历史记录来引导到想要的位置。
为了便于采用,我选择使用 Zoxide 替换 cd ,这就像在添加初始化shell代码时使用 --cmd 标志一样简单( eval "$(zoxide init zsh --cmd cd)" )。 ℹ️ 安装 Zoxide
有许多方法可以安装Zoxide。比如说brew:
brew install zoxide
并在你的 .zshrc, bashrc 或者类似的东西上加上hooks:
eval "$(zoxide init zsh --cmd cd)"
6、 GitUpdate
这个工具是在Lobste.rs上的另一个发现。在Git分支上工作时,我喜欢经常提交我的工作。
例如,在我试图删除博客文章中的一些巨大的文本块之前,或者在我尝试重构一些代码片段之前,我会提交我的工作。
当然,我稍后会压缩或重组这些提交,但为了方便,我有一个名为 wip ("工作在进行中")的git别名,这让我的提交更轻松。 git wip = !git add --all; git ci -m WIP
Gitupdate是对这个想法的一个简单改进。 Gitupdate可以提交文件,并使用更改文件的文件名(而不是扩展名)来创建更有意义的提交消息。当提交消息不重要时,它非常有用。
GitUpdate生成提交消息、提交和推送。 ℹ️ 安装 GitUpdate
git clone https://github.com/nikitavoloboev/gitupdate
go build
sudo cp gitupdate /usr/local/bin
以上就是分享的内容
有帮助的话记得分享给小伙伴
关注我的同名公众号,帮你学到更多
iPhoneX镜头还存在进灰情况吗?欢迎在点击右上角关注太平洋电脑网,更多有趣资讯等着您哦。对不起,还是存在的。只要百度一下iPhoneX镜头进灰。你就会发现,iPhoneX的进灰的进灰的情况还是存在的。这种情况的存
C语言平时测试5参考答案1树列题目描述在学校某条路上,路边的树排列整齐又有规律,树是由白杨树,柳树交替组成,第一棵是白杨树(Poplar),第二棵是柳树(Willow),第一棵树和第二棵树之间间隔2米,而
人民日报关注网盘限速问题让网盘限速变提速来源人民日报让网盘限速变提速韩鑫不少网友都有过类似经历在工作或生活中,经常需要将视频文件从网盘中下载到电脑上,越急用下载速度越慢,但是开个会员,就能大大提速。对非会员下载速率进行限
三峡新能源青龙150MW光伏项目光伏区设备正常发电河北新闻网讯(通讯员赵剑升董莉莉袁水清)1月20日,三峡新能源青龙150MW光伏项目光伏区设备启动完成,正常发电,青龙项目顺利并网。该项目总投资约6。5亿元,装机规模150兆瓦,利
联发科传出将成立元宇宙事业群,整合物联网TV等芯片商机英伟达要用算力征服元宇宙,脸书更宣布改名Meta将元宇宙列为未来发展核心,这一波的元宇宙掏金热仿佛重现当年iPhone智能手机带来的兴奋程度。日前传出,联发科计划利用在连接传输5G
上个追光科技全屋WIFI光纤组网分享贵了点但真香阅读时间大约30分钟,介绍得很详细,读者范围全屋智能家庭改造家庭网络升级路由器不好用网速不达标上网卡顿家庭网络装修。购买理由还记得20年前我们的上网方式吗?网吧请扣1!56K猫拨号
砍一刀却永远差一刀?法庭上拼多多自爆了砍价套路文丨刘亦风0。9996427看到这个精确到百分比小数点后面七位的数字,不知道大家觉得会出现在哪个场景?有网友说,在两弹一星第一次载人航天的纪录片里见过。大国工匠或者高科技精密仪器的
小荷才露尖尖角(64)软件工程,套路一统江湖十几年老码农,讲讲互联网软件行业的那些事儿。欢迎关注同名公众号屋顶的闪闪星光刚开始学Java时,在main函数中调用了一个有200多行代码的test方法,一个师兄告诉我,你得根据他
油价上涨,新能源汽车将会更多人的选择2022年开年之局,就迎来油价大幅上涨。在油价居高不下的大环境下,现在很多考虑买车的朋友,都会考虑买一辆新能源或者是混动车。新能源车,实际上就是以电能转化为驱动能的电动汽车,虽然购
新能源车已终结,元宇宙正当时这几年,绝大多数获利较多的散户,甚至部分的小型私募,获利的关键是跟对了赛道,与能力无关。去年只要是坚持做新能源车的股民,无论是新手还是老手,无论是长线还是短线,大部分都收益颇丰。但
促消费利好政策不断,网上年货节电商大比拼,这些本地生活平台连锁超市也加入了临近虎年春节,各大电商平台的网上年货节活动陆续拉开帷幕,这也将成为我国居民消费需求释放的重要窗口。证券时报e公司记者注意到,在今年的网上年货节中,不少电商增加了新的差异化互动方式,