GameShell 每一关的 `gsh goal` 中文翻译

说明:这份文件按 GameShell 默认任务顺序整理,依据仓库当前 missions/default.idx 和各子目录中的 goal/en.txt 翻译而成。共享目录(如 !00_shared)不是单独关卡,所以未单列。
版本来源:phyver/GameShell 仓库当前 master 分支。
gsh goto 18:移动到第18关。密码: gsh


1. basic/01_cd_tower

任务目标
前往城堡主塔的顶层。

有用命令
cd LOCATION:移动到给定地点。
备注:cd 是 “change directory” 的缩写。
pwd:显示你当前位置的路径。
备注:pwd 是 “print working directory” 的缩写。
ls:显示当前可进入的位置列表。
备注:ls 是 “list” 的缩写。
gsh check:检查是否完成任务目标。
gsh reset:从头重置本关。

备注
– 命令里出现的大写单词是元变量,你需要把它们替换成合适的实际字符串。
– 大多数文件系统会区分大小写,请确保路径大小写正确。


2. basic/02_cd.._cellar

任务目标
前往城堡的地窖。

次要目标
理解 cd -cd .. 的区别。

有用命令
cd -:跳回你上一次移动前所在的位置。
cd ..:移动到父目录,也就是沿当前路径后退一级。
pwd:查看你当前位置的路径。


3. basic/03_cd_HOME_throne

任务目标
先回到起始位置,然后只用两条命令到达王座大厅。

备注
你可以先随便试很多命令,但要验证成功,必须满足:
– 倒数第二条命令把你带回起点;
– 最后一条命令直接把你带到王座大厅。

有用命令
cd:回到 GameShell 的起始位置。
cd LOCATION1/LOCATION2/LOCATION3:用一条命令连续进入多个路径层级。

备注
命令里出现的大写单词是元变量,需要替换成合适的字符串。


4. basic/04_mkdir_chest

任务目标
在森林里建一个 Hut,然后在这个小屋里建一个 Chest

有用命令
mkdir DIRECTORY:在当前目录中新建一个目录。
备注:mkdir 是 “make directory” 的缩写。


5. basic/05_rm_spiders_cellar

任务目标
回到地窖,把所有蜘蛛清除掉。不要碰蝙蝠:它们出现在城堡纹章上,据说会带来好运。

有用命令
rm FILE1 FILE2 ... FILEn:永久删除这些文件。
备注:rm 是 “remove” 的缩写。


6. basic/06_mv_coins_garden

任务目标
收集城堡前花园里能找到的所有金币,并把它们放进森林小屋里的箱子中。

有用命令
mv FILE1 FILE2 ... FILEn DIRECTORY:把文件移动到指定目录。
备注:mv 是 “move” 的缩写。
~~ 表示初始目录。
例如,不管你当前在哪,~/Tavern 都表示初始目录里的 Tavern 目录(或文件)。


7. basic/07_mv_hidden_coins_garden

任务目标
收集藏在城堡前花园里的所有隐藏金币,并把它们放进你的箱子里(箱子在森林小屋中)。

次要目标
学习使用 Tab 键加快操作。

有用命令
ls -A:列出当前目录中的所有文件,包括隐藏文件。(文件名以点号 . 开头时就是隐藏文件。)
mv .*piec* ~/Foret/Hutte/Coffre/:移动隐藏文件需要键入.
Tab:当你已经输入文件或目录名的开头时,按 Tab 可以自动补全。
Tab-Tab:连续按两次 Tab,可以显示所有可能的补全项。


8. basic/08_rm_wildcard_spiders_cellar

任务目标
清除地窖里四处乱爬的所有蜘蛛。再次提醒,不要打扰蝙蝠。

Shell 通配模式
*:匹配任意长度的字符序列(可以为空)。
?:匹配任意单个字符。
这些通配符可以用来表示当前目录中已有文件/目录的列表。

示例
如果当前文件夹中有:
file-1 Folder-1 file-14 potato

那么:
*file-1 Folder-1 file-14 potato
*1file-1 Folder-1
*o*Folder-1 potato
x* → 报错,没有匹配文件
*-?file-1 Folder-1
*-??file-14


9. basic/09_rm_wildcard_hidden_spiders_cellar

任务目标
蜘蛛变聪明了:它们学会了隐藏。请在不打扰蝙蝠的前提下,把地窖里所有隐藏的蜘蛛清除掉。

Shell 通配模式
*:匹配任意长度字符序列。
?:匹配任意单个字符。

备注
*? 默认匹配不到隐藏文件,所以你需要在模式最前面显式加上一个点号 .


10. basic/10_cp_standard_great_hall

任务目标
你很喜欢城堡大厅里的四面旗帜。直接偷走太显眼了,所以把它们各复制一份(名字相同、内容相同)放进你的箱子。

有用命令
cp FILE DIRNAME:把文件复制到目录中。
备注:cp 是 “copy” 的缩写。


11. basic/11_cp_wildcards_tapestries_great_hall

任务目标
城堡大厅里的挂毯也非常漂亮。请把每一张都复制一份放进你的箱子里。

有用命令
cp FILE1 FILE2 ... FILEn DIRNAME:把多个文件复制到目录中。
备注:cp 是 “copy” 的缩写。

Shell 通配模式
*:匹配任意长度字符序列。
?:匹配任意单个字符。


12. basic/12_cp_ls_mtime_paintings_tower

任务目标
当你在主塔一层闲逛时,看到了几幅极其壮观的画。把其中最旧的一幅复制一份放进你的箱子里。

次要目标
停下来欣赏一下这些画作的惊人美感。

有用命令
ls -l:显示当前目录中文件列表及附加信息,包括最后修改日期。
cat FILE:显示文件内容。


13. misc/01_cal_nostradamus

任务目标
诺查丹玛斯预言,在 $MM-$DD-$YYYY 会出现一次壮观的群星会合。那一天是星期几?知道答案后,运行 gsh check

有用命令
cal:显示当前月份的日历。
cal YEAR:显示给定年份的整年日历。


14. intermediate/01_alias_la

任务目标
每次检查隐藏文件都太慢了!创建一个别名 la,让它执行 ls -A,这样你只用输入两个字母就能列出包括隐藏文件在内的所有文件。
也就是说,把 la 定义为 ls -A 的同义命令,并检查它是否正常工作。幸运的是,你所在的位置正好藏着一块漂亮的石头。

有用命令
alias STRING='COMMAND':给一段字符串创建一个命令别名。


15. misc/02_nano_journal

任务目标
在你的箱子里创建一个名为 journal.txt 的文件,并在里面写一小段文字。你可以把它用作后续任务中的笔记本,记录思路和答案。
注意:journal.txt 是放在 Chest 目录里的文件。你不需要为这一关新建目录。

细节
nano 是一个命令行文本编辑器。以后凡是在 shell 里需要编辑文件时,你都可以使用它。

有用命令
nano FILE:在 shell 中编辑文件。
(如果文件不存在,就会自动创建。)

常用快捷键
Control-x:退出
Control-o:保存
Control-w:搜索字符串

备注
不要使用 Control-sControl-z


16. intermediate/02_alias_journal

任务目标
创建一个别名 journal,这样无论你身在何处,都可以方便地编辑你的日志文件。

细节
例如,如果你在地窖或者王座大厅里,要用 nano 编辑日志文件,就需要输入完整路径:
~/Forest/.../journal.txt
为了避免每次都敲这么长的一串,可以像 alias la='ls -a' 那样创建一个别名。

有用命令
nano FILE:在 shell 中编辑文件。
(如果文件不存在,就会自动创建。)
alias STRING='COMMAND':为字符串创建一个代表命令的别名。
| :把前面的输出传给后面。
; :前后都执行,不管前面成功没成功。
&& :前面成功了,才执行后面。

注意
如果(并且只有当)你知道自己在做什么,你也可以用 EDITOR 变量定义你最喜欢的编辑器,并在别名中使用它。


17. intermediate/03_tab_spider_lair

任务目标
在地窖后方,有一个通向蜘蛛女王巢穴的小洞口。请进入那里,并且只删除蜘蛛女王(不要删别的东西)。

注意
– 你完成这一操作的时间有限:只有 20 秒。
– 你可以用 gsh reset 来重置计时器。
– 另外,本关已禁用 shell 通配模式:你不能使用 *?

有用命令
Tab:输入了文件或目录名的开头后,按 Tab 可以自动补全。
Tab-Tab:连续按两次 Tab,显示所有可能补全项。


18. intermediate/04_bg_xeyes

任务目标
当你在城堡里走动时,总觉得有人在盯着你……如果你转头够快,也许会发现某幅画中的眼睛正在跟着你。
1. 运行 xeyes 命令,然后停止它。
2. 再让 xeyes 在后台运行。

有用命令
xeyes:打开一个会跟随鼠标移动的双眼窗口。
COMMAND &:让命令在后台运行。

补充
Control-c(也写作 ^c):同时按下 Control 和 c,会向当前进程发送 INT(中断)信号,从而打断当前命令。


19. intermediate/05_background

任务目标
国王的烟火师出现在你旁边。他请你至少同时放出 3 个烟花,这样他才能从远处看见。
一个单独烟花可以用魔法命令 $command 生成。
注意:烟火师会在你调用 gsh check 时开始看天。如果你等烟花已经放完才检查,是不会成功的。

有用命令
$command:这个(非标准)命令会生成一个小烟花。
COMMAND &:运行命令,但不等待它结束,命令会在后台执行。
COMMAND1 ; COMMAND2 ; ... ; COMMANDn:按顺序一个接一个执行。
COMMAND1 & COMMAND2 & ... & COMMANDn:并行执行这些命令;除了最后一个外,其余都会立即进入后台。


20. intermediate/06_control-C

任务目标
国王的烟火师正在努力回忆生成压轴大烟花的咒语。这个咒语以 $command 开头,后面必须跟四个随机字母,例如:
$command abcd
$command oops
请帮助烟火师找出能够触发正确烟花的四个字母。

注意
如果四个字母不对,魔法反应可能会持续很久。你需要中断它!
通常要尝试好几次才能找到正确组合。

有用命令
$command CCCC:这个(非标准)命令会生成一些烟花:
– 如果这四个字母是正确的,几秒后烟花就会开始;
– 如果不正确,整个魔法反应会持续很久。
Control-c^c):向当前进程发送 INT 中断信号,打断命令。


21. finding_files_maze/01_ls_cd

任务目标
在花园里的小迷宫中找到那枚铜币,并把它移到你的箱子里。
如果你愿意,也可以使用图形化文件管理器。
迷宫位于目录 $maze 中。


22. finding_files_maze/02_tree

任务目标
用 shell 在花园迷宫中找到银币,并把它移动到你的箱子里。

有用命令
ls -R:递归显示所有文件/目录,包括子目录中的内容。
tree:从当前工作目录开始,以树状结构显示文件和目录。


23. finding_files_maze/03_find_1

任务目标
找到藏在花园迷宫里的金币,并把它们移到你的箱子里。

有用命令
find CONDITION:从当前工作目录开始,查找满足条件的文件。
条件可以有很多种,比如限制文件名、大小、修改日期等。
例如 -name "PATTERN"-iname "PATTERN" 都和文件名匹配有关。
man COMMAND:显示命令手册。

重要按键
q:退出
– 空格:向下翻一页
/STRING:搜索字符串
n:查找下一处匹配

备注
这里对 find 的说明故意写得很简短。你需要去手册里查看更多信息。
(例如你可以在手册中搜索 -name。)


24. pipe_intro_book_of_potions/01_head

任务目标
一位健忘的老隐士名叫 Servillus,他在山洞里扎营,身边放着一本旧皮封面的药剂书。前往山洞,帮助他想起那著名草药茶的配方。
要验证成功,你必须:
– 身处 Servillus 所在的山洞;
– 并且在运行 gsh check 之前的最后一条命令,必须只显示那份配方(包括标题),不能多也不能少。
注意:你不应该修改药剂书的内容。

有用命令
cat FILE:显示文件内容。
head FILE:显示文件前 10 行。
head -n K FILE:显示文件前 K 行。

备注
这里的 “FILE” 可以带路径;如果文件不在当前目录,就需要写路径。


25. pipe_intro_book_of_potions/02_tail

任务目标
老人似乎很喜欢你的陪伴。他邀请你留下共进晚餐,并开始为你们准备一锅美味炖菜。在准备坩埚时,他请你帮忙:把配方中的步骤读给他听。
要验证成功,你必须:
– 身处 Servillus 的山洞;
– 并且在运行 gsh check 之前的最后一条命令,必须只显示配方步骤(不包含标题)。
注意:你不应该修改药剂书的内容。

有用命令
cat FILE:显示文件内容。
tail FILE:显示文件最后 10 行。
tail -n K FILE:显示文件最后 K 行。


26. pipe_intro_book_of_potions/03_cat

任务目标
在清洗碗碟时,Servillus 提到一种有趣的药剂:喝下后可以暂时变成任何人的外貌。请从隐士的药剂书中读出这份配方。
要验证成功,你必须:
– 身处 Servillus 的山洞;
– 并且在 gsh check 之前的最后一条命令,必须显示整份配方(包括标题)。
注意:你不应该修改药剂书的内容。

有用命令
cat FILE1 FILE2 ... FILEn:按顺序显示这些文件的内容。
备注:cat 是 “concatenate” 的缩写。


27. pipe_intro_book_of_potions/04_pipe

任务目标
老隐士注意到你对药剂配方很感兴趣,也觉得你很擅长在配料清单中查找信息。他向你发起挑战:找出“青春药剂”的步骤。
要验证成功,你必须:
– 身处 Servillus 的山洞;
– 并且在 gsh check 之前的最后一条命令,只显示配方步骤,不能多也不能少。
注意:你不应该修改药剂书的内容。

有用命令
cat FILE1 FILE2 ... FILEn:按顺序显示多个文件内容。
tail:从标准输入中取最后 10 行。
tail -n K:从标准输入中取最后 K 行。
COMMAND1 | COMMAND2:把前一个命令的标准输出送入后一个命令的标准输入。
备注:| 因为像水管一样连接数据流,所以叫“管道”。

解释
很多 Unix 命令都处理文本:它们接收文本输入,并产生文本输出。
通常,它们会把结果写到“标准输出”(stdout),默认也就是终端。
多数此类命令既可以从文件读取输入,也可以从“标准输入”(stdin)读取。
例如:
head FILE 从文件读取;
head 从标准输入读取。
默认标准输入来自键盘,但管道可以把它改成来自另一个命令的输出。


28. pipe_intro_book_of_potions/05_pipe_head_tail

任务目标
老隐士口渴了,他想让你帮他找到蒸馏水的配方。
要验证成功,你必须:
– 身处 Servillus 的山洞;
– 并且在 gsh check 之前的最后一条命令,只显示配方步骤,不能多也不能少。
注意:你不应该修改药剂书的内容。

有用命令
head [-n K] [FILE]:显示前几行(默认 10 行;用 -n K 时为 K 行)。如果不给文件,就从标准输入读取。
tail [-n K] [FILE]:显示最后几行(默认 10 行;用 -n K 时为 K 行)。如果不给文件,就从标准输入读取。
COMMAND1 | COMMAND2:把前一个命令的标准输出送到后一个命令的标准输入。

备注
命令描述里放在方括号 [] 中的部分表示可选项,方括号本身不是命令的一部分。


29. processes/01_ps_kill

任务目标
一个淘气的小恶魔施了法,让城堡里到处都出现煤灰污迹。找到这个法术进程,并把它消除掉。

备注
这个法术本质上是一个进程。

有用命令
$PS:列出当前由 shell 启动并正在运行的进程。
kill N:向编号为 N 的进程发送终止信号。
备注:N 叫作 PID,也就是“进程标识符”。
clear:清屏。
快捷键 Control-L 也能清屏,而且通常更快。


30. processes/02_ps_kill_signal

任务目标
这个小恶魔还有更多花样。他设法保护了自己的法术,不让别人轻易破坏。你需要找到这个法术进程,并先尝试用标准信号终止它;如果不行,再使用更强硬的信号。

备注
这个法术是一个进程。

有用命令
$PS:列出当前由 shell 执行的进程。
kill [OPTIONS] N:向编号为 N 的进程发送终止信号。


31. processes/03_pstree_kill

任务目标
小恶魔正在和一位仙女比拼魔法。他们在地窖里相遇:
– 小恶魔不断召唤煤块;
– 仙女则召唤精致的雪花。
请消除小恶魔的法术和地窖里的煤块,但不要碰雪花

备注
不要杀掉小恶魔本体,也不要杀掉仙女。

有用命令
pstree PID:按父子关系显示进程树。
– 如果不给 PID,就显示所有进程的父子关系树。
– 有用选项:-p 显示进程的 PID。
$$:这个变量表示当前 shell 的 PID,可以作为 pstree 的参数。
kill N:向编号为 N 的进程发送终止信号。
备注:N 叫作 PID。


32. stdin_stdout_stderr/01_stdin_additions

任务目标
想在魔法艺术上进步,就必须会心算。准备好吧,Merlin 要测试你的加法准确性了。运行 gsh check 开始。


33. stdin_stdout_stderr/02_stdin_redirection_multiplications

任务目标
想在魔法艺术上进步,就必须会心算。准备好吧,Merlin 要测试你的乘法速度了。运行 gsh check 开始。

备注
现在有时间限制了。

提示
据说图书馆里藏着一些数学书和隐藏卷册。

有用命令
COMMAND < FILE:把命令的标准输入替换成某个文件。
也就是说,命令不再从键盘读入内容,而是从文件中逐行读取。


34. stdin_stdout_stderr/03_stdout_redirection_inventory

任务目标
Merlin 的旧咒语书保存在图书馆中的办公室里。你需要把所有这些咒语书的列表(只要列表,不要别的)保存到抽屉中的一个名为 inventory.txt 的文件里。

有用命令
COMMAND > FILE:把命令输出写入文件,而不是显示到屏幕上。
less FILE:分页显示文件内容。
常用按键:
q:退出
– 空格:向下翻一页
/STRING:搜索字符串
n:跳到下一处匹配
ls FILE1 ... FILEn:显示参数中给出的文件列表。
当你结合通配符使用时,这个命令尤其有用。


35. stdin_stdout_stderr/04_stderr_dev-null_grimoires

任务目标
Merlin 的旧炼金术书籍保存在图书馆的办公室里。你需要输出所有包含炼金化合物 gsh(代表 “Glutathione”)的书名列表。
注意,这个字符串可能混合大小写。
其中有些书被锁住了,你无权查看它们。忽略这些书。

备注
你最后一条命令应该只显示提到 gsh 的书名列表,不能输出别的内容。
尤其不能把具体化合物内容打印出来,也不能出现错误信息。

有用命令
grep STRING FILE1 ... FILEn:在文件中搜索字符串,并打印匹配行。
有趣的选项:
-l:不打印匹配行,只打印包含该字符串的文件名
-i:忽略大小写
COMMAND > FILE:把标准输出(stdout)重定向到文件。
COMMAND 2> FILE:把错误输出(stderr)重定向到文件。
/dev/null:一个“虚拟空文件”,任何写进去的内容都会消失。

解释
每个命令都可能通过两种方式向屏幕输出信息:
– 标准输出(stdout)
– 错误输出(stderr)
默认两者都会显示在屏幕上,但你可以分别把它们重定向到不同文件。


36. stdin_stdout_stderr/05_stdout_stderr_redirection_merlin

任务目标
Merlin 发疯了……他在观星塔里来回踱步,口中喃喃自语。你需要过滤掉他的胡言乱语,找出只有他知道的秘密钥匙。

提示
Merlin 的输出很可能夹杂着很多错误信息。
要完成本关,你必须通过文件重定向的方式提交这把秘密钥匙。

有用命令
./FILE:把一个可执行文件当作程序运行。很显然,Merlin 本人就是“可执行”的。
COMMAND > FILE:把标准输出(stdout)写入文件。
COMMAND 2> FILE:把错误输出(stderr)写入文件。
COMMAND < FILE:把文件内容送入命令的标准输入(stdin)。


37. permissions/01_chmod_x_dir_king_quarter

任务目标
通往国王住处的大门位于王座大厅。请进入国王住处。

备注
城堡这一区域很可能有限制访问权限。

有用命令
ls -l:显示文件及其重要元数据。每行最前面会显示访问权限。
chmod [OPTIONS] FILE:修改文件(或目录)的权限。可用选项请查看手册。


38. permissions/02_chmod_r_file_king_quarter

任务目标
传言国王把保险箱密码写在自己房间里的一张纸条上。请找到这个密码。

备注
国王大概故意把这张纸条设成不可读了!

有用命令
ls -l:显示文件及其重要元数据,最前面是权限信息。
chmod [OPTIONS] FILE:修改文件(或目录)的权限。可用选项请查手册。


39. permissions/03_chmod_rw_file_dir_throne_room

任务目标
王座大厅里的保险箱中放着国王的王冠。把它偷出来,并放进你的箱子里。
另外,王冠底座上刻着一串神秘数字。看看这些数字,并记住它们。

有用命令
ls -l:显示文件及其重要元数据,开头是访问权限。
chmod [OPTIONS] FILE:修改文件(或目录)的权限。请查手册了解选项。


40. finding_files_maze/04_find_2

任务目标
在花园迷宫里寻找红宝石,并把它移到你的箱子里。

提示
文件名里不包含字符串 ruby
因为迷宫里的文件不算太多,一个可行策略是:先找出所有文件(不是目录),然后手动检查哪个文件内容中包含 ruby

有用命令
find:从当前工作目录开始查找文件/目录。可以附加关于名字、大小、修改日期等条件。
– 一个有用条件是:-type TYPE
find . -type f
. :查找起点是“当前目录”
type f :只找普通文件
cat FILE:在屏幕上显示文件内容。
man COMMAND:显示命令手册。

重要按键
q:退出
– 空格:向下翻一页
/STRING:搜索字符串
n:下一处匹配

备注
这里对 find 的说明是故意简略的。更多信息请查手册。
(例如可以搜索 -type。)


41. finding_files_maze/05_find_xargs_grep

任务目标
| 把多个命令组合起来,在迷宫中找到钻石,并把它移到你的箱子里。

备注
文件名里不包含 diamond
你需要找的是内容里包含 diamond 的文件。

有用命令
find:从当前工作目录开始查找文件。可对文件名、大小、修改日期等加条件。
grep [OPTIONS] STRING FILE1 ... FILEn:在文件中搜索字符串。
有用选项:
-l:只输出包含该字符串的文件名。
xargs COMMAND:从标准输入读取多行内容,并把它们作为参数传给命令:
COMMAND LINE1 LINE2 ... LINEn
xargs 在与管道 | 搭配时尤其有用。


42. pipes_merchant_stall/01_pipe_1

任务目标
城堡旁边有一个商人摊位。人们常常赊账,等有钱了再还。店主把每个人的欠款都记在一卷卷轴上;每当某人还清债务,他就会在相应条目旁边写上 PAID
请用 | 把多个命令组合起来,找出国王的欠款。

备注
你最多只能用 3 条命令 找到国王的欠款。
你可以随时用 gsh reset 重置计数,但整个摊位以及所有人的账单都会重新生成。

提示
当没有子目录时,find . -name '*boring_object*' 的一种替代方法是先用 ls,再用 grep 过滤:
ls | grep "boring_object"

有用命令
grep [OPTIONS] STRING FILE1 ... FILEn:过滤文本行,只保留包含指定字符串的行。
如果不给文件,grep 会从标准输入读取。
– 有用选项:-v:只显示不包含该字符串的行。


43. pipes_merchant_stall/02_pipe_2

任务目标
| 把多个命令组合起来,找出尚未付款的条目数量。

备注
你只能使用一条命令
你也可以用 gsh reset 重置计数,但整个摊位会重新生成。

有用命令
grep [OPTIONS] STRING FILE1 ... FILEn:过滤文本行,只保留包含指定字符串的行;如果不给文件,就从标准输入读取。
– 有用选项:-v:只显示不包含该字符串的行。
wc FILE:统计文件的行数、单词数、字符数。
如果不给文件,wc 会统计标准输入中的内容。


44. misc/03_tr_caesar_shift

任务目标
一条秘密消息被发现了,它放在 Merlin 办公室的抽屉里。
它很可能是用凯撒移位加密的。请在命令行中通过穷举的方法把它解密出来。

提示
此前发现的其他秘密消息,移位值都在 10 到 16 之间。

有用命令
tr STRING1 STRING2:把标准输入中每个 STRING1[i] 字符替换成 STRING2[i],并输出结果。
备注:tr 是 “translate” 的缩写。

示例
如果:
STRING1 = "abcdef"
STRING2 = "klmnop"

那么输出中会发生以下替换(其余字符不变):
a -> k
b -> l
c -> m
d -> n
e -> o
f -> p

补充
你也可以用范围写法,例如把 "abcdefg" 写成 "a-g"
这个命令和输入重定向 < 一起使用时特别有用。


45. FINAL_MISSION

恭喜!你已经完成了所有任务。
现在你可以退出 GameShell,或者回到之前的一些旧任务。
使用 gsh HELP 可以查看所有 GameShell 命令的列表。
其中 gsh indexgsh goto N 特别有用。
注意:管理员密码已经改成了 '$password'