13 - cheat.sh - 终端机的程序百科全书

在开发时,开发者常常会需要在浏览器上搜寻指令或程序语言相关的说明,藉此来辅助并确保使用的方式正确。但是每次的搜寻都需要消耗时间,并且从各个资源中找到有参考价值的资料更是耗费精神,使开发效率降低。

终端机中的程序资讯查找器 - cheat.sh

cheat.sh 是个针对终端机环境所设计的 cheat sheet 工具,它汇集了网路上许多的资源,并将它们整理起来,只要使用特定的搜寻参数,就可以取得对应的资讯与说明,藉以省去使用浏览器查询的麻烦。

https://ithelp.ithome.com.tw/upload/images/20210929/201077894VjX0ntlPP.png

man 的差异

指令 man 是我们常用的搜寻指令,它可以叫出指令的说明文件,但是这些说明文件大多都是庞大的,它会将所有的参数一个个说明,也缺少范例,因此对於想要速查的需求是比较缺乏的。

cheat.sh 提供的是精简的说明,搭配大量的范例使我们可以快速查找,以应付开发所需的资讯。

安装 cheat.sh

cheat.sh 可以直接使用 curl 指令执行,因此并不需要安装的动作,除非你想要:

  • 指令列的客户端:较 curl 的版本有更多的功能,例如 shell 模式、搜寻历程、剪贴簿整合、 自动补全与 stealth 模式。
  • 独立版本:此为离线版本,只有当你需要使用的环境为离线状态时,或是需要自己客制 chat sheets 才需要安装。

本文使用 curl 版本讲解,可以依照需求,安装适合你的版本。

使用 curl cheat.sh

cheat.sh 可以缩写为 cht.sh ,直接下 curl cht.sh ,会输出 cheat.sh 的 cheat sheet 。

curl cht.sh

https://ithelp.ithome.com.tw/upload/images/20210929/201077899Fg5TjOgVY.png

如果想要取得 cht.sh 的使用方式说明,可以使用 :help 路由。

curl cht.sh/:help

上例会列出所有的使用方式与参数。

使用关键字搜索

如果一开始不知道要搜寻什麽的话,可以使用关键字搜寻,在搜寻字串前面加上 ~ 表示要使用关键字搜寻。

curl cht.sh/~snapshot

关键字搜寻有三个选项,加在搜寻字串的下一层路由就可以作用:

# 不分大小写搜寻
curl cht.sh/~snapshot/i

# 搜索字不为其他字的子字串
curl cht.sh/~snapshot/b

# 递归搜寻
curl cht.sh/~snapshot/r

搜索主题

如果想要查询有什麽样的 cheat sheet ,可以使用 :list 列出所有的主题。

> curl -s cht.sh/:list | rg js
ajson
js
js/
js/1line
js/:learn
js/:list
js/Comments
js/Functions,_Scope_and_Closures
js/Logic_and_Control_Structures
js/Numbers,_Strings_and_Operators
js/Prototypes
js/Variables,_Arrays_and_Objects
js/hello
js/rosetta/
js/weirdness
jshint
jslint
json5
jstack
nodejs

由於列表项目较多,可以使用 ripgrep 之类的工具做进一步的筛选。

找到目标的语言或指令後,将名称带入路由中,就可以取得对应的 cheat sheet 。

# Language
curl cht.sh/js

# Command
curl cht.sh/ls

在第一层决定了目标的指令或语言後,我们可以针对此目标进行近一步的搜索。

搜索主题内容

要搜索内容,可以直接将想要搜寻的关键字打在下一层路由上,并且空白以 + 取代。

curl cht.sh/js/reverse+string

https://ithelp.ithome.com.tw/upload/images/20210929/201077893B5ahixYnw.png

上例为搜寻 js 的反转字串的方法。

如果你觉得 cheat.sh 所找到的答案不符合你的需求的话,可以在下层加上随机的参数(例如 /1/2 ), cheat.sh 会找寻其他的结果。

curl cht.sh/js/reverse+string
curl cht.sh/js/reverse+string/1
curl cht.sh/js/reverse+string/2

反向搜寻

如果在搜寻时,我们想要剔除特定的字串,可以使用 +- 串接想要排除的字串。

curl cht.sh/python/multiply+matrices+-numpy

上例会搜寻 python 的矩阵乘法,但不使用 numpy

搜寻的选项

在搜寻的下一层加上 \? 後面接选项,就可以使用选项的效果。

curl cht.sh/js/reverse+string\?Q

假设只想要输出程序码,不想要有注解,可以下 \?Q 来去除注解。

curl cht.sh/js/reverse+string\?QT

如果同时不想要有注解与颜色的话,可以使用 \?QT ,当然,单独使用 \?T 去除颜色,也是可以的。

其他的选项可以由 curl cht.sh/:help 中查找。

程序语言的内容

程序语言的内容会有复数个特殊的路由:

# 入门文件
curl cht.sh/js/hello

# 列出所有此语言的主题
curl cht.sh/js/:list

# 学习文件
curl cht.sh/js/:learn

# 此语言有用的单行程序码集
curl cht.sh/js/1line

# 此语言的特别之处说明
curl cht.sh/js/weirdness

本文重点整理

  • 平常搜寻语言或指令的用法时,需要使用浏览器搜索,并且要靠自己筛选来源。
  • 使用 cheat.sh 不仅可以直接在终端机上查询,其来源也是来自於可信任的资源。
  • cheat.shcurl 版本不用安装,可以直接使用。
  • 路由输入 ~KEYWORD 可以以 KEYWORD 为关键字搜寻。
  • 使用 :list 可以列出所有的主题,并藉由 ripgrep 工具帮忙筛选。
  • 决定主题後,可以使用 + 合并要搜寻的名词进行搜寻。
  • 如果要剔除特定关键字,可以使用 +-
  • 语言相关的主题可以使用特殊的字串来查找特殊的资源。
    • hello :入门文件。
    • :list :列出所有此语言的主题。
    • :learn :学习文件。
    • 1line :此语言有用的单行程序码集。
    • weirdness :此语言的特别之处说明。

参考资料


<<:  Day 29 Chatbot integration- 多功能 chatbot 就此诞生!

>>:  [DAY 14]cog架构用法(1/2)

Day 18 wait group 的使用

Wait group wait group 通常用来等待一组 goroutine 完成工作。 wai...

[Day18] 抽象类别

抽象类别 PHP也支援抽象类的和抽象方法,被定义为抽象类的方法不能被实体化,在任何一个类别中, 如果...

利用大数据分析预测MLB胜负(中)

在上一篇文章中,我们介绍作者如何分析MLB赛事,并找出影响比赛胜负较为重要的因子,而今天我们就来看看...

8.unity角色移动(刚体Rigidbody2D)

刚体2D(Rigidbody 2D) 当物体运动速度远小於光速可被视为理想刚体,可以忽略型变,也就是...

[Day 26] BDD - 组合技

组合技 Drone + godog + Mattermost 当有需求要在k8s上透过drone定期...