A breadth-first variant of the UNIX find command that lists shallow files before deep ones, compatible with POSIX and BSD/GNU find.
phyver/GameShell
A game that teaches standard Unix shell commands by running a real bash session with guided missions.
- Stars
- 3,355
- Forks
- 206
- Open issues
- 14
- Last commit
- 2 months ago
What is it?
GameShell is a learning game for the Unix shell. It runs a standard bash session and defines a series of missions; the game checks the commands you type to decide whether you have completed each mission and can move on. Because the practice happens in a real shell rather than a simulation, the commands and skills carry over to everyday use on a Linux, macOS or BSD system.
The project was built to make Unix shell teaching more engaging for first-year university students and high schoolers. Teachers can generate custom game archives with their own missions, which makes it usable as a classroom exercise. The game is available in English, French and Italian, and missions can be added or translated by following the developer manual.
GameShell is distributed as a self-extracting shell script or a Docker image, and it can be run from GitHub Codespaces or a Dev Container. Some missions need extra tools such as tree, nano or x11-apps, and missions whose dependencies are missing are skipped. Progress is saved to a new archive when you quit, so you can resume later.
Key features
- 01Runs a real bash session, so the commands you practise are the ones you use in practice.
- 02Missions are checked automatically to track progress through the game.
- 03Available in English, French and Italian, with a -L option to choose the language.
- 04Teachers can generate custom game archives with their own missions.
- 05Progress is saved to an archive on exit and can be resumed later.
- 06Can be run via a self-extracting script, a Docker image, or GitHub Codespaces.
Use cases
- Introducing first-year university students or high schoolers to the Unix command line.
- Creating a classroom exercise with custom missions for a shell course.
- Self-study of common shell commands in a hands-on, game-like format.
- Practising shell skills inside a disposable Docker container.
Quick start
- 1
Install dependencies (Debian or Ubuntu)
sudo apt install gettext man-db procps psmisc nano tree ncal x11-apps wget - 2
Download the latest version of the game
wget https://github.com/phyver/GameShell/releases/download/latest/gameshell.sh - 3
Run the game
bash gameshell.sh
Things to know
- Primarily tested on Linux; macOS and BSD have received fewer tests.
- Other systems need manual installation of game dependencies, and missions whose dependencies are missing are skipped.
In collections
Topics
FAQ
- What is GameShell?
- A game that teaches standard Unix shell commands by running a real bash session with guided missions. GameShell is a learning game for the Unix shell. It runs a standard bash session and defines a series of missions; the game checks the commands you type to decide whether you have completed each mission and can move on. Because the practice happens in a real shell rather than a simulation, the commands and skills carry over to everyday use on a Linux, macOS or BSD system.
- Is GameShell free to use? What license does it have?
- GameShell is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is GameShell still maintained?
- Updated within 6 months. The last commit to GameShell was on Sep 21, 2026.
- What can I use GameShell for?
- Introducing first-year university students or high schoolers to the Unix command line. Creating a classroom exercise with custom missions for a shell course. Self-study of common shell commands in a hands-on, game-like format. Practising shell skills inside a disposable Docker container.
- How do I install GameShell?
- Install dependencies (Debian or Ubuntu): sudo apt install gettext man-db procps psmisc nano tree ncal x11-apps wget Download the latest version of the game: wget https://github.com/phyver/GameShell/releases/download/latest/gameshell.sh Run the game: bash gameshell.sh
- Where can I get GameShell?
- The source code and installation instructions are on GitHub: https://github.com/phyver/GameShell
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A TAP-compliant automated testing framework for writing and running tests of Bash scripts and other UNIX programs.
Oils is a bash-compatible shell (OSH) plus a newer, Python-and-JavaScript-style shell language (YSH), written in Python and translated to C++.
A terminal multiplexer that lets you run, manage and detach multiple terminal sessions from a single window.
A searchable reference of 600+ Linux commands with manuals, explanations and learning notes, published as a web site and an npm package.
A cross-platform reimplementation of GNU coreutils in Rust, providing drop-in replacements for commands like ls, cat, and cp.