“作弊”:只需要知道這一個(gè) Linux 命令就夠了
互聯(lián)網(wǎng)上有很多關(guān)于 Linux 和開(kāi)源的信息,但是當(dāng)你想要深入工作,通常需要一份便捷的文檔。早在 Linux 出現(xiàn)之前的 Unix 系統(tǒng)中,就有 ??man?
??(“manual” 的縮寫(xiě))和 ??info?
? 命令了,二者都會(huì)顯示命令、配置文件、系統(tǒng)調(diào)用等的官方項(xiàng)目文檔。
關(guān)于 ??man?
?? 和 ??info?
?? 頁(yè)面是對(duì)知曉如何使用工具的用戶(hù)的有用提醒,還是為初次使用的用戶(hù)提供介紹存在爭(zhēng)議。不管怎樣,??man?
?? 和 ??info?
?? 頁(yè)面介紹了工具以及如何使用該工具,很少涉及特定任務(wù)以及如何完成它們。正是出于這個(gè)原因,開(kāi)發(fā)了 ??cheat?
? 命令。
例如,設(shè)想你想不起來(lái)如何 ??解壓 tar 壓縮包文件??? 。??man?
? 頁(yè)面會(huì)給你展示所有的選項(xiàng),但需要你將這些信息轉(zhuǎn)換為命令:
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...]
這確實(shí)是一些用戶(hù)需要的,但是也使一些用戶(hù)感到困惑。相比之下,??cheat?
? 命令會(huì)羅列常用命令:
$ 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?
?? 命令是一個(gè)實(shí)用程序,可以用來(lái)搜索和顯示你想要使用的命令的使用示例。如大多數(shù) Unix 命令一樣,同一個(gè)概念有多種不同的實(shí)現(xiàn)方式,它包括一個(gè) ??使用 Go 編寫(xiě)??? 的和一個(gè)由我?guī)椭S護(hù)的 ??僅用 100 行 Bash 編寫(xiě)?? 的兩個(gè)版本。
若要安裝 Go 版本的,下載 ??最新版??? 并將它放在某個(gè) ??路徑??? 中,例如 ??~/.local/bin/?
?? 或 ??/usr/local/bin?
?? 中。若安裝 Bash 版本,下載最新版并運(yùn)行 ??install-cheat.sh?
? 腳本:
$ sh ./install-cheat.sh
如需配置后安裝,請(qǐng)使用 ??自動(dòng)工具??(Autotools):
$ aclocal ; autoconf
$ automake --add-missing ; autoreconf
$ ./configure --prefix=$HOME/.local
$ make
$ make install
在 Linux 中安裝 Cheat 程序
Cheat 只是包含常用命令的純文本文件。該程序可以從 ??github.com/cheat/cheatsheets??? 獲得。當(dāng)你第一次運(yùn)行命令時(shí),Go 版本會(huì)自動(dòng)為你下載支持列表。如果你使用 Bash 版本,用 ??--fetch?
? 選項(xiàng)可以下載支持列表:
$ cheat --fetch
與 ??man?
?? 一樣,你的系統(tǒng)上可以有多個(gè)備忘單集合。 Go 版本的 ??cheat?
?? 使用 ??YAML??? 配置文件來(lái)定義每個(gè)集合的位置。Bash 版本在安裝過(guò)程中定義了路徑,默認(rèn)下載 ??github.com/cheat/cheatsheets??? 集合以及 ??opensource.com??? 自己的 ??gitlab.com/opensource.com/cheatsheets?? 集合。
列出 Cheat 支持項(xiàng)目
使用 ??--list?
?? 選項(xiàng)即可查看 ??cheat?
? 支持的項(xiàng)目:
$ cheat --list
7z
ab
acl
alias
ansi
ansible
ansible-galaxy
ansible-vault
apk
[...]
使用 Cheat 查看 Linux 命令
使用 ??cheat?
?? 查看命令如同使用 ??man?
?? 和 ??info?
? 查看一樣簡(jiǎn)單。只需要輸入你需要查詢(xún)的命令即可:
$ cheat alias
# To show a list of your current shell aliases:
alias
# To alias `ls -l` to `ll`:
alias ll='ls -l'
默認(rèn)情況下,??cheat?
?? 命令會(huì)使用你的 ??環(huán)境變量??? ??PAGER?
?? 中指定的分頁(yè)器。你可以在運(yùn)行 ??cheat?
?? 命令前改寫(xiě) ??PAGER?
? 變量值,暫時(shí)修改環(huán)境變量。
$ PAGER=most cheat less
如果你只是想在沒(méi)有 ??PAGER?
?? 的情況下將 ??cheat?
?? ??輸出??? 到終端里,在 Bash 版中有 ??--cat?
? 選項(xiàng)可以使用:
$ cheat --cat less
這并不是作弊
??cheat?
? 系統(tǒng)抓住了要害,你不必拼湊有關(guān)如何使用命令的線索,你只需按照示例進(jìn)行操作即可。當(dāng)然,對(duì)于復(fù)雜的命令,它不是深入研究實(shí)際文檔的捷徑,但為了快速借用,它還是可以的。
甚至你可以通過(guò)將文件放入其中一個(gè)備忘單集合中,來(lái)創(chuàng)建自己的備忘單。好消息是,因?yàn)檫@些項(xiàng)目是開(kāi)源的,所以你可以將你的個(gè)人備忘單貢獻(xiàn)給 GitHub 集合。另一個(gè)好消息是,當(dāng)有新的 ??opensource.com??? ??備忘單?? 版本發(fā)布時(shí),我們將從現(xiàn)在開(kāi)始包含純文本版本,以便你可以將其添加到你的收藏中。
該命令稱(chēng)為 “作弊cheat”,但正如任何 Linux 用戶(hù)都會(huì)向你保證的那樣,它實(shí)際上并不是作弊。它只是以開(kāi)源的方式工作得更巧妙。