

大约十年前,我开始接触命令行界面(CLI)。 我现在是一个讨厌的CLI爱好者,并且对它的效率非常着迷。 因此,我一直在尝试新的命令行命令。 在我的日常工作流程中,某些命令有时会被其他改进的命令所代替。 特别是对于一些常用命令,值得找到更好的替代方法。
这是我想与您分享的改进命令的列表:
ž
z是一个非常受欢迎的用于跳来跳去的替代命令。 z不需要任何其他配置。 尽管它开箱即用,但您只需要一点耐心。 因为z具有基于“频率”的“魔术”算法,可以在cd停留一段时间后从频繁使用的目录中学习。
一个简单而快速的示例如何z :
〜$ pwd / home / foo / bar /一/二/三
〜$ z tw
〜$ pwd
/ home / foo / bar /一/二
〜$ z foo
〜$ pwd
/ home / foo〜$ z th
〜$ pwd
/ home / foo / bar /一/二/三
想知道所有目录的“频率”得分如何? 只需运行命令z -l将给您一个列表。
是否要清除部分/所有保存的目录? 只需修改$HOME/.z 。
上
up是替换cd ..的有趣命令,这嘲笑一个cd ../../../../
〜$ pwd
/ home / foo / bar /一/二/三〜$ up
〜$ pwd
/ home / foo / bar /一/二〜$ up 2
〜$ pwd
/ home / foo / bar〜$ up h
〜$ pwd
/家
fzf
fzf是通用命令,可以与其他命令组合使用。 凭借其惊人的可搜索性,它可用于“ cd进入所选目录”:
https://kevcui.github.io/videos/fzf-example.svg
exa旨在成为ls的调制解调器替代产品。 在我看来,它做到了。 exa真的很容易使用。 它的选项很简单:


这是我的别名:
别名ls ='exa -s mod --git'
别名ll ='exa -l -s mod --git --time-style = long-iso'
调整exa的更多选项:https://the.exa.website/docs/command-line-options
bat是一个cat克隆,具有语法突出显示,行号和自动分页(使用less作为默认寻呼机)。 使用bat显示文件的内容如下所示:


可以自定义语法突出显示的主题。 它支持Sublime Text语法格式。 检查这些默认主题有一些启发:https://github.com/sharkdp/bat/tree/master/assets/themes
Rg,Ripgrep速度很快且很生气。 它具有与grep命令几乎相同的参数,具有改进的输出样式和速度。
对我来说, grep主要用法是找出哪些文件包含某些特定内容。 比较grep和ripgrep :




如果您对rg可以有多快感兴趣? 检查此比较:https://github.com/BurntSushi/ripgrep#quick-examples-comparing-tools不确定现在是否仍然如此。 但总体而言,ripgrep足够快以适合我的日常使用。
fd
fd替代了find以用户友好为重点,并简化了find选项。 例如,我想编辑一个文件,但我不记得它的完整路径实际上是什么。 通常,我需要先找到其完整路径,然后再对其进行编辑:
〜$查找。 -ipath“ *如何* exp *”-名称“ index.html”
./2017/04/17/how-i-do-exploratory-testing/index.html
〜$ vi ./2017/04/17/how-i-do-exploratory-testing/index.html
由于我知道结果只会是找到一个文件,因此我也可以在find命令中合并vi :
〜$查找。 -ipath“ * how * exp *”-名称“ index.html” -exec vi {} \;
使用fd ,该命令更具可读性:
〜$ fd -p'如何。* exp。* / index'
2017/04/17 / how-i-do-exploratory-testing / index.html
fzf
fzf具有非常强大的模糊搜索能力。 它可以直接用另一个命令嵌套查找步骤。 我将键ctrl-t绑定为启用fzf。 与上述示例相同,但使用fzf ,则是一个完全不同的故事:
〜$ vi(按ctrl-t)
https://kevcui.github.io/videos/fzf-example2.svg
组合vim和fzf的别名:
别名vif ='vim $ {fzf)'
fkill,它的f代表“非常好”(绝对不是我在想的这个词😉)。 有时, kill一些僵尸进程是必要的。 fkill可以搜索进程并以交互方式杀死它。 它使杀人变得时尚:
https://kevcui.github.io/videos/fkill-example.svg
“ UNIX缺少的循环命令。”循环旨在填补这一空白。 它可以很好地代替watch :
#每6秒监控一次当前目录并打印文件列表
#观看
〜$ watch -n 6 ls -l#循环
〜$循环-e 6s'ls -l'
此外, loop还有一些很棒的选择来确定何时停止观看:
...
-c,--until-contains 继续直到输出包含此字符串
-r,--until-error 继续执行直到命令退出状态为非零或给出的值为止
-m,--until-match 继续直到输出匹配此正则表达式
-t,--until-time 继续运行,直到以后的时间,例如。 “ 2018-04-20 04:20:00”(UTC时间)
...
例如:创建即时stop-now文件后停止观看,然后在vim中打开它:
〜$ loop -e 6s'clear; date; ls -l'-c'stop-now'; 立即停止
https://kevcui.github.io/videos/loop-example.svg
实际上,使用loop代替命令也很有前途,并且充满乐趣:
#创建10个markdown文件:0.md,1.md ... 9.md#
〜$ for((i = 0; i <10; i ++))); 请触摸$ {i} .md; 完成#循环
〜$ loop -n 10'触摸$ {COUNT} .md'
tldr
tldr是手册页的简化集合。 它返回一些带有实际示例的命令片段:


宠物
pet是CLI的代码段管理器。 这是一个方便的工具,用于保存一些容易忘记的命令片段。 想法是使用pet建筑自己的参考手册。
怎么样
how2采用另一种方法搜索正确的命令:它从stackoverflow查询问题和答案!
https://kevcui.github.io/videos/how2-example.svg
如果显示的答案不是您真正想要的答案, how2提供了一种交互模式以在所有相关问题和答案的列表中进行选择。
从现在开始,我们将有信心“拯救世界”!


如果您认为此列表适合其他CLI读者,请共享此列表。 💝
如果您还有其他命令值得推荐,请给我留言。 ❤️
最初于 2018 年9月2日 发布在 kevcui.github.io 。