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