“作弊”:只需要知道這一個 Linux 命令就夠了
互聯網上有很多關于 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
[...]
這真是雪中送炭!
Linux Cheat 命令
??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
在 Linux 中安裝 Cheat 程序
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?? 集合。
列出 Cheat 支持項目
使用 ??--list?
?? 選項即可查看 ??cheat?
? 支持的項目:
$ cheat --list
7z
ab
acl
alias
ansi
ansible
ansible-galaxy
ansible-vault
apk
[...]
使用 Cheat 查看 Linux 命令
使用 ??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 用戶都會向你保證的那樣,它實際上并不是作弊。它只是以開源的方式工作得更巧妙。