通過這些命令列遊戲,學習有用的 Bash 技能也是一件樂事。
學習是件艱苦的工作,然而沒有人喜歡工作。這意味著無論學習 Bash 多麼容易,它仍然對你來說就像工作一樣。當然,除非你通過遊戲來學習。
你不會覺得會有很多遊戲可以教你如何使用 Bash 終端吧,這是對的。嚴肅的 PC 遊戲玩家知道,《輻射》系列在金庫中配備了基於終端的計算機,這可以幫你理解通過文字與計算機進行互動是什麼樣子,但是儘管其功能或多或少地類似於 Alpine 或 Emacs,可是玩《輻射》並不會教給你可以在現實生活中使用的命令或應用程式。《輻射》系列從未直接移植到Linux(儘管可以通過 Steam 的開源的 Proton 來玩。)曾是《輻射》的前身的《廢土》系列的最新作品倒是面向 Linux 的,因此,如果你想體驗遊戲中的終端,可以在你的 Linux 遊戲計算機上玩《廢土 2》和《廢土 3》。《暗影狂奔》系列也有面向 Linux 的版本,它有許多基於終端的互動,儘管公認 hot sim 序列常常使它黯然失色。
雖然這些遊戲中採用了有趣的操作計算機終端的方式,並且可以在開源的系統上執行,但它們本身都不是開源的。不過,至少有兩個遊戲採用了嚴肅且非常有趣的方法來教人們如何通過文字命令與系統進行互動。最重要的是,它們是開源的。
你可能聽說過《巨洞探險》遊戲,這是一款古老的基於文字的互動式遊戲,其風格為“自由冒險”類。早期的計算機愛好者們在 DOS 或 ProDOS 命令列上癡迷地玩這些遊戲,他們努力尋找有效語法和(如一個諷刺駭客所解釋的)滑稽幻想邏輯的正確組合來擊敗遊戲。想象一下,如果除了探索虛擬的中世紀地下城之外,挑戰還在於回憶起有效的 Bash 命令,那麼這樣的挑戰會多麼有成效。這就是 Bashcrawl 的基調,這是一個基於 Bash 的地下城探險遊戲,你可以通過學習和使用 Bash 命令來玩這個遊戲。
在 Bashcrawl 中,“地下城”是以目錄和檔案的形式建立在你的計算機上的。你可以通過使用 cd
命令更改目錄進入地下城的每個房間來探索它。當你穿行目錄時,你可以用 ls -F 來檢視檔案,用 cat 讀取檔案,設定變數來收集寶藏,並執行指令碼來與怪物戰鬥。你在遊戲中所做的一切操作都是有效的 Bash 命令,你可以稍後在現實生活中使用它,玩這個遊戲提供了 Bash 體驗,因為這個“遊戲”是由計算機上的實際目錄和檔案組成的。
$ cd entrance/$ lscellar scroll$ cat scrollIt is pitch black in these catacombs.You have a magical spell that lists all items in a room.To see in the dark, type: lsTo move around, type: cd <directory>Try looking around this room.Then move into one of the next rooms.EXAMPLE:$ ls$ cd cellarRemember to cast ``ls`` when you get into the next room!$
在玩 Bashcrawl 之前,你的系統上必須有 Bash 或 Zsh。Linux、BSD 和 MacOS 都附帶了 Bash。Windows 使用者可以下載並安裝 Cygwin 或 WSL 或試試 Linux。
要安裝 Bashcrawl,請在 Firefox 或你選擇的 Web 瀏覽器中導航到這個 GitLab 儲存庫。在頁面的右側,單擊“下載”圖示(位於“Find file”按鈕右側)。在“下載”彈出選單中,單擊“zip”按鈕以下載最新版本的遊戲。
下載完成後,解壓縮該存檔檔案。
另外,如果你想從終端中開始安裝,則可以使用 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 現有內容的範例設計自己的地下城,沒有比編寫遊戲更好的學習編碼的方法了。
Bashcrawl 適用於絕對初學者。如果你經常使用 Bash,則很有可能會嘗試通過以初學者尚不了解的方式檢視 Bashcrawl 的檔案,從而找到勝過它的秘徑。如果你是中高階的 Bash 使用者,則應嘗試一下 命令列英雄:BASH。
這個遊戲很簡單:在給定的時間內輸入盡可能多的有效命令(LCTT 譯註:BASH 也有“猛擊”的意思)。聽起來很簡單。作為 Bash 使用者,你每天都會使用許多命令。對於 Linux 使用者來說,你知道在哪裡可以找到命令列表。僅 util-linux 軟體包就包含一百多個命令!問題是,在倒計時的壓力下,你的指尖是否忙的過來輸入這些命令?
這個遊戲聽起來很簡單,它確實也很簡單!原則上,它與閃卡相似,只是反過來而已。在實踐中,這是測試你的知識和回憶的一種有趣方式。當然,它是開源的,是由 Open Jam 的開發者開發的。
你可以線上玩“命令列英雄:BASH”,或者你也可以從 GitHub 下載它的原始碼。
這個遊戲是用 Node.js 編寫的,因此除非你想幫助開發該遊戲,否則線上進行遊戲就夠了。
如果你是高階 Bash 使用者,並且已經編寫了多個 Bash 指令碼,那麼你可能不僅僅想學習 Bash。你可以嘗試編寫遊戲而不是玩遊戲,這才是真的挑戰。稍加思考,用上一個下午或幾個小時,便可以在 Bash 中實現流行的遊戲《掃雷》。你可以先嘗試自己編寫這個遊戲,然後參閱 Abhishek Tamrakar 的,以了解他如何完成該遊戲的。
有時程式設計沒有什麼目的而是為了教育。在 Bash 中編寫的遊戲可能不是可以讓你在網上贏得聲譽的專案,但是該過程可能會很有趣且很有啟發性。面對一個你從未想到的問題,這是學習新技巧的好方法。
不管你如何學習它,Bash 都是一個功能強大的介面,因為它使你能夠指示計算機執行所需的操作,而無需通過圖形介面的應用程式的“中間人”介面。有時,圖形介面很有幫助,但有時你想離開那些已經非常了解的東西,然後轉向可以快速或通過自動化來完成的事情。由於 Bash 基於文字,因此易於編寫指令碼,使其成為自動化作業的理想起點。
了解 Bash 以開始走向高階使用者之路,但是請確保你樂在其中。