如何在Ubuntu 14.04上安装和使用命令行备忘单

介绍

Cheat是一个基于命令行的Python程序,允许系统管理员查看和存储有用的备忘单。它检索所选命令的纯文本示例,以便提醒用户选项,参数或常用用途。 Cheat非常适合“经常使用的命令,但不经常记住。”

表是可以在多个Linux / Unix系统上复制的小型可移植文本文件; 它们像任何其他命令行程序一样被调用和查看。提供了常用程序的基本表,但您也可以添加自定义新表。

课程准备

要学习本教程,您需要:

  • 一个Ubuntu 14.04 腾讯CVM,没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 一个sudo非root用户。

第1步 - 安装 Cheat

在安装Cheat之前,我们需要确保系统上的所有内容都是最新的。

sudo apt-get update && sudo apt-get upgrade

通过在此步骤中为任何提示输入y进行确认。

安装Cheat最好用Python包管理器Pip完成,所以接下来安装Pip。

sudo apt-get install python-pip

Cheat本身仅取决于两个Python软件包,这两个软件包都包含在Pip的Cheat软件包中。最后,安装Cheat。

sudo pip install cheat

成功安装Cheat将输出以下行:

Successfully installed cheat docopt pygments
Cleaning up...

我们可以通过运行它的-v选项来确认Cheat已安装并正常工作。

cheat -v

这将输出我们已安装的Cheat版本。

cheat 2.1.10

第2步 - 设置文本编辑器

在我们继续创建自己的备忘单之前,Cheat需要知道我们想要使用哪个文本编辑器来默认编辑工作表。为此,我们必须创建并设置一个名为EDITOR的环境变量。

因为nano已经安装在Ubuntu上并且通常易于学习,我们将使用以下命令将其设置为我们首选的文本编辑器。但是,您可以使用vim,emacs或您喜欢的文本编辑器。

export EDITOR="/usr/bin/nano"

我们可以输入以下内容确认这是成功的:

printenv EDITOR

这将输出新环境变量$EDITOR的内容:

/usr/bin/nano

要使此更改在所有将来的shell会话中保持持久且永久,您必须将环境变量声明添加到您的.bashrc文件中。这是在bash shell会话开始时运行的几个文件之一。

打开此文件进行编辑:

nano ~/.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,然后在ENTER后面输入Y

第3步 - 自定义Cheat(可选)

在此步骤中,我们将通过启用语法突出显示和命令行自动完成来自定义Cheat。

使用具有颜色支持的终端仿真器时,可以通过导出名为CHEATCOLORStrue 的shell环境变量来为工作表启用语法突出显示:

export CHEATCOLORS=true

现在,无论何时检索备忘单,都会使用彩色语法高亮显示格式。如果您喜欢此功能,则可以通过将export命令添加到.bashrc文件中,使其在shell会话中保持持久性和永久性。

再次打开.bashrc文件:

nano ~/.bashrc

然后在CHEATCOLORS变量下面添加新EDITOR变量:

. . .
# 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的选项卡自动完成功能。如果键入cheat后跟空格,按两次TAB键将显示命令列表。

cheat 
7z           asciiart     chown        df           du          
grep         indent       jrnl         mkdir        netstat
. . .

第4步 - 运行Cheat

要以最基本的形式运行Cheat,您可以像任何其他命令一样调用它,然后在后面输入现有的备忘单名称。

下面是一个如何使用tail命令(输出文件的最后几行)来运行一个Cheat附带的默认工作表的示例。

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表

尽管Cheat附带的基本临时表是有用且多种多样的,但它们并不包含我们可用的每个shell命令或程序。我们可以从Cheat获得的真正好处是添加我们自己的自定义工作表。

例如,网络程序ping没有工作表:

cheat ping
No cheatsheet found for ping

让我们以一个作为如何创建和添加新工作表的示例。首先,再次在命令行上调用Cheat,这次将-e作为我们正在制作的工作表的名称。

cheat -e ping

Cheat将使用我们之前设置的$EDITOR变量创建并打开相关文件进行编辑。

将有用的ping命令示例添加到此新工作表的开头,并附带注释(由...表示#),说明输入时命令的作用。您可以在文件中输入以下命令:

# ping a host with a total count of 15 packets overall.    
ping -c 15 www.example.com

像以前一样保存并退出文件。接下来让我们再次运行cheat ping测试新工作表。

cheat ping

这一次,我们会看到我们刚刚添加的备忘单。

# ping a host with a total count of 15 packets overall.    
ping -c 15 www.example.com

要修改现有工作表,我们可以再次使用该-e选项。

cheat -e ping 

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

此命令将输出所有具有术语“数据包”的行和包含它们的表。

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)。

此外,Git和GitHub等版本控制系统非常适合集中存储您的自定义备忘单,因此您可以通过克隆存储库在多个平台上获取它们。如果您已添加,修改或通过Cheat自行创建,则表单被归类为自定义

所有自定义备忘单都存储在Linux用户的主目录中,位于名为的隐藏文件夹中.cheat.。您可以通过运行cheat -d找到此位置,它将输出两个目录:第一个是自定义工作表的位置,第二个是安装时使用Cheat获得的默认工作表的位置。

要访问其他系统上的自定义工作表库,您只需要将此.cheat文件夹复制到它们上。备忘单是小型纯文本文件,因此这使得它们非常适合跟踪版本控制。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Install and Use Command Line Cheat Sheets on Ubuntu 14.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏崔庆才的专栏

腾讯云+ADSL拨号主机上使用Tornado+Redis维护代理池

本节详细介绍一下ADSL拨号代理服务器的搭建方法。

3.1K10
来自专栏沈唁志

在Ubuntu 16.04上安装Roundcube

Roundcube是一个基于网络的IMAP电子邮件客户端,提供类似于谷歌Gmail的用户界面。它是用PHP编写的服务器端应用程序,旨在访问电子邮件服务器或服务。...

66810
来自专栏企鹅号快讯

如何在 Linux 上安装友好的交互式 shell:Fish

Fish 有着很多重要的功能,比如自动建议、语法高亮、可搜索的历史记录(像在 bash 中 CTRL+r)、智能搜索功能、极好的 VGA 颜色支持、基于 web...

23470
来自专栏令仔很忙

新手学Linux(三)----使用 Vagrant 打造跨平台开发环境(二)

在上一篇《新手学Linux(二)—-使用 Vagrant 打造跨平台开发环境(一)》文章中,给大家介绍了什么是vagrant?,vagrant能干什么,以及v...

13910
来自专栏张戈的专栏

WordPress启用memcached动态缓存以及报错解决

张戈博客目前用的是Nginx 的 fastcgi 缓存方案,属于纯净态缓存模式,所以前台登录态什么的基本都没了。如果要兼顾前台登录态,又想速度快,有没有解决方案...

61190
来自专栏Aloys的开发之路

VirtualBox相关问题总结

VirtualBox Images: http://www.osboxes.org/virtualbox-images VirtualBoxes – Free ...

28180
来自专栏Linux运维学习之路

Virtualbox/Vagrant安装

使用Oracle的开源VirtualBox虚拟化系统,使用Chef创建自动化虚拟环境。

16030
来自专栏Albert陈凯

P05_kafka_2.9.2-0.8.1集群搭建

安装scala 2.11.4 1、将课程提供的scala-2.11.4.tgz使用WinSCP拷贝到sparkproject1的/usr/local目录下。 ...

30660
来自专栏pangguoming

Windows 安装配置 JIRA

MySQL-5.5.28 JDK1.6.0_21 JIRA功能全面,界面友好,安装简单,配置灵活,权限管理以及可扩展性方面都十分出色。  一、MySQL建库和...

43640
来自专栏自由而无用的灵魂的碎碎念

如何备份及转移vistualbox虚拟系统

我非常喜欢virtualbox,不过在重装系统或将虚拟系统转移到其他电脑,如何办呢?

8240

扫码关注云+社区

领取腾讯云代金券