如何在Ubuntu14.04上安装和使用命令行备忘单
介绍
Cheat 是一个基于命令行的 Python 程序,允许系统管理员查看和存储有用的备忘单。 它检索所选命令的纯文本示例,以提醒用户选项、参数或常见用途。 作弊是“您经常使用但不够频繁记住的命令”的理想选择。
表格是可以跨多个 Linux/Unix 系统复制的小型便携式文本文件; 它们像任何其他命令行程序一样被调用和查看。 提供了常用程序的基本表,但您也可以添加自定义的新表。
先决条件
要遵循本教程,您将需要:
- 一个 Ubuntu 14.04 Droplet
- 一个 sudo 非 root 用户,你可以按照 How To Add and Delete Users on an Ubuntu 14.04 VPS 教程进行设置
第 1 步 — 安装作弊
在安装 Cheat 之前,我们需要确保系统上的所有内容都是最新的。
sudo apt-get update && sudo apt-get upgrade
对于此步骤中的任何提示,输入 y
进行确认。
安装 Cheat 最好使用 Python 包管理器 Pip,所以接下来安装 Pip。
sudo apt-get install python-pip
Cheat 本身只依赖于两个 Python 包,这两个包都方便地包含在 Pip 的 Cheat 包中。 最后,安装作弊。
sudo pip install cheat
成功安装 Cheat 将输出以下行:
sudo pip 安装作弊输出
Successfully installed cheat docopt pygments Cleaning up...
我们可以通过使用 -v
选项运行它来确认 Cheat 已安装并正常工作。
cheat -v
这将输出我们已安装的 Cheat 版本。
作弊 -v 输出
cheat 2.1.10
第 2 步 — 设置文本编辑器
在我们继续创建自己的备忘单之前,Cheat 需要知道默认情况下我们想使用哪个文本编辑器来编辑备忘单。 为此,我们必须创建并设置一个名为 EDITOR
的环境变量。 有关 shell 和环境变量的更多信息,您可以阅读 如何读取和设置环境和 shell 变量 教程。
因为 nano 已经安装在 Ubuntu 上并且通常很容易学习,所以我们将使用以下命令将其设置为首选文本编辑器。 但是,您可以改用 vim、emacs 或您喜欢的文本编辑器。
export EDITOR="/usr/bin/nano"
我们可以通过键入以下内容来确认这是否成功:
printenv EDITOR
这将输出新的 $EDITOR
环境变量的内容:
printenv 编辑器输出
/usr/bin/nano
要使此更改在所有未来的 shell 会话中持久和永久,您必须将环境变量声明添加到您的 .bashrc
文件中。 这是在 bash shell 会话开始时运行的几个文件之一。
打开此文件进行编辑:
nano ~/.bashrc
然后添加相同的导出命令:
~/.bashrc
. . . # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac export EDITOR="/usr/bin/nano" # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth . . .
按 CTRL+X
然后按 Y
再按 ENTER
保存并退出文件。
第 3 步 — 自定义作弊(可选)
在这一步中,我们将通过启用语法高亮和命令行自动完成来自定义 Cheat。
使用具有颜色支持的终端仿真器时,您可以通过导出名为 CHEATCOLORS
的 shell 环境变量定义为 true 来为工作表启用语法突出显示:
export CHEATCOLORS=true
现在,每当您检索备忘单时,它们都会以彩色语法突出显示进行格式化。 如果您喜欢此功能,您可以通过将导出命令添加到您的 .bashrc
文件来使其在 shell 会话中持久和永久。
再次打开.bashrc
文件:
nano ~/.bashrc
然后在 EDITOR
变量下方添加新的 CHEATCOLORS
变量:
~/.bashrc
. . . # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac export EDITOR="/usr/bin/nano" export CHEATCOLORS=true # don't put duplicate lines or lines starting with space in the history . . .
保存并关闭文件。
接下来,要启用命令行自动补全,我们需要在 /etc/bash_completion.d/
目录中放置一个脚本。 切换到这个目录。
cd /etc/bash_completion.d/
然后从 Cheat 的 GitHub 项目页面下载我们需要的脚本。
sudo wget https://raw.githubusercontent.com/chrisallenlane/cheat/master/cheat/autocompletion/cheat.bash
现在在当前 shell 中输入 bash
以获取更改。
bash
现在启用了作弊的选项卡自动完成功能。 如果您键入 cheat
后跟一个空格,则按两次 TAB
键将为您提供命令列表。
作弊选项卡自动完成输出
cheat 7z asciiart chown df du grep indent jrnl mkdir netstat . . .
第 4 步 — 运行作弊
要以最基本的形式运行 Cheat,您可以像调用任何其他命令一样调用它,后跟现有的备忘单名称。
这是一个示例,说明如何使用 Cheat 随附的默认工作表之一执行此操作,用于 tail
命令(输出文件的最后几行)。
cheat tail
然后你会看到这个输出:
作弊尾输出
# To show the last 10 lines of file tail file # To show the last N lines of file tail -n N file # To show the last lines of file starting with the Nth tail -n +N file # To show the last N bytes of file tail -c N file # To show the last 10 lines of file and to wait for file to grow tail -f file
要查看我们可以使用哪些其他现有备忘单,请使用 -l
选项运行 Cheat。
cheat -l
这列出了所有可用的工作表及其在服务器上的位置。
第 5 步 - 创建和编辑备忘单
尽管 Cheat 附带的基本临时表很有用且多种多样,但它们并不包括我们可用的每个 shell 命令或程序。 我们可以从 Cheat 中获得的真正好处在于添加我们自己的自定义工作表。
例如,网络程序 ping
没有工作表:
cheat ping
作弊 ping 输出
No cheatsheet found for ping
让我们以一个示例来说明如何创建和添加新工作表。 首先,再次在命令行上调用 Cheat,这次是 -e
和我们正在为其制作的工作表的名称。
cheat -e ping
Cheat 将使用我们之前设置的 $EDITOR
变量创建并打开相关文件进行编辑。
在此新工作表的开头添加一个有用的 ping 命令示例,并附上注释(由 #
表示)解释输入时命令的作用。 这是您可以在文件中输入的一个这样的命令:
~/.cheat/ping
# ping a host with a total count of 15 packets overall. ping -c 15 www.example.com
像以前一样保存并退出文件。 接下来让我们再次运行 cheat ping
来测试新工作表。
cheat ping
这一次,我们将看到我们刚刚添加的备忘单。
作弊 ping 输出
# ping a host with a total count of 15 packets overall. ping -c 15 www.example.com
要修改现有工作表,我们可以再次使用 -e
选项。
cheat -e ping
ping 表现已打开,我们可以添加更多示例或内容。 例如,我们可以添加以下内容:
~/.cheat/ping
# ping a host with a total count of 15 packets overall. ping -c 15 www.example.com # ping a host with a total count of 15 packets overall, one every .5 seconds (faster ping). ping -c 15 -i .5 www.example.com
第 6 步 — 搜索备忘单
Cheat 有一个内置的搜索功能,通过 -s
选项触发。 这将拾取您提供给它的任何和所有出现的文本。 例如:
cheat -s packets
此命令将输出包含术语“数据包”的所有行以及它们源自的工作表。
作弊 -s 数据包输出
nmap: # --min-rate=X => min X packets / sec ping: # ping a host with a total count of 15 packets overall. # ping a host with a total count of 15 packets overall, one every .5 seconds (faster ping). route: # 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. tcpdump: # and other packets being transmitted or received over a network. (cf Wikipedia). . . .
结论
因为 Cheat 显示的所有内容都是纯文本并通过 shell 的标准输出定向,所以我们可以使用任何文本处理命令(如 grep
)。 你可以阅读在 Linux 中使用 Grep 和正则表达式搜索文本模式教程以获取更多信息grep
.
此外,Git 和 GitHub 等版本控制系统非常适合集中存储您的自定义备忘单,因此您可以通过克隆存储库在多个平台上获取它们。 如果您通过 Cheat 添加、修改或自己创建了工作表,则将其归类为 custom。
所有自定义备忘单都存储在 Linux 用户的主目录中,位于名为 .cheat
的隐藏文件夹中。 您可以通过运行 cheat -d
找到此位置,它将输出两个目录:第一个是您的自定义工作表的位置,第二个是您在安装时使用 Cheat 获得的默认工作表的位置。
要在其他系统上访问您的自定义工作表库,您只需将此 .cheat
文件夹复制到它们上。 备忘单是小的纯文本文件,因此非常适合使用版本控制进行跟踪。 要获得让您的备忘单和配置文件随时可访问的完整解决方案,您可以阅读 如何在 Linux VPS 上使用 Git 管理您的用户配置文件教程。