"GameShell" interactive game for learning Linux shell commands
Change directories... save the world.
A new project has been released which seeks to teach people how to use a UNIX style shell… via a game-like experience.
Dubbed “GameShell”, the developers describe it this way on their GitHub page:
“Teaching first-year university students or high schoolers to use a Unix shell is not always the easiest or most entertaining of tasks. GameShell was devised as a tool to help students at the Université Savoie Mont Blanc to engage with a real shell, in a way that encourages learning while also having fun.”
Installing GameShell on most POSIX-y platforms is extremely simple, as is “playing” it: with the experience is broken down into individual missions — with each mission teaching a new Shell concept or command.
Kudos to the developer! Very cool to see this type of interactive (and fun) tool for teaching people how to work with UNIX-like systems.
What follows is an example of a GameShell session (in this case, Mission 1).
____ ____ _ _ _
/ ___| __ _ _ __ ___ ___/ ___|| |__ ___| | |
| | _ / _` | '_ ` _ \ / _ \___ \| '_ \ / _ \ | |
| |_| | (_| | | | | | | __/___) | | | | __/ | |
\____|\__,_|_| |_| |_|\___|____/|_| |_|\___|_|_|
_
_/ \
_ / \
/ \_ __ /\/\ /\
/ \ / \ / \/ \
/\/\ /\ `--./.'- `-.\
/ \/ ' ^ _ _ _
/\ ____.. YY Y _ |~ _
/._/ _ \_ Y Y [_]--'--[_]
/ / .'/#\_ `-. Y YY |'|""`""|'|
.-_/#@##\ `\"" ' Y | | /^\ | |
" "'"''"'"'''" ' |_|_|I|_|_|
Press Enter to continue.
___________________________________________________________________
/ __ __ \
| / \ Welcome to GameShell! / \ |
|\ \ | | / /|
| \___/| Using and administering a computer running a |\___/ |
| | Unix-like operating system (e.g., Linux, BSD or | |
| | macOS) requires using a command line interface | |
| | called "shell". In this game you will learn how | |
| | to use the shell by journeying through various | |
| | missions that will teach you to perform standard | |
| | tasks such as: | |
| | - creating directories, | |
| | - creating, viewing and editing files, | |
| | - searching for files satisfying certain | |
| | criteria, | |
| | - running and interrupting programs, | |
| | - etc. | |
| | | |
| | During your adventure you will need to visit | |
| | locations, interact with people, and find various | |
| | objects. However, you have to keep in mind that | |
| | these are standard directories, programs, and | |
| | files (often with random contents). So, for | |
| | example: | |
| | - "build a hut" means creating a directory | |
| | called "Hut", and | |
| | - "put a coin in your chest" means moving a file | |
| | called "coin" to a directory called "Chest". | |
| | | |
\ |_______________________________________________________| /
\___/ \___/
Press Enter to continue.
| |
--+---------------------------------------------------+--
| Run the command |
| $ gsh goal |
| to discover your first mission. |
| |
| You can check the mission has been completed with |
| $ gsh check |
| |
| The command |
| $ gsh help |
| displays the list of available (gsh) commands. |
--+---------------------------------------------------+--
| |
[mission 1] $ ls
Castle Forest Garden Mountain Stall
[mission 1] $ cd Castle/
[mission 1] $ ls
Cellar Great_hall Main_building Main_tower Observatory
[mission 1] $ cd Main_tower/
[mission 1] $ ls
First_floor
[mission 1] $ cd First_floor/
[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!
I love the gamified learning paths, it helps introducing almost anybody to learn something