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

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

Opensource.com

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

你可能不会认为有很多游戏可以教你如何使用 Bash 终端,你是对的。资深 PC 玩家知道,《辐射》系列在避难所中设有基于终端的电脑,这有助于普及通过文本与电脑交互的想法,但尽管其应用程序或多或少类似于 AlpineEmacs,《辐射》并不能教会你可以在现实生活中使用的命令或应用程序。《辐射》系列从未直接移植到 Linux(尽管可以通过 Steam 的开源 Proton 运行)。然而,作为《辐射》前身的现代《废土》系列确实以 Linux 为目标,因此如果你想体验游戏中的终端,你可以在你的 Linux 游戏 PC 上玩 废土 2废土 3。《暗影狂奔》系列也以 Linux 为目标,它包含大量基于终端的交互,尽管它通常被火爆的 热插拔 序列所掩盖。

虽然这些游戏以有趣的方式对待计算机终端,并且它们在开源系统上运行,但它们本身都不是开源的。然而,至少有两款游戏以严肃且非常有趣的方式来教人们如何通过文本命令与系统交互。最重要的是,它们都是开源的。

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。在页面右侧,单击 下载 图标(在 查找文件 按钮的右侧)。

下载 弹出菜单中,单击 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 的仓库没有许可证文件。这不好。

© . All rights reserved.