导读 | Linux cheat 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。 |
互联网上有很多关于 Linux 和开源的信息,但是当你想要深入工作,通常需要一份便捷的文档。早在 Linux 出现之前的 Unix 系统中,就有 ??man???(“manual” 的缩写)和 ??info?? 命令了,二者都会显示命令、配置文件、系统调用等的官方项目文档。
关于 ??man??? 和 ??info??? 页面是对知晓如何使用工具的用户的有用提醒,还是为初次使用的用户提供介绍存在争议。不管怎样,??man??? 和 ??info??? 页面介绍了工具以及如何使用该工具,很少涉及特定任务以及如何完成它们。正是出于这个原因,开发了 ??cheat?? 命令。
例如,设想你想不起来如何 ??解压 tar 压缩包文件??? 。??man?? 页面会给你展示所有的选项,但需要你将这些信息转换为命令:
tar -A [OPTIONS] ARCHIVE ARCHIVE tar -c [-f ARCHIVE] [OPTIONS] [FILE...] tar -d [-f ARCHIVE] [OPTIONS] [FILE...] tar -t [-f ARCHIVE] [OPTIONS] [MEMBER...] tar -r [-f ARCHIVE] [OPTIONS] [FILE...] tar -u [-f ARCHIVE] [OPTIONS] [FILE...] tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]
这确实是一些用户需要的,但是也使一些用户感到困惑。相比之下,??cheat?? 命令会罗列常用命令:
$ cheat tar # To extract an uncompressed archive: tar -xvf /path/to/foo.tar # To extract a .tar in specified Directory: tar -xvf /path/to/foo.tar -C /path/to/destination/ # To create an uncompressed archive: tar -cvf /path/to/foo.tar /path/to/foo/ # To extract a .tgz or .tar.gz archive: tar -xzvf /path/to/foo.tgz tar -xzvf /path/to/foo.tar.gz [...]
这真是雪中送炭!
??cheat??? 命令是一个实用程序,可以用来搜索和显示你想要使用的命令的使用示例。如大多数 Unix 命令一样,同一个概念有多种不同的实现方式,它包括一个 ??使用 Go 编写??? 的和一个由我帮助维护的 ??仅用 100 行 Bash 编写?? 的两个版本。
若要安装 Go 版本的,下载 ??最新版??? 并将它放在某个 ??路径??? 中,例如 ??~/.local/bin/??? 或 ??/usr/local/bin??? 中。若安装 Bash 版本,下载最新版并运行 ??install-cheat.sh?? 脚本:
$ sh ./install-cheat.sh
如需配置后安装,请使用 ??自动工具??(Autotools):
$ aclocal ; autoconf $ automake --add-missing ; autoreconf $ ./configure --prefix=$HOME/.local $ make $ make install
Cheat 只是包含常用命令的纯文本文件。该程序可以从 ??github.com/cheat/cheatsheets??? 获得。当你第一次运行命令时,Go 版本会自动为你下载支持列表。如果你使用 Bash 版本,用 ??--fetch?? 选项可以下载支持列表:
$ cheat --fetch
与 ??man??? 一样,你的系统上可以有多个备忘单集合。 Go 版本的 ??cheat??? 使用 ??YAML??? 配置文件来定义每个集合的位置。Bash 版本在安装过程中定义了路径,默认下载 ??github.com/cheat/cheatsheets??? 集合以及 ??opensource.com??? 自己的 ??gitlab.com/opensource.com/cheatsheets?? 集合。
使用 ??--list??? 选项即可查看 ??cheat?? 支持的项目:
$ cheat --list 7z ab acl alias ansi ansible ansible-galaxy ansible-vault apk [...]
使用 ??cheat??? 查看命令如同使用 ??man??? 和 ??info?? 查看一样简单。只需要输入你需要查询的命令即可:
$ cheat alias # To show a list of your current shell aliases: alias # To alias `ls -l` to `ll`: alias ll='ls -l'
默认情况下,??cheat??? 命令会使用你的 ??环境变量??? ??PAGER??? 中指定的分页器。你可以在运行 ??cheat??? 命令前改写 ??PAGER?? 变量值,暂时修改环境变量。
$ PAGER=most cheat less
如果你只是想在没有 ??PAGER??? 的情况下将 ??cheat??? ??输出??? 到终端里,在 Bash 版中有 ??--cat?? 选项可以使用:
$ cheat --cat less
??cheat?? 系统抓住了要害,你不必拼凑有关如何使用命令的线索,你只需按照示例进行操作即可。当然,对于复杂的命令,它不是深入研究实际文档的捷径,但为了快速借用,它还是可以的。
甚至你可以通过将文件放入其中一个备忘单集合中,来创建自己的备忘单。好消息是,因为这些项目是开源的,所以你可以将你的个人备忘单贡献给 GitHub 集合。另一个好消息是,当有新的 ??opensource.com??? ??备忘单?? 版本发布时,我们将从现在开始包含纯文本版本,以便你可以将其添加到你的收藏中。
该命令称为 “作弊cheat”,但正如任何 Linux 用户都会向你保证的那样,它实际上并不是作弊。它只是以开源的方式工作得更巧妙。