GameShell
GameShell was designed to teach people how to use the *nix shell. It is an open-source game hosted on GitHub.
Video Walkthrough
Use this video to follow along with the steps in this lab.
Connect and Install
- Start your Linux virtual machine and access the terminal.
- Run the following commands to download then run the game.
ubuntu@ip-172-31-16-60:~$ wget https://github.com/phyver/GameShell/releases/download/latest/gameshell.sh
ubuntu@ip-172-31-16-60:~$ bash gameshell.sh
- You should see the following ASCII art. As instructed, press
enterto continue.
____ ____ _ _ _
/ ___| __ _ _ __ ___ ___/ ___|| |__ ___| | |
| | _ / _` | '_ ` _ \ / _ \___ \| '_ \ / _ \ | |
| |_| | (_| | | | | | | __/___) | | | | __/ | |
\____|\__,_|_| |_| |_|\___|____/|_| |_|\___|_|_|
_
_/ \
_ / \
/ \_ __ /\/\ /\
/ \ / \ / \/ \
/\/\ /\ `--./.'- `-.\
/ \/ ' ^ _ _ _
/\ ____.. YY Y _ |~ _
/._/ _ \_ Y Y [_]--'--[_]
/ / .'/#\_ `-. Y YY |'|""`""|'|
.-_/#@##\ `\"" ' Y | | /^\ | |
" "'"''"'"'''" ' |_|_|I|_|_|
Press Enter to continue.
Playing the Game
- Read the instructions. For example, when asked to "build" something, that means that you should create a directory.
- The game takes over your terminal. It also introduces the
gsh(GameShell) command that manages the game. Use these commands to check your status and get help.
gsh goal
gsh check
gsh help
gsh exit
gsh index
gsh skip
- Note that if you need to skip a mission, GameShell will prompt you for a password. The password is
gsh.
Mission 1 Walkthrough
This section will walk you through mission 1.
- Check your goal.
[mission 1] $ gsh goal
- The goal tells you to go to the top of the main tower of the castle.
- Check your current working directory.
[mission 1] $ pwd
/home/ubuntu/gameshell/World
- List the files and directories.
[mission 1] $ ls
Castle Forest Garden Mountain Stall
- You need to get to the castle's tower. Navigate to the
Castledirectory.
[mission 1] $ cd Castle
- List the files and directories again to see what is inside the Castle.
[mission 1] $ ls
- There is a
Main_towerdirectory. That sounds right. Change directories to it.
[mission 1] $ cd Main_tower
- List again.
[mission 1] $ ls
First_floor
- Change directories again.
[mission 1] $ cd First_floor
- Repeat.
[mission 1] $ ls
Second_floor
[mission 1] $ cd Second_floor
[mission 1] $ ls
Top_of_the_tower
[mission 1] $ cd Top_of_the_tower
[mission 1] $ ls
[mission 1] $ gsh check
Congratulations, mission 1 has been successfully completed!
- The prompt will change to
mission 2automatically. - Continue by checking your new goal.
[mission 2] $ gsh goal
Exit and Resume
- If you need to take a break, you can exit. Your progress will be saved in a new script file called
gameshell-save.sh.
[mission 2] $ gsh exit
- Exiting will save your current game in a new file called
gameshell-save.sh. - You will need to start the gain again with the saved file to continue your progress.
ubuntu@ip-172-31-16-60:~$ bash gameshell-save.sh
Progressing
- If you get stuck, read the friendly manual.
- Check the Linux command cheat sheet.
- If you need to skip a mission, run
gsh skipand enter the passwordgsh. - View your status using the following command. It will show which missions have been completed.
[mission 2] $ gsh index
1 basic/01_cd_tower (completed)
-> 2 basic/02_cd.._cellar
3 basic/03_cd_HOME_throne
4 basic/04_mkdir_chest
Challenge
- How far can you get in the game?
Reflection
- What resources do you find helpful if you feel stuck? Google? ChatGPT? The manual?
- Is gamification a good method for learning technical skills?