LinuxLingo is a command-line application for learning Linux commands through an interactive shell simulator and a built-in quiz system. It is optimised for Computer Science students who want to build confidence with the Linux command line by typing real commands, seeing real output, and testing their knowledge with quizzes — all within a safe, in-memory virtual file system (VFS) that never touches your real files.
- Shell Simulator — Practice 35 Linux commands (
ls,cd,grep,chmod,find, and more) in a Linux-like environment. Supports piping (|), redirection (>,>>,<), logical operators (&&,||,;), glob expansion, aliases, variable expansion, and command history. - Exam System — Test your knowledge with topic-based quizzes featuring multiple-choice, fill-in-the-blank, and practical (VFS-verified) questions.
- Safe Sandbox — All file operations run on an in-memory virtual file system. No real files are ever created, modified, or deleted.
- Environment Persistence — Save, load, and manage snapshots of your virtual file system across sessions.
Prerequisites: Java 17 or above.
-
Download the latest
LinuxLingo.jarfrom the releases page. -
Open a terminal,
cdinto the folder containing the JAR, and run:java -jar LinuxLingo.jar
-
At the
linuxlingo>prompt, typehelpto see available commands, orshellto enter the Shell Simulator.
You can also run a single command without entering the shell:
java -jar LinuxLingo.jar exec "echo hello"This project uses Gradle for build automation and dependency management (a wrapper is included — use ./gradlew).
./gradlew build # build the project
./gradlew run # run the application
./gradlew test # run the JUnit testsTo run the I/O redirection (Text UI) tests, navigate to the text-ui-test folder and run the runtest(.bat/.sh) script.
Code style is enforced via Checkstyle, and GitHub Actions runs the build and tests automatically on every push and pull request.
- User Guide — Full command reference and usage instructions.
- Developer Guide — Architecture, design decisions, and implementation details.
- About Us — Meet the team.
- AddressBook-Level3 (AB3) — Project structure and Developer Guide format.
- JLine 3 — Tab-completion and command history in the interactive shell.
- Gradle Shadow Plugin — Building fat JARs.
- PlantUML — UML diagram generation.