学习是件苦差事,没人喜欢工作。这意味着,无论学习 Bash 有多容易,对你来说仍然可能感觉像工作。除非,当然,你通过游戏来学习。
你可能不会认为有很多游戏可以教你如何使用 Bash 终端,而你的想法是对的。资深的 PC 游戏玩家知道,《辐射》系列在避难所中设有基于终端的电脑,这有助于使通过文本与电脑交互的想法正常化,但尽管《辐射》系列的应用或多或少类似于 Alpine 或 Emacs,《辐射》游戏本身并不能教会你可以在现实生活中使用的命令或应用程序。《辐射》系列从未直接移植到 Linux(虽然它可以通过 Steam 的开源 Proton 运行)。然而,作为《辐射》前身的现代《废土》系列 Wasteland series 确实以 Linux 为目标平台,因此,如果你想体验游戏中的终端,你可以在你的 Linux 游戏 PC 上玩 Wasteland 2 和 Wasteland 3。《Shadowrun》系列也以 Linux 为目标平台,它有很多基于终端的交互,但不可否认的是,它经常被火爆的 hot sim 序列所掩盖。
虽然这些游戏以有趣的方式对待电脑终端,并且它们在开源系统上运行,但它们本身都不是开源的。然而,至少有两款游戏以严肃且非常有趣的方式来教人们如何通过文本命令与系统交互。最棒的是,它们都是开源的。
Bashcrawl
你可能听说过 Colossal Cave Adventure,这是一款古老的基于文本的交互式游戏,风格类似于“选择你自己的冒险”书籍。早期的计算机爱好者在 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。在页面右侧,单击 Download 图标(在 Find file 按钮的右侧)。
在 Download 弹出菜单中,单击 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 现有内容的示例来设计自己的地牢,并且没有比制作游戏更好的学习编码方法了。
命令行英雄:BASH
Bashcrawl 专为绝对初学者设计。如果你经常使用 Bash,你很可能会尝试通过初学者尚不知道的方式查看文件来智胜 Bashcrawl。如果你是中级或高级 Bash 用户,那么你应该尝试 命令行英雄:BASH。
游戏很简单:在给定的时间内输入尽可能多的有效命令。听起来很简单。作为 Bash 用户,你每天都使用大量命令。作为 Linux 用户,你知道在哪里可以找到命令列表;仅 util-linux 软件包就包含 100 多个命令!问题是,在倒计时的压力下,你能否立即想到这些命令中的任何一个?

这款游戏听起来很简单,因为它确实很简单!原则上,它类似于抽认卡,只是反过来而已。实际上,这是一种有趣的测试你的知识和记忆力的方式。当然,它是开源的,由 Open Jam 的创建者开发。
安装
你可以 在线 玩命令行英雄:Bash,或者你可以从 GitHub 下载源代码。
该游戏是用 Node.js 编写的,因此,除非你想帮助开发游戏,否则在线玩游戏更有意义。
Bash 中的扫雷
如果你是高级 Bash 用户,并且已经编写了多个 Bash 脚本,那么你可能已经超越了仅仅学习 Bash 的阶段。为了迎接真正的挑战,你可以尝试编程一个游戏而不是玩游戏。稍加思考并花上一两个下午的时间,流行的游戏 扫雷 就可以完全用 Bash 实现。你可以先尝试自己编写游戏,然后参考 Abhishek Tamrakar 的文章,了解他是如何完成的。
有时编程的目的不是为了其他,而是为了教育。用 Bash 编程一个游戏可能不是你会用来押注你的在线声誉的项目,但这个过程可能很有趣且具有启发意义。而面对你从未预料到的问题是学习新技巧的好方法。
学习 Bash;享受乐趣
无论你如何学习 Bash,它都是一个强大的界面,因为它使你能够直接指示你的计算机执行你想要的操作,而无需通过 GUI 应用程序的“中间人”界面。有时 GUI 非常有用,但有时你想从你非常熟悉的东西毕业,转向你可以快速或通过自动化完成的事情。由于 Bash 是基于文本的,因此很容易编写脚本,使其成为自动化工作的绝佳起点。
学习 Bash,开始成为高级用户。但要确保你乐在其中。
8 条评论