3个命令行游戏,寓教于乐地学习 Bash

通过这些命令行游戏,学习有用的 Bash 技能会变得很有趣。
237 位读者喜欢这篇文章。
connecting yellow dots in a maze

Opensource.com

学习是件苦差事,没人喜欢工作。这意味着,无论学习 Bash 有多容易,对你来说仍然可能感觉像工作。除非,当然,你通过游戏来学习。

你可能不会认为有很多游戏可以教你如何使用 Bash 终端,而你的想法是对的。资深的 PC 游戏玩家知道,《辐射》系列在避难所中设有基于终端的电脑,这有助于使通过文本与电脑交互的想法正常化,但尽管《辐射》系列的应用或多或少类似于 AlpineEmacs,《辐射》游戏本身并不能教会你可以在现实生活中使用的命令或应用程序。《辐射》系列从未直接移植到 Linux(虽然它可以通过 Steam 的开源 Proton 运行)。然而,作为《辐射》前身的现代《废土》系列 Wasteland series 确实以 Linux 为目标平台,因此,如果你想体验游戏中的终端,你可以在你的 Linux 游戏 PC 上玩 Wasteland 2Wasteland 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 用户可以下载并安装 CygwinWSL尝试 Linux

要安装 Bashcrawl,请在 Firefox 或你选择的 Web 浏览器中导航到 GitLab。在页面右侧,单击 Download 图标(在 Find file 按钮的右侧)。

Download 弹出菜单中,单击 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

游戏很简单:在给定的时间内输入尽可能多的有效命令。听起来很简单。作为 Bash 用户,你每天都使用大量命令。作为 Linux 用户,你知道在哪里可以找到命令列表;仅 util-linux 软件包就包含 100 多个命令!问题是,在倒计时的压力下,你能否立即想到这些命令中的任何一个?

Command Line Heroes: BASH

这款游戏听起来很简单,因为它确实很简单!原则上,它类似于抽认卡,只是反过来而已。实际上,这是一种有趣的测试你的知识和记忆力的方式。当然,它是开源的,由 Open Jam 的创建者开发。

安装

你可以 在线 玩命令行英雄:Bash,或者你可以从 GitHub 下载源代码。

该游戏是用 Node.js 编写的,因此,除非你想帮助开发游戏,否则在线玩游戏更有意义。

Bash 中的扫雷

如果你是高级 Bash 用户,并且已经编写了多个 Bash 脚本,那么你可能已经超越了仅仅学习 Bash 的阶段。为了迎接真正的挑战,你可以尝试编程一个游戏而不是玩游戏。稍加思考并花上一两个下午的时间,流行的游戏 扫雷 就可以完全用 Bash 实现。你可以先尝试自己编写游戏,然后参考 Abhishek Tamrakar 的文章,了解他是如何完成的。

有时编程的目的不是为了其他,而是为了教育。用 Bash 编程一个游戏可能不是你会用来押注你的在线声誉的项目,但这个过程可能很有趣且具有启发意义。而面对你从未预料到的问题是学习新技巧的好方法。

学习 Bash;享受乐趣

无论你如何学习 Bash,它都是一个强大的界面,因为它使你能够直接指示你的计算机执行你想要的操作,而无需通过 GUI 应用程序的“中间人”界面。有时 GUI 非常有用,但有时你想从你非常熟悉的东西毕业,转向你可以快速或通过自动化完成的事情。由于 Bash 是基于文本的,因此很容易编写脚本,使其成为自动化工作的绝佳起点。

学习 Bash,开始成为高级用户。但要确保你乐在其中。

接下来阅读

Bash shell 的诞生

本周的《命令行英雄》播客深入探讨了最广泛使用和事实上的标准脚本语言,以及它作为自由软件一部分的早期灵感……

标签
Seth Kenlon
Seth Kenlon 是一位 UNIX 极客、自由文化倡导者、独立多媒体艺术家和 D&D 爱好者。他曾在电影和计算机行业工作,而且经常同时进行。

8 条评论

写得好,Seth。我最近在 Hacker News 上看过扫雷的实现,并且之前玩过 CLH 游戏,但 Bashcrawl 对我来说是新的,我迫不及待想去试一试!

谢谢你,Seth。我刚刚找到了一份兼职副讲师的工作,将在新的一年教授 Linux 模块入门课程,不确定我的学生是更喜欢玩游戏还是学习,但我知道我会更喜欢玩游戏。

抱歉,这篇文章的第一行让我不想再读下去了。我确实喜欢工作,而且越难越好。毫无疑问,还有很多人也喜欢这样。

抱歉,这条评论的态度让我不想再读下去了。如果你乐在其中,那就不是工作。

回复 作者:ifred(未验证)

ifred,我看不出你的评论是玩笑还是认真的,但我向你保证,这篇文章的第一行旨在表达一种异想天开的想法。我非常喜欢学习(实际上不是“到缺点”;这只是一种常见的表达方式,表示某人非常喜欢某件事),我假设每个(这当然是夸张的;不是字面意义上的 *每个* 人,而是大多数人)阅读本网站上真正优秀(这是虚假的吹牛,表明对网站内容有一定的自豪感)的文章的人也喜欢学习新事物。这篇文章的第一句话实际上只是一种暗示读者可以认同一种常见的比喻(学习是件苦差事),但实际上并不相信这种比喻的方式。

希望这足以澄清意图,让你能够“啃食”(“啃食”并非字面意思上的解构文章,而是将文章中的文字视为你可以处理的东西,类似于雕塑家如何从一块未成形的材料上“啃食”下来,以创造出有意义的东西[并非未成形的材料完全没有意义])这篇文章!

回复 作者:ifred(未验证)

Bashcrawl 的 repo 没有许可证文件。这不好。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.