https://github.com/phyver/GameShell Skip to content Sign up * Product + Features + Mobile + Actions + Codespaces + Packages + Security + Code review + Issues + Integrations + GitHub Sponsors + Customer stories * Team * Enterprise * Explore + Explore GitHub + Learn and contribute + Topics + Collections + Trending + Learning Lab + Open source guides + Connect with others + The ReadME Project + Events + Community forum + GitHub Education + GitHub Stars program * Marketplace * Pricing + Plans + Compare plans + Contact Sales + Education [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this user All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up {{ message }} phyver / GameShell Public * Notifications * Fork 28 * Star 500 a game to learn (or teach) how to use standard commands in a Unix shell License GPL-3.0 license 500 stars 28 forks Star Notifications * Code * Issues 12 * Pull requests 2 * Actions * Projects 0 * Wiki * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Wiki * Security * Insights This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. master Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags 3 branches 16 tags Code Latest commit @phyver phyver new command to regenerate all the static parts of the world ... bbf058b Apr 26, 2022 new command to regenerate all the static parts of the world ``gsh resetstatic`` re-sources all the static.sh files bbf058b Git stats * 880 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .github/workflows add dockerfile to release Sep 24, 2021 art Add illustration to the README. May 27, 2021 doc added doc about skip files Jan 11, 2022 i18n new command to regenerate all the static parts of the world Apr 26, 2022 lib new command to regenerate all the static parts of the world Apr 26, 2022 missions explain that a "FILE" may contain directories Apr 1, 2022 scripts new command to regenerate all the static parts of the world Apr 26, 2022 utils old bug in new_mission.sh Apr 26, 2022 .gitignore replace .var by .tmp in .gitignore Jun 21, 2021 Dockerfile fix: dependency requirement Oct 28, 2021 LICENSE Use standard name for the LICENSE file May 27, 2021 Makefile test both bash and zsh in tests.yml Jul 1, 2021 README-fr.md small change to skip / goto Jan 11, 2022 README.md small change to skip / goto Jan 11, 2022 start.sh check that Gameshell isn't run as root Apr 1, 2022 View code [ ] GameShell: a "game" to teach the Unix shell Getting started Documentation Who is developing GameShell? Developers Mission contributors Special thanks Licence README.md GameShell: a "game" to teach the Unix shell Illustration inspired by the game 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 Universite Savoie Mont Blanc to engage with a real shell, in a way that encourages learning while also having fun. The original idea, due to Rodolphe Lepigre, was to run a standard bash session with an appropriate configuration file that defined "missions" which would be "checked" in order to progress through the game. Here is the result... Feel free to send us your remarks, questions or suggestions by opening issues or submitting pull requests. We are particularly interested in any new missions you might create! Getting started Note: GameShell is currently undergoing heavy development: the current version has not been field tested by students. Do not hesitate to report any problems you might encounter or suggestions you might have by opening an issue. GameShell should work on any standard Linux system, and also on macOS and BSD (but we have run fewer tests on the latter systems). On Debian or Ubuntu, the only dependencies (besides bash) are the gettext-base and awk packages (the latter is generally installed by default). Some missions have additional dependencies: these missions will be skipped if the dependencies are not met. On Debian or Ubuntu, run the following command to install all game and mission dependencies. $ sudo apt install gettext man-db procps psmisc nano tree bsdmainutils x11-apps wget Check the user manual to see how to install the game dependencies on other systems (macOS, BSD, ...). Assuming all the dependencies are installed, you can try the latest version of the game by running the following two commands in a terminal. $ wget https://github.com/phyver/GameShell/releases/download/latest/gameshell.sh $ bash gameshell.sh The first command will download the latest version of the game in the form of a self-extracting archive, and the second command will initialise and run the game from the downloaded archive. Instructions on how to play are provided in the game directly. Note that when you quit the game (with control-d or the command gsh exit) your progression will be saved in a new archive (called GameShell-save.sh). Run this archive to resume the game where you left it. If you prefer not running foreign shell scripts on your computer, you can generate a Docker image with the following: $ mkdir GameShell; cd GameShell $ wget --quiet https://github.com/phyver/GameShell/releases/download/latest/Dockerfile $ docker build -t gsh . $ docker run -it gsh The game will NOT be saved when you exit, and additional flags are required if you want to run X programs from inside GameShell. Refer to this section of the user manual. Documentation To find out more about GameShell, refer to the following documents: * The user manual provides information on how to run the game on all supported platforms (Linux, macOS, BSD), explains how to run the game from the sources, tells you how to generate custom game archives (which is useful if you want to use GameShell for teaching a class), and more. * The developer manual provides information on how to create new missions, how to translate missions, and how to participate in the development of the game. Who is developing GameShell? Developers The game is currently being developed by: * Pierre Hyvernat (main developer, pierre.hyvernat@univ-smb.fr), * Rodolphe Lepigre. Mission contributors * Pierre Hyvernat * Rodolphe Lepigre * Christophe Raffalli * Xavier Provencal * Clovis Eberhart * Sebastien Tavenas * Tiemen Duvillard Special thanks * All the students who found many bugs in the early versions. * Joan Stark (a.k.a, jgs), who designed hundreds of ASCII-art pieces in the late 90s. Most of the ASCII-art encountered in GameShell are due to her. Licence GameShell is released under the GPLv3. Please link to this repository if you use GameShell. GameShell is open source and free to use. One way you can acknowledge the work it required is by sending an actual postcard to Pierre Hyvernat Laboratoire de Mathematiques, CNRS UMR 5127 Universite de Savoie 73376 Le Bourget du Lac FRANCE About a game to learn (or teach) how to use standard commands in a Unix shell Resources Readme License GPL-3.0 license Stars 500 stars Watchers 8 watching Forks 28 forks Releases 16 v0.3.1 Latest Jul 9, 2021 + 15 releases Packages 0 No packages published Contributors 8 * @phyver * @rlepigre * @pamputt * @oupala * @DaarkMoon * @laplongejunior * @Oumph * @bdchilton Languages * Shell 68.7% * Makefile 18.6% * Awk 7.4% * C 4.9% * Dockerfile 0.4% * (c) 2022 GitHub, Inc. * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time. You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.