介绍
Cheat 是一个基于命令行的 Python 程序,允许系统管理员查看和存储有用的骗局表. 它检索了所选命令的简单文本示例,以提醒用户选项,论点或常见用途。
表是可在多个Linux/Unix系统中复制的小型便携式文本文件;它们像任何其他命令行程序一样被称为和观看。
前提条件
要遵循本教程,您将需要:
- 一个 Ubuntu 14.04 Droplet
- 一个 sudo 非 root 用户,您可以通过遵循 如何在 Ubuntu 14.04 VPS 上添加和删除用户 教程
步骤 1 – 安装 Cheat
在安装 Cheat 之前,我们需要确保系统上的一切都更新。
1sudo apt-get update && sudo apt-get upgrade
通过输入y
来确认此步骤中的任何提示。
安装 Cheat 最好用 Python 包管理器 Pip 完成,所以下一步安装 Pip。
1sudo apt-get install python-pip
骗局本身只依赖于两个Python包,这两个包都方便地包含在Pip的骗局包中。
1sudo pip install cheat
成功安装 Cheat 将输出这些行:
1[label sudo pip install cheat output]
2Successfully installed cheat docopt pygments
3Cleaning up...
我们可以确认 Cheat 已安装并通过使用其 -v
选项来运行它。
1cheat -v
这会输出我们已经安装的 Cheat 版本。
1[label cheat -v output]
2cheat 2.1.10
第2步:设置文本编辑器
在我们可以继续创建自己的骗局表之前,骗局需要知道我们希望使用哪个文本编辑器默认地编辑表格。 要做到这一点,我们必须创建并设置一个名为EDITOR
的环境变量。 有关壳和环境变量的更多信息,您可以阅读 如何阅读和设置环境和壳变量教程。
由于nano已经安装在Ubuntu上,通常很容易学习,我们会用下面的命令将其设置为我们最喜欢的文本编辑器,但您可以使用vim,emacs或您最喜欢的文本编辑器。
1export EDITOR="/usr/bin/nano"
我们可以通过键入确认这是成功的:
1printenv EDITOR
这将输出新的$EDITOR
环境变量的内容:
1[label printenv EDITOR output]
2/usr/bin/nano
要使此更改在所有未来的壳会话中持久和永久,您必须将环境变量声明添加到您的 .bashrc
文件中。
打开此文件以编辑:
1nano ~/.bashrc
然后添加相同的出口命令:
1[label ~/.bashrc]
2. . .
3# If not running interactively, don't do anything
4case $- in
5 *i*) ;;
6 *) return;;
7esac
8
9export EDITOR="/usr/bin/nano"
10
11# don't put duplicate lines or lines starting with space in the history.
12# See bash(1) for more options
13HISTCONTROL=ignoreboth
14. . .
保存和退出文件,按CTRL+X
,然后按Y
,然后按ENTER
。
步骤 3 — 定制骗局(可选)
在此步骤中,我们将通过启用语法突出和命令行自动完成来定制 Cheat。
当您使用具有颜色支持的终端模拟器时,您可以通过导出名为CHEATCOLORS
的壳环境变量来激活表格的语法突出:
1export CHEATCOLORS=true
现在,每当你检索骗局表时,它们将以彩色语法突出格式进行格式化. 如果你喜欢这个功能,你可以通过将导出命令添加到你的 .bashrc
文件来使其在壳会话中持久和永久。
再次打开.bashrc 文件:
1nano ~/.bashrc
然后在EDITOR
变量下方添加新的CHEATCOLORS
变量:
1[label ~/.bashrc]
2. . .
3# If not running interactively, don't do anything
4case $- in
5 *i*) ;;
6 *) return;;
7esac
8
9export EDITOR="/usr/bin/nano"
10export CHEATCOLORS=true
11
12# don't put duplicate lines or lines starting with space in the history
13. . .
保存并关闭文件。
接下来,要启用命令行自动完成,我们需要将脚本放入 /etc/bash_completion.d/
目录。
1cd /etc/bash_completion.d/
然后从 Cheat 的 GitHub 项目页面下载我们需要的脚本。
1sudo wget https://raw.githubusercontent.com/chrisallenlane/cheat/master/cheat/autocompletion/cheat.bash
现在将bash
输入到当前壳中以获取更改。
1bash
现在启用了Tab Auto-Completion for Cheat. 如果你键入 cheat
然后是空格,按下TAB
键两次会给你一个命令列表。
1[label cheat tab auto-completion output]
2cheat
37z asciiart chown df du
4grep indent jrnl mkdir netstat
5. . .
步骤 4 - 运行骗局
要以最基本的形式运行 Cheat,你会像任何其他命令一样命名它,然后是现有的 cheat 表名称。
以下是如何使用与 Cheat 附加的默认表格之一进行操作的示例,用于尾巴
命令(输出文件的最后几行)。
1cheat tail
然后你会看到这个输出:
1[label cheat tail output]
2# To show the last 10 lines of file
3tail file
4
5# To show the last N lines of file
6tail -n N file
7
8# To show the last lines of file starting with the Nth
9tail -n +N file
10
11# To show the last N bytes of file
12tail -c N file
13
14# To show the last 10 lines of file and to wait for file to grow
15tail -f file
要查看其他现有的骗局页面可供我们使用,请使用其-l
选项运行骗局。
1cheat -l
这列出了所有可用的表格及其在服务器上的位置。
步骤5 – 创建和编辑骗局表
虽然在 Cheat 中包含的基本临时表是有用的和多样化的,但它们并不包括我们可用的每个壳命令或程序,我们可以从 Cheat 获得的真正的好处是添加自己的自定义表。
例如,对于网络程序ping
没有表格:
1cheat ping
1[label cheat ping output]
2No cheatsheet found for ping
让我们做一个作为创建和添加新表格的例子。 首先,在命令行上再次召唤 Cheat,这次接着是-e
和我们正在创建的表格的名称。
1cheat -e ping
Cheat 将创建并打开相关文件以使用我们之前设置的 $EDITOR
变量进行编辑。
将一个有用的 ping 命令示例添加到这个新表的开头,并添加一个评论(标注为 #
),说明该命令在输入时会做什么。
1[label ~/.cheat/ping]
2# ping a host with a total count of 15 packets overall.
3ping -c 15 www.example.com
保存和退出文件,如前所述。接下来,让我们通过再次运行 cheat ping
来测试新表格。
1cheat ping
这一次,我们将看到我们刚刚添加的骗局。
1[label cheat ping output]
2# ping a host with a total count of 15 packets overall.
3ping -c 15 www.example.com
要更改现有表格,我们可以再次使用-e
选项。
1cheat -e ping
ping 表现在已打开,我们可以添加更多示例或内容,例如,我们可以添加以下内容:
1[label ~/.cheat/ping]
2# ping a host with a total count of 15 packets overall.
3ping -c 15 www.example.com
4
5# ping a host with a total count of 15 packets overall, one every .5 seconds (faster ping).
6ping -c 15 -i .5 www.example.com
步骤6 - 搜索骗局
Cheat 有一个内置的搜索功能,由-s
选项触发,这将捕捉您提供的文本的任何和所有发生。
1cheat -s packets
此命令将输出包含包
一词和它们起源的表的所有行。
1[label cheat -s packets utput]
2nmap:
3 # --min-rate=X => min X packets / sec
4
5ping:
6 # ping a host with a total count of 15 packets overall.
7 # ping a host with a total count of 15 packets overall, one every .5 seconds (faster ping).
8
9route:
10 # To add a default route (which will be used if no other route matches). All packets using this route will be gatewayed through "mango-gw". The device which will actually be used for that route depends on how we can reach "mango-gw" - the static route to "mango-gw" will have to be set up before.
11
12tcpdump:
13 # and other packets being transmitted or received over a network. (cf Wikipedia).
14
15. . .
结论
由于 Cheat 显示的所有内容都是简单的文本,并通过壳的标准输出进行导向,所以我们可以使用任何文本处理命令(如grep
)与它一起使用,您可以阅读 Using Grep & Regular Expressions to Search for Text Patterns in Linux教程,以获取有关grep
的更多信息。
此外,版本控制系统如Git with GitHub非常适合中央存储自定义骗局,因此您可以通过克隆一个存储库来在多个平台上抓住它们。
所有自定义骗局目录都存储在你的Linux用户的主目录中,在一个名为.cheat
的隐藏文件夹中。你可以通过运行cheat -d
来找到这个位置,这将产生两个目录:第一个是你的自定义目录的位置,第二个是安装时使用 Cheat 获得的默认目录的位置。
要在其他系统上访问你的自定义表格库,你只需要将这个.cheat
文件夹复制到它们身上。 骗局表格是小型简单文本文件,所以这使得它们非常适合用版本控制来跟踪。 对于使你的骗局表格和配置文件随时可访问的完整解决方案,你可以阅读如何使用Git在Linux VPS上管理用户配置文件
(https://andsky.com/tech/tutorials/how-to-use-git-to-manage-your-user-configuration-files-on-a-linux-vps)教程。