点击上方蓝色“程序猿DD”,选择“设为星标”

回复“资源”获取独家整理的学习资料!

前言

作为程序员需要了解的东西有很多,日常编码和写脚本脱离不开各式语言与 Linux 命令。为了记住一些杂乱的或不被经常使用的知识点,我们迫切需要一个“小抄”/备忘录,小抄内容多了自然繁杂,所以我们希望这个小抄要:

  1. 简洁:只包含你想要的内容,没有其他「花边」内容

  2. 快速:可以立即使用

  3. 全面:能基本包含你所有问题的答案

  4. 通用:它应该在任何地方、任何时间都可用,不需要任何准备

  5. 不唐突:它不应该让你从主要任务上分心(比如减少应用切换)

  6. 辅导:它应该帮助你学习这个科目(在答案基础上扩展知识)

  7. 不显眼:应该可以在完全不被注意的情况下使用(就好比划词翻译,鼠标轻点就有答案)

老gong,你是想介绍哆啦A梦吗?

非也,其实是 cheat.sh

cheat.sh 介绍

cheat.sh[1] 就是一个可以满足上述愿望的小哆啦,目前在 Github 的形式是这样滴:

Commit 也非常活跃,就是这么一个哆啦

  • 它提供一个简单的 curl/浏览器接口方便我们查询

  • 目前覆盖 58 种编程语言,多种 DBMS以及超过 1000 个UNIX/Linux 常用命令

  • 提供对世界上最好的社区驱动的备忘单存储库的访问,与StackOverflow持平(绝对是高质量的内容)

  • 提供命令行客户端

  • 可以嵌套在代码编辑器中使用,比如 Intellij IDEA 和 VS-Code

  • 支持一个特殊的隐身模式,可以完全隐形的使用它 (感觉挺神秘的呢)

先来认识一下,打开命令行终端,使用 curl 命令输入:

curl cht.sh

如何使用 cheat.sh

先拿几个常用的 UNIX/Linux 命令练练手:

curl cht.sh/tar

瞧这整理的规范和简洁不?

curl cht.sh/tr

答案依旧整洁规范, 同时还高亮显示,友好的很啊

如果你不知道某个命令,还可以使用 ~Keyword 的形式来查询,比如你想查看如何建立快照

curl cht.sh/~snapshot

上面说过, cheat.sh 包含 1000 多个常用的 UNIX/Linux 命令,当需要的时候,按照语法 curl cht.sh/<you-cmd> 尽情查询吧

除了 Linux 命令,我们还说支持 58 种语言,当写代码时某个 API 不会用或需要完成某些操作,cheat.sh 依旧可以帮上忙,比如我总是记不住 Java Lambda 的 group 操作

curl cht.sh/java/lambda+group

记住下面的标准格式,搜索的结果都是和 StackOverflow 一样的高质量

如果这个答案还不是你想要的,你就可以添加数字进行翻页获取其他结果

另外你觉得结果中的注释很碍眼的话,可以在每次查询的后面加上 \?Q,就像这样:

curl cht.sh/java/lambda+group\?Q

当然每种语言都默认支持 :list 和 :help 两种查询方式,作为帮助指令,大家可以自行尝试了,比如 go 语言

curl cht.sh/go/:list
curl cht.sh/go/:help

相信到这里,你已经可以掌握 cheat.sh 的基本使用方式了

但是,这种 curl 方式总是显得不是很方便,比如空格要用 + 替代,日常工作语言比如只有 Java,每次都要输入 curl cht.sh/java/xxxxxxx 这样就会显得很麻烦, 为了解决这些问题,cheat.sh 很贴心,也提供了命令行客户端,大大简化了搜索操作

Cheat.sh 命令行客户端

安装

安装 CLI Client (Command Line Client)非常简单,只需要依次执行下面的命令即可:

# 注意你的环境变量 PATH 已经 import 了 ~/bin 下的内容
mkdir -p ~/bin/
curl https://cht.sh/:cht.sh > ~/bin/cht.sh
chmod +x ~/bin/cht.sh

如果要保证 shell 模式可用,还需要安装一个依赖 rlwrap, 下面两种安装方式都可以(我直接用brew安装的)

brew install rlwrap
# 或者
sudo apt install rlwrap
使用

有了 CLI Client 之后,来看一看搜索上的变化:

这个 CLI Client 还提供了一个更加便利的 shell 模式:

cht.sh --shell

如下图,每次直接按照语言搜索相关内容就可以了:

通常我们编程在一段时间内会用一种语言,我们可以进一步简化搜索过程,cd 到某个语言目录下:

‍‍‍‍‍‍‍‍‍‍

如果进入 shell 模式,同时想一次性进入某个语言目录,也可以通过一条命令搞定:

cht.sh --shell java

隐身模式

相信很多小伙伴都配有划词工具,比如某个单词不会了,选中相应的单词,就会出来解释,cheat.sh 也有类似的模式,进入某个语言目录下之后,输入 stealth Q 就可以进入这个模式了:

用鼠标选中文本后,用起来的效果就是这样滴:

不过这里建议,搜索的单词不要超过 5 个

以上这些使用方式,默认都会调用它自己的服务,为了更快速的响应,我们可以搭建自己的服务,前提是要更改 CLI Client 的 server URL:

打开或新建 ~/.cht.sh/cht.sh.conf ,添加

CHTSH_URL=https://cht.sh            # URL of the cheat.sh server

然后就可以 run 自己的服务

git clone https://github.com/chubin/cheat.sh.git
cd cheat.sh
docker-compose up

最后访问服务:http://localhost:8002

‍集成主流编辑器

cheat.sh 同样和主流编辑器有很好的集成:

Feature Emacs Sublime Vim VSCode IDEA QtCreator
Command queries
Queries from buffer
Toggle comments
Prev/next answer
Multiple answers
Warnings as queries
Queries history
Session id
Configurable server

Vim 的集成度是最高的,大家可以根据 cheat.sh-vim 自行配置

VSCode 和 IDEA 是大家高频使用的两个 IDE,和他们集成就很简单了,只需要安装相应的插件:

VSCode 插件

安装 vscode-snippet 就可以在 VSCode 中快速使用这个功能了

IDEA 插件

安装 idea-cheatsh-plugin 这个插件就可以在 Intellij IDEA 中使用这个功能了

总结

至于支持的 58 种语言都是什么,请大家自行参考 README 文档,关于 cheat.sh, 了解这些基本的使用就已经够了,还是那句话,好的工具是用来提高工作效率的,不要被工具过度捆绑,公众号回复「工具」获取更多内容

参考

[1]cheat.sh: https://github.com/chubin/cheat.sh

DD自研的沪牌代拍业务,点击直达

【往期推荐】

知乎热议:计算机专业钱景究竟如何?

2020-11-29

VS Code有哪些奇技淫巧?

2020-11-29

API网关是否真的起到了它该有的作用?

2020-11-28

18香警告:一个女生勿近的邪恶开源项目...

2020-11-28

TiDB 数据库的 4 大应用场景分析

2020-11-27

扫一扫,关注我

一起学习,一起进步

每周赠书,福利不断

深度内容

推荐加入

cheat.sh 在手,天下我有相关推荐

  1. OpenAI Codex,GitHub Copilot 和cheat.sh 三个代码建议工具对比

    在本文中,我们将对比 OpenAI Codex.GitHub Copilot 和cheat.sh 的智能感知和代码建议. OpenAI Codex简单的集成 OpenAI Codex 是 OpenAI ...

  2. 三国志战略版鸿蒙梦魇,三国志战略版:双控在手天下我有,洞察震慑枪已成吴国梦魇!...

    相信大家和村夫一样,一直对蜀国武将的搭配情有独钟.因为三战从S1赛季开始,蜀国武将就一直占据着战场的主流,虽然到了S6,S7赛季吴国魏国的各种组合搭配花样频出,但是也抵不过大家对于魏延.关银屏这些新武 ...

  3. 任性安装苹果应用,安装包在手天下我有

    教程开始了 点击添加图片描述(最多60个字) 编辑 常见问题, 1.安装后灰色或闪退应用证书掉了,解决方案越狱或等待修复 2.没有shu苹果id.账号下载即可 3.很多用不了,注意系统版本 ##### ...

  4. 【神奇的Turtle库】海龟在手—天下我有:这款秘制“海龟闯关”小游戏值得拥有,强烈推荐哦~

    导语 哈喽!大家好!我是木木子~ 纵观之前的文章--我发现了一个特点,很多小伙伴儿都喜欢学习Turtle或游戏代码,没错吧~ 那今天这篇文章就是为这2方面的小伙伴儿精心准备滴!Turtle+游戏一起安 ...

  5. Windows 的这款工具,有时让我觉得 Mac 不是很香

    你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it well enough ...

  6. Cheat sheet -----几乎所有编程语言的速查表

    偶然发现一个比较好用的工具,可以用它作为学习任何一门编程语言reminder. cheat.sh 这就是要介绍的主角了.不需要安装,只要联网且有http服务就可以岁时查询任何编程语言的一些语法和关键字 ...

  7. 最后的人 - 主机程序员十年的分享

    最后是 我 一个人走过 这片海 桌面邮件叮的一声,收到了 admin 小姐姐发出的邮件,原来今天是系统操作部门主管最後一天的上班,主管买了好多小零食,大家可以到编号 xxx 柜里自己领取. 想一想原来 ...

  8. 致谢 开源开发者的贡献_对开源做出的贡献如何使我成为更好的开发人员,以及如何做到这一点...

    致谢 开源开发者的贡献 by Luciano Strika 通过卢西亚诺·斯特里卡(Luciano Strika) 对开源做出的贡献如何使我成为更好的开发人员,以及如何做到这一点 (How contr ...

  9. IDEA 解决 Java8 的数据流问题,用过的都说好!!!

    以下文章来源方志朋的博客,回复"666"获面试宝典 相信不少胖友的 Lambda 使用的贼 666,今儿来看看 IDEA 在这方面的助力! IDEA在手 天下我有 我们打算将Pon ...

最新文章

  1. Java中jsonObject与String等互转问题
  2. Java动态代理的实现
  3. CF#1288A Deadline (函数求最值问题)
  4. 周五话营销 | 数据分析强势解决营销人三大痛点
  5. 小程序wx:key中的关键字*this
  6. 留言板JavaScript实现
  7. nc65右键生成菜单_DbSchema生成表单和报表,原来如此简单
  8. mysql触发器_MySQL视图\触发器\事务初步认识
  9. mysql ddl 失败_PHP加载mysql DDL会失败
  10. 【Elasticsearch】关于 Analyzers 的一切,第2部分
  11. 一键把动态IP自动设置为静态IP
  12. Excel 表格打印篇(批量添加标题,同页打印,打印logo与页码)
  13. directx安装后找不到_如何下载,安装,更新到最新的DirectX
  14. 空间几何变换 之 齐次坐标
  15. Python之qq自动发消息
  16. Windows自带远程桌面,非常好用的全新体验。
  17. MyBatis(3)
  18. 懒猫社长便利店成焦虑boy的温暖港湾!
  19. L3-001. 凑零钱
  20. 同步辐射X射线断层扫描成像技术的应用领域和场景

热门文章

  1. ant 使用常见问题
  2. linux qemu 报错 Unable to reserve 0xfffff000 bytes of virtual address space at 0x1000 解决方法
  3. linux c 创建子进程 执行任务
  4. linux centos 网络设置 优先使用ipv4 其次ipv6
  5. 漫谈 Weblogic CVE-2020-2555
  6. linux top 报错 TERM environment variable not set.
  7. mysql 时间日期类型 datetime、timestamp、date、time、year
  8. linux rqm包制作 spec文件详解
  9. linux c 结构体初始化的四种方法
  10. windbg学习-------.expr和masm表达式