A GitHub Classroom–ready Linux learning environment
This repository provides a self-contained Linux training environment designed for teaching Linux commands using Docker. It is intended for use with GitHub Classroom, where each student receives a private copy of the repository and completes the exercises inside their own isolated Linux container.
Students on Windows, macOS, or Linux can all run the exact same environment.
All exercises and student tasks are located in INSTRUCTIONS.md.
This repository is configured as a template for GitHub Classroom.
- Create a new Classroom assignment.
- Select this repository as the template repo.
- Distribute the assignment link to students.
- Classroom automatically generates a private repo for each student.
- Students complete tasks inside the Docker environment and push their work.
- Instructors review submissions or use optional autograding.
This repository includes basic autograding support through:
.github/classroom/autograding.json
tests/
By default, the autograder checks:
- Whether the student created
username.txt - Whether the file contains output
- Assigns points based on test success
Additional tests can be added in the tests/ directory and configured via autograding.json.
Students follow INSTRUCTIONS.md, but the essential steps are:
docker build -t linux/env .
docker run -it --name mylinuxenv linux/envExit the container:
exitReturn to it later:
docker start mylinuxenv
docker exec -it mylinuxenv bashlinux_training_environment_playground/
│
├── Dockerfile
├── INSTRUCTIONS.md # Student exercises
├── README.md # Instructor guide
├── VERSION
│
├── exercises/ # Optional exercise files
│ └── myzip.zip
│
├── tests/ # Autograding scripts
│ └── check_username.sh
│
└── .github/
└── classroom/
└── autograding.json
Students completing the exercises will be able to:
- Navigate the Linux filesystem
- Create and manage files and directories
- Use text editors and content viewers
- Work with permissions
- Manage users and groups
- Use search tools (
grep,find) - Understand pipes and redirection
- Inspect and manage processes
- Install packages and explore the system
After updating:
INSTRUCTIONS.mdDockerfiletests/.github/classroom/autograding.json
New Classroom assignments will use the updated version automatically. Already-created student repositories will not update — they remain snapshots.
For major updates, increment the version in the VERSION file.
MIT License. See LICENSE for details.