Bash學(xué)習(xí)的快樂之旅:3個(gè)命令行游戲
通過這些命令行游戲,學(xué)習(xí)有用的 Bash 技能也是一件樂事。
學(xué)習(xí)是件艱苦的工作,然而沒有人喜歡工作。這意味著無論學(xué)習(xí) Bash 多么容易,它仍然對(duì)你來說就像工作一樣。當(dāng)然,除非你通過游戲來學(xué)習(xí)。
你不會(huì)覺得會(huì)有很多游戲可以教你如何使用 Bash 終端吧,這是對(duì)的。嚴(yán)肅的 PC 游戲玩家知道,《輻射》系列在金庫中配備了基于終端的計(jì)算機(jī),這可以幫你理解通過文本與計(jì)算機(jī)進(jìn)行交互是什么樣子,但是盡管其功能或多或少地類似于 Alpine 或 Emacs,可是玩《輻射》并不會(huì)教給你可以在現(xiàn)實(shí)生活中使用的命令或應(yīng)用程序。《輻射》系列從未直接移植到Linux(盡管可以通過 Steam 的開源的 Proton 來玩。)曾是《輻射》的前身的《廢土》系列的最新作品倒是面向 Linux 的,因此,如果你想體驗(yàn)游戲中的終端,可以在你的 Linux 游戲計(jì)算機(jī)上玩《廢土 2》和《廢土 3》?!?ruby>暗影狂奔》系列也有面向 Linux 的版本,它有許多基于終端的交互,盡管公認(rèn) hot sim 序列常常使它黯然失色。
雖然這些游戲中采用了有趣的操作計(jì)算機(jī)終端的方式,并且可以在開源的系統(tǒng)上運(yùn)行,但它們本身都不是開源的。不過,至少有兩個(gè)游戲采用了嚴(yán)肅且非常有趣的方法來教人們?nèi)绾瓮ㄟ^文本命令與系統(tǒng)進(jìn)行交互。最重要的是,它們是開源的。
Bashcrawl
你可能聽說過《巨洞探險(xiǎn)》游戲,這是一款古老的基于文本的交互式游戲,其風(fēng)格為“自由冒險(xiǎn)”類。早期的計(jì)算機(jī)愛好者們?cè)? DOS 或 ProDOS 命令行上癡迷地玩這些游戲,他們努力尋找有效語法和(如一個(gè)諷刺黑客所解釋的)滑稽幻想邏輯的正確組合來擊敗游戲。想象一下,如果除了探索虛擬的中世紀(jì)地下城之外,挑戰(zhàn)還在于回憶起有效的 Bash 命令,那么這樣的挑戰(zhàn)會(huì)多么有成效。這就是 Bashcrawl 的基調(diào),這是一個(gè)基于 Bash 的地下城探險(xiǎn)游戲,你可以通過學(xué)習(xí)和使用 Bash 命令來玩這個(gè)游戲。
在 Bashcrawl 中,“地下城”是以目錄和文件的形式創(chuàng)建在你的計(jì)算機(jī)上的。你可以通過使用 cd
命令更改目錄進(jìn)入地下城的每個(gè)房間來探索它。當(dāng)你穿行目錄時(shí),你可以用 ls -F 來查看文件,用 cat 讀取文件,設(shè)置變量來收集寶藏,并運(yùn)行腳本來與怪物戰(zhàn)斗。你在游戲中所做的一切操作都是有效的 Bash 命令,你可以稍后在現(xiàn)實(shí)生活中使用它,玩這個(gè)游戲提供了 Bash 體驗(yàn),因?yàn)檫@個(gè)“游戲”是由計(jì)算機(jī)上的實(shí)際目錄和文件組成的。
$ cd entrance/
$ ls
cellar scroll
$ cat scroll
It is pitch black in these catacombs.
You have a magical spell that lists all items in a room.
To see in the dark, type: ls
To move around, type: cd <directory>
Try looking around this room.
Then move into one of the next rooms.
EXAMPLE:
$ ls
$ cd cellar
Remember to cast ``ls`` when you get into the next room!
$
安裝 Bashcrawl
在玩 Bashcrawl 之前,你的系統(tǒng)上必須有 Bash 或 Zsh。Linux、BSD 和 MacOS 都附帶了 Bash。Windows 用戶可以下載并安裝 Cygwin 或 WSL 或試試 Linux。
要安裝 Bashcrawl,請(qǐng)?jiān)?Firefox 或你選擇的 Web 瀏覽器中導(dǎo)航到這個(gè) GitLab 存儲(chǔ)庫。在頁面的右側(cè),單擊“下載”圖標(biāo)(位于“Find file”按鈕右側(cè))。在“下載”彈出菜單中,單擊“zip”按鈕以下載最新版本的游戲。
Download a zip from Gitlab
下載完成后,解壓縮該存檔文件。
另外,如果你想從終端中開始安裝,則可以使用 Git 命令:
$ git clone https://gitlab.com/slackermedia/bashcrawl.git bashcrawl
游戲入門
與你下載的幾乎所有新的軟件包一樣,你必須做的第一件事是閱讀 README 文件。你可以通過雙擊bashcrawl
目錄中的 README.md
文件來閱讀。在 Mac 上,你的計(jì)算機(jī)可能不知道要使用哪個(gè)應(yīng)用程序打開該文件;你也可以使用任何文本編輯器或 LibreOffice 打開它。README.md
這個(gè)文件會(huì)具體告訴你如何開始玩游戲,包括如何在終端上進(jìn)入游戲以及要開始游戲必須發(fā)出的第一條命令。如果你無法閱讀 README 文件,那游戲就不戰(zhàn)自勝了(盡管由于你沒有玩而無法告訴你)。
Bashcrawl 并不意味著是給比較聰明或高級(jí)用戶玩的。相反,為了對(duì)新用戶透明,它盡可能地簡(jiǎn)單。理想情況下,新的 Bash 用戶可以從游戲中學(xué)習(xí) Bash 的一些基礎(chǔ)知識(shí),然后會(huì)偶然發(fā)現(xiàn)一些游戲機(jī)制,包括使游戲運(yùn)行起來的簡(jiǎn)單腳本,并學(xué)習(xí)到更多的 Bash 知識(shí)。此外,新的 Bash 用戶可以按照 Bashcrawl 現(xiàn)有內(nèi)容的示例設(shè)計(jì)自己的地下城,沒有比編寫游戲更好的學(xué)習(xí)編碼的方法了。
命令行英雄:BASH
Bashcrawl 適用于絕對(duì)初學(xué)者。如果你經(jīng)常使用 Bash,則很有可能會(huì)嘗試通過以初學(xué)者尚不了解的方式查看 Bashcrawl 的文件,從而找到勝過它的秘徑。如果你是中高級(jí)的 Bash 用戶,則應(yīng)嘗試一下 命令行英雄:BASH。
這個(gè)游戲很簡(jiǎn)單:在給定的時(shí)間內(nèi)輸入盡可能多的有效命令(LCTT 譯注:BASH 也有“猛擊”的意思)。聽起來很簡(jiǎn)單。作為 Bash 用戶,你每天都會(huì)使用許多命令。對(duì)于 Linux 用戶來說,你知道在哪里可以找到命令列表。僅 util-linux 軟件包就包含一百多個(gè)命令!問題是,在倒計(jì)時(shí)的壓力下,你的指尖是否忙的過來輸入這些命令?
Command Line Heroes: BASH
這個(gè)游戲聽起來很簡(jiǎn)單,它確實(shí)也很簡(jiǎn)單!原則上,它與閃卡相似,只是反過來而已。在實(shí)踐中,這是測(cè)試你的知識(shí)和回憶的一種有趣方式。當(dāng)然,它是開源的,是由 Open Jam 的開發(fā)者開發(fā)的。
安裝
你可以在線玩“命令行英雄:BASH”,或者你也可以從 GitHub 下載它的源代碼。
這個(gè)游戲是用 Node.js 編寫的,因此除非你想幫助開發(fā)該游戲,否則在線進(jìn)行游戲就夠了。
在 Bash 中掃雷
如果你是高級(jí) Bash 用戶,并且已經(jīng)編寫了多個(gè) Bash 腳本,那么你可能不僅僅想學(xué)習(xí) Bash。你可以嘗試編寫游戲而不是玩游戲,這才是真的挑戰(zhàn)。稍加思考,用上一個(gè)下午或幾個(gè)小時(shí),便可以在 Bash 中實(shí)現(xiàn)流行的游戲《掃雷》。你可以先嘗試自己編寫這個(gè)游戲,然后參閱 Abhishek Tamrakar 的文章,以了解他如何完成該游戲的。
有時(shí)編程沒有什么目的而是為了教育。在 Bash 中編寫的游戲可能不是可以讓你在網(wǎng)上贏得聲譽(yù)的項(xiàng)目,但是該過程可能會(huì)很有趣且很有啟發(fā)性。面對(duì)一個(gè)你從未想到的問題,這是學(xué)習(xí)新技巧的好方法。
學(xué)習(xí) Bash,玩得開心
不管你如何學(xué)習(xí)它,Bash 都是一個(gè)功能強(qiáng)大的界面,因?yàn)樗鼓隳軌蛑甘居?jì)算機(jī)執(zhí)行所需的操作,而無需通過圖形界面的應(yīng)用程序的“中間人”界面。有時(shí),圖形界面很有幫助,但有時(shí)你想離開那些已經(jīng)非常了解的東西,然后轉(zhuǎn)向可以快速或通過自動(dòng)化來完成的事情。由于 Bash 基于文本,因此易于編寫腳本,使其成為自動(dòng)化作業(yè)的理想起點(diǎn)。
了解 Bash 以開始走向高級(jí)用戶之路,但是請(qǐng)確保你樂在其中。