Linux 娱乐玩法大揭秘
1. 经典 Unix 游戏体验
在 Linux 系统中,有许多经典的 Unix 游戏可供游玩,这些游戏被收录在 Bsd-games 包中。虽然按照现代标准,它们在感官刺激方面可能有所欠缺,但在过去,它们可是大学校园和计算机实验室的常客,而且现在依然能在任何终端上畅玩,无论是孩子还是怀旧的老玩家都能从中找到乐趣。
1.1 游戏列表
| 游戏名称 | 描述 |
|---|---|
| adventure | 基于肯塔基州的巨洞(Colossal Cave)的文本模拟游戏,由 William Crowther 和 Don Woods 在 20 世纪 70 年代编写,早于 PC 时代的 Zork。更多历史信息可查看 这里 |
| arithmetic | 对一组加减法进行测验,并记录你的答题速度 |
| atc | 空中交通管制模拟游戏 |
| backgammon | 支持单人或双人的西洋双陆棋游戏,附带规则说明 |
| banner | 以长垂直字体输出文本,适合打印大横幅(在 Debian 系统中, banner 包含在 bsdmainutils 包中) |
| battlestar | 具有奇幻主题的文本冒险游戏,由 David Riggle 在 1979 年编写 |
| bcd | 将文本过滤为打孔卡片输出 |
| boggle | 流行的文字游戏 |
| caesar | 解密尤利乌斯·恺撒的密码 |
| canfield | 单人纸牌游戏的变体 |
| cfscores | 显示你的 Canfield 游戏得分 |
| countmail | 以一种“相当讨厌”的方式告诉你有多少邮件 |
| cribbage | 纸牌游戏克里比奇 |
| fish | 儿童纸牌游戏“Go Fish” |
| gomoku | 双人五子棋游戏 |
| hangman | 经典的“猜单词”游戏 |
| hunt | 多人网络游戏,目标是猎杀并消灭其他玩家 |
| mille | 双人纸牌游戏“Mille Bornes” |
| monop | 类似于著名棋盘游戏的财产管理游戏“大富翁” |
| morse | 将文本过滤为摩尔斯电码,默认输出“dit”和“daw”,使用 -s 选项可输出点和划。使用 -d 选项可将摩尔斯电码解码为普通文本 |
| number | 将阿拉伯数字转换为英文 |
| phantasia | 角色扮演奇幻游戏 |
| pig | 将文本过滤为 Pig Latin(一种英语文字游戏),目前没有反向过滤器 |
| pom | 告诉你当前的月相 |
| ppt | 将文本过滤为纸带输出 |
| primes | 输出素数,从 0 开始,到 4,294,967,295 或标准输入给定的数字为止,也可以通过参数指定起始和结束值。例如,要输出 1 到 10 之间的素数,可运行 primes 1 10 |
| quiz | 对各种主题的事实和琐事进行测验 |
| rot13 | 加密和解密 rot13 密码 |
| rain | 显示雨滴落在屏幕上的动画,可通过 -d 选项以毫秒为单位指定延迟时间。例如, rain -d 160 是一个不错的设置 |
| random | 从输入中输出随机行 |
| robots | 射击游戏,你要与杀手机器人战斗 |
| sail | 老式海战的角色扮演游戏 |
| snake | 在收集金钱的同时避开蛇 |
| snscore | 显示蛇游戏的高分 |
| teachgammon | 西洋双陆棋的游戏说明 |
| tetris-bsd | 著名的俄罗斯方块游戏 |
| trek | 太空冒险游戏 |
| wargames | 受电影《战争游戏》(WarGames)启发的全球热核战争游戏 |
| worm | “成长的蠕虫”游戏 |
| worms | 显示蠕虫在屏幕上蠕动的动画 |
| wtf | 解释在线交流中使用的缩写词,虽然不太高级,但能识别一些常见的缩写,如“lol”。如果不知道某个缩写,会尝试使用 whatis 提供帮助 |
| wump | “猎杀乌姆帕斯”(Hunt the Wumpus)冒险游戏,可能是最著名的经典电脑游戏之一 |
1.2 注意事项
在 deb 包中,所有包含程序的原始作者列表位于 /usr/share/doc/bsdgames/AUTHORS 。
2. 文本方言过滤
除了游戏,Linux 系统还提供了一些有趣的文本过滤工具,这些工具可以为文本添加特定的口音或方言,让文本变得更加有趣。
2.1 Gnu Talk Filters
Gnu Talk Filters 是一个专门用于文本方言过滤的包,其中包含了各种过滤器,可将标准输入的文本转换为带有特定方言或口音的文本。
2.2 操作步骤
要将 kraut 过滤器应用到 /etc/motd 文件中的文本,可以使用以下命令:
$ kraut < /etc/motd
这个命令会将 /etc/motd 文件的内容传递给 kraut 过滤器,过滤后的输出将发送到标准输出,而 /etc/motd 文件的内容不会改变。
2.3 其他过滤器
一些可用的方言过滤器包括:
- nyc :为文本添加“纽约客”方言
- newspeak :将真实的表述转换为乔治·奥威尔小说《1984》中思想警察认可的政治正确语言
一些示例文本以及它们通过各种过滤器后的显示方式保存在 /usr/share/doc/filters/SAMPLES 文件中。
虽然这些过滤器主要是为了娱乐,但你也可以编写自己的过滤器,用于一些严肃的目的,例如为出版物的“风格规范”过滤文本。
3. 测试打字速度
你可以通过组合一些工具来测试自己的打字速度。以下是具体的操作步骤:
3.1 操作步骤
在 shell 提示符下,运行 cat 命令并输入一些文本,然后将输出通过管道传递给 wc -w 以获取输入的单词数。在测试前后立即运行 date 命令,将这些命令放在一个列表中执行。
$ date; cat | wc -w; date
例如:
Mon Aug 11 15:14:06 EDT 2003
The quick brown fox jumped over the lazy dog.
<CTRL-D>
9
Mon Aug 11 15:14:12 EDT 2003
在这个例子中,输出的“9”表示用户输入了 9 个单词。通过前后的日期可以知道,用户输入这 9 个单词用了 6 秒钟。你可以使用 bc 或其他计算器将单词数除以打字所用的时间(分钟或秒),从而得到打字速度。
3.2 在 Emacs 中测试
在 Emacs 中,你可以在打字前后运行 time 函数,然后选择输入的文本并将其发送给 wc 以获取单词数。
4. 显示随机名言
在 Linux 系统中,有至少两种方法可以获取随机名言。
4.1 使用 Fortune
Fortune 是一个古老的程序,它可以将“幸运饼干”式的名言输出到标准输出。
操作步骤
要获取一条名言,只需在终端中输入以下命令:
$ fortune
注意事项
这个程序在 Unix 系统上已经存在很长时间了,并且有几种专门的名言数据库可供使用。你甚至可以使用 strfile 命令创建自己的名言文件,包含你自己选择的名言。
4.2 在 Emacs 中获取 Zippy 名言
在 Emacs 中,你可以从漫画角色 Zippy the Pinhead 那里获取随机名言。当你运行 yow 函数时,一条 Zippy 名言会被写入迷你缓冲区。
操作步骤
要获取一条 Zippy 名言,在 Emacs 中输入以下命令:
<ALT-X> yow
5. 文字游戏匹配查找
在 Linux 系统中,有多种工具可以帮助你找到用于文字游戏的单词,如变位词、回文和填字游戏的单词。
5.1 查找变位词
变位词是指由另一个给定单词或短语的所有字符组成的单词或短语,例如“stop”和“tops”都是“pots”的变位词。可以使用 an 工具来查找和输出变位词。
操作步骤
- 输出单词“lake”的所有变位词:
$ an lake
- 输出短语“lakes and oceans”的所有变位词:
$ an 'lakes and oceans'
- 要限制输出的变位词包含某个特定字符串,可以使用
-c选项。例如,输出短语“lakes and oceans”中包含字符串“seas”的变位词:
$ an -c seas 'lakes and oceans'
- 使用
-w选项可以输出由给定单词或短语的部分或全部字母组成的所有单词,这些单词不一定是变位词。例如,输出由单词“seas”的字母组成的所有单词:
$ an -w seas
注意事项
虽然有其他工具可以查找变位词,但 an 是最好的工具之一。不幸的是,它在 Debian 发行版之外并不广泛可用。如果你找不到它,可以从 Debian 包中安装其源代码。
5.2 查找回文
回文是指正向和反向读取都相同的单词或短语,例如“Mom”、“nun”和“Madam, I’m Adam”。以下是几种使用 Perl 单行命令查找回文的方法。
方法一
输出文件中所有回文行的简单 Perl 单行命令:
perl -lne 'map { print if $_ eq reverse } split' file
要检查标准输入中的回文,将文件名指定为 - 。例如,输出系统字典中的所有回文:
$ perl -lne 'print if $_ eq reverse' /usr/dict/words
方法二
输出文件中所有回文行,忽略空格、标点和大小写:
perl -lne '{ $_ = lc; $_ =~ s/\W//g; $_ = reverse; print if $_ eq reverse }' file
例如,输出文件 riddles 中忽略空格、标点和大小写的所有回文行:
$ perl -lne '{ $_ = lc; $_ =~ s/\W//g; $_ = reverse; print if $_ eq reverse }' riddles
5.3 查找填字游戏单词
在 Linux 系统中,有几种方法可以帮助你解决填字游戏。
方法一:浏览系统字典
你可以使用 less 命令并结合 -p 选项来浏览系统字典文件 /usr/dict/words ,从特定的字母或单词前缀开始查找。
- 从匹配模式“dog”的第一个单词开始浏览系统字典:
$ less -pdog /usr/dict/words
- 从单词“cat”开始浏览系统字典:
$ less -p"^cat" /usr/dict/words
此外,你还可以使用 look 命令输出以给定字符串开头的所有单词。例如,列出所有以“anti”开头的单词:
$ look anti
方法二:使用 grep 搜索
如果你知道一个单词的长度或某些位置的字符,可以使用 grep 命令在字典中搜索符合模式的所有单词。使用 -i 选项进行不区分大小写的搜索。
- 输出系统字典中长度为 4 个字符、以字母“z”开头并以“a”结尾的所有单词,不区分大小写:
$ grep -i '^z..a$' /usr/dict/words
- 输出系统字典中长度为 6 个字符、第二个位置为字母“e”、第四个位置为“s”或“o”的所有单词:
$ grep -i '^.e.[so]..$' /usr/dict/words
注意事项
这些方法也适用于拼字游戏和其他文字游戏。在某些系统中,系统字典保存在 /usr/share/dict/words 中。
6. 文本切割
文本切割是一种将文本的物理布局随机重新排列的技术,目的是在重新排列中找到独特或有趣的短语。以下是几种常见的文本切割方法。
6.1 简单文本切割
你可以编写一个 shell 脚本来对文本进行简单的切割,这个脚本演示了 head 、 tail 和 paste 命令的组合使用。
脚本代码
#!/bin/sh
count=`wc -l < $1`
half=`expr $count / 2`
middle=`awk ' if (length($0) > max) max = length($0)
END
OFMT = "%.0f"
print max / 2' $1`
end=`expr $middle + 1`
head -$half $1|cut -b0-$middle > $1.1
tail -$half $1|cut -b0-$middle > $1.3
head -$half $1|cut -b$end-80 > $1.2
tail -$half $1|cut -b$end-80 > $1.4
paste -d "" $1.4 $1.3
paste -d "" $1.2 $1.1
rm $1.1 $1.2 $1.3 $1.4
操作步骤
将上述脚本保存为 cutup ,并赋予执行权限。要对名为 nova 的文件进行切割,只需在终端中输入以下命令:
$ cutup nova
这个脚本会将文件沿水平和垂直方向从中间切割,然后将四个部分重新排列到对角位置,并将切割后的文本输出到标准输出,原始文件不会被修改。
6.2 随机单词切割
Dadadodo 是一个可以生成与输入文本结构和字符相似的随机文本的工具。它在处理较大的文本时效果更好,因为可以分析更多的细节,从而输出更逼真的文本。
操作步骤
要基于文件 nova 中的文本输出随机文本,只需在终端中输入以下命令:
$ dadadodo nova
这个命令会不断输出基于 nova 文件文本的随机文本,直到你使用 <CTRL-C> 中断它。
选项说明
| 选项 | 描述 |
|---|---|
-c integer | 生成指定数量的句子(默认值为 0,表示无限生成直到中断) |
-l filename | 加载文件中的编译数据并使用它来生成文本 |
-o filename | 将分析结果输出到文件中,以便后续使用 |
-p integer | 在段落之间暂停指定的秒数 |
6.3 在 Emacs 中进行切割
在 Emacs 中, dissociated-press 函数可以在一个名为 *Dissociation* 的新缓冲区中对当前缓冲区的文本进行随机切割,原始缓冲区不会被修改。新缓冲区中的文本是通过重叠字符或单词组合当前缓冲区的随机部分生成的,通常会形成听起来合理的句子。该函数会偶尔暂停并询问你是否继续切割。
操作步骤
- 生成当前缓冲区的 Dissociated Press 切割文本:
<ALT-X> dissociated-press
- 始终以 3 个字符重叠生成切割文本:
<CTRL-U> 3 <ALT-X> dissociated-press
- 始终以 1 个单词重叠生成切割文本:
<CTRL-U> -1 <ALT-X> dissociated-press
7. 心理分析模拟
Emacs 有一个特殊的模式 doctor ,它是著名的 eliza 程序的实现。就像“真正的”心理分析一样,你可以倾诉自己的烦恼,医生会进一步询问,而且这里的“治疗”不花一分钱,你想聊多久就聊多久。由于“会话”是在 Emacs 缓冲区中进行的,你还可以将其保存到文件中留作纪念。
操作步骤
要在 Emacs 中开始一次心理分析会话,只需输入以下命令:
<ALT-X> doctor
通过以上这些方法,你可以在 Linux 系统中尽情享受各种娱乐活动,无论是玩游戏、进行文本处理还是进行心理分析模拟,都能找到乐趣。希望你在 Linux 的世界中度过愉快的时光!
8. 娱乐工具总结与对比
为了让大家更清晰地了解这些娱乐工具的特点和用途,下面对前面介绍的工具进行一个总结和对比。
| 工具类型 | 工具名称 | 主要功能 | 操作示例 | 适用场景 |
|---|---|---|---|---|
| 游戏类 | Bsd - games | 包含多种经典 Unix 游戏,如纸牌、冒险、棋盘游戏等 | 安装后直接运行对应游戏名,如 adventure | 休闲娱乐,适合怀旧玩家和儿童 |
| 文本过滤类 | Gnu Talk Filters | 为文本添加特定方言或口音 | kraut < /etc/motd | 娱乐、文本创意处理 |
| 打字测试类 | 组合 cat 、 wc 和 date | 测试打字速度 | date; cat | wc -w; date | 提升打字技能、自我测试 |
| 名言获取类 | Fortune | 输出随机名言 | fortune | 获取灵感、娱乐消遣 |
| 文字游戏匹配类 | an | 查找变位词 | an lake | 文字游戏,如填字、猜词游戏 |
| 文字游戏匹配类 | Perl 单行命令 | 查找回文 | perl -lne 'print if $_ eq reverse' /usr/dict/words | 文字游戏、文本分析 |
| 文字游戏匹配类 | less 、 look 、 grep | 查找填字游戏单词 | less -pdog /usr/dict/words 、 look anti 、 grep -i '^z..a$' /usr/dict/words | 填字游戏、拼字游戏 |
| 文本切割类 | cutup 脚本 | 对文本进行简单切割和重新排列 | cutup nova | 文本创意处理、文学创作 |
| 文本切割类 | Dadadodo | 生成与输入文本相似的随机文本 | dadadodo nova | 文本创意处理、写作灵感启发 |
| 文本切割类 | Emacs 的 dissociated - press 函数 | 在 Emacs 中对文本进行随机切割 | <ALT - X> dissociated - press | Emacs 用户的文本创意处理 |
| 心理分析模拟类 | Emacs 的 doctor 模式 | 模拟心理分析会话 | <ALT - X> doctor | 情绪倾诉、娱乐体验 |
9. 娱乐工具使用流程总结
下面通过 mermaid 流程图来展示使用这些娱乐工具的一般流程:
graph LR
A[选择娱乐类型] --> B{游戏类}
A --> C{文本处理类}
A --> D{打字测试类}
A --> E{名言获取类}
A --> F{文字游戏匹配类}
A --> G{文本切割类}
A --> H{心理分析模拟类}
B --> B1[安装 Bsd - games]
B1 --> B2[运行对应游戏]
C --> C1[安装 Gnu Talk Filters]
C1 --> C2[选择过滤器并处理文本]
D --> D1[执行测试命令]
E --> E1[使用 Fortune 或 Emacs 的 yow 函数]
F --> F1[根据需求选择工具(an、Perl 命令、less 等)]
F1 --> F2[执行查找命令]
G --> G1[选择工具(cutup 脚本、Dadadodo、Emacs 函数)]
G1 --> G2[执行切割操作]
H --> H1[在 Emacs 中启动 doctor 模式]
10. 常见问题解答
在使用这些娱乐工具的过程中,可能会遇到一些问题,下面为大家解答一些常见问题。
10.1 游戏类问题
- 问 :安装 Bsd - games 后,某些游戏无法运行怎么办?
- 答 :首先检查游戏是否正确安装,可以查看安装日志。如果安装正常,可能是缺少依赖库,需要安装相应的依赖库。另外,有些游戏可能需要特定的权限才能运行,可以尝试使用
sudo命令运行。
- 答 :首先检查游戏是否正确安装,可以查看安装日志。如果安装正常,可能是缺少依赖库,需要安装相应的依赖库。另外,有些游戏可能需要特定的权限才能运行,可以尝试使用
- 问 :游戏运行时出现画面显示异常怎么办?
- 答 :检查终端的设置,确保终端支持游戏所需的字符集和显示模式。有些游戏可能对终端大小有要求,可以调整终端窗口的大小。
10.2 文本处理类问题
- 问 :使用 Gnu Talk Filters 时,过滤器没有效果怎么办?
- 答 :检查过滤器是否正确安装,并且输入的命令是否正确。有些过滤器可能对输入文本的格式有要求,可以尝试不同格式的输入文本。
- 问 :在文本切割时,生成的文本不符合预期怎么办?
- 答 :对于
cutup脚本,检查脚本是否正确编写,输入文件的格式是否符合要求。对于 Dadadodo 和 Emacs 的dissociated - press函数,可能是输入文本太短,导致生成的文本不够逼真,可以尝试使用更长的文本。
- 答 :对于
10.3 其他问题
- 问 :在 Emacs 中使用某些功能时,提示命令未找到怎么办?
- 答 :检查 Emacs 的配置文件,确保所需的功能已经正确加载。有些功能可能需要安装额外的插件,可以查看相关文档进行安装。
- 问 :打字测试时,结果不准确怎么办?
- 答 :确保测试环境安静,避免干扰。测试时尽量输入较长的文本,以提高结果的准确性。另外,检查输入的命令是否正确。
11. 总结与展望
通过本文的介绍,我们了解了在 Linux 系统中丰富多样的娱乐方式,从经典的 Unix 游戏到各种文本处理工具,再到心理分析模拟,每一种都有其独特的魅力和用途。这些工具不仅能让我们在闲暇时光找到乐趣,还能在一定程度上提升我们的技能,如打字速度、文字处理能力等。
未来,随着 Linux 系统的不断发展,相信会有更多有趣的娱乐工具出现。开发者们可能会结合人工智能、机器学习等技术,为我们带来更加智能、个性化的娱乐体验。例如,文字游戏工具可能会根据玩家的水平自动调整难度,心理分析模拟可能会更加精准地理解用户的情感。我们可以期待在 Linux 的世界中发现更多的惊喜和乐趣。
希望大家能够积极尝试这些娱乐工具,在 Linux 系统中开启一段丰富多彩的娱乐之旅!
超级会员免费看
1028

被折叠的 条评论
为什么被折叠?



