A couple of years ago, I had to teach the Unix shell to first year university students. I knew how boring such a thing could be, so I wrote a small game to make it more engaging (for the students, and for me). It was originally in French, but I was talked into translating it to English, which is now the default language.
That's the result: https://github.com/phyver/GameShell