Skip to content

tysker/linux_training_environment_playground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐧 Linux Training Environment – Docker Playground

A GitHub Classroom–ready Linux learning environment

Docker Linux Bash GitHub Classroom


📚 Overview

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.


🎓 How Instructors Use This Repository

This repository is configured as a template for GitHub Classroom.

  1. Create a new Classroom assignment.
  2. Select this repository as the template repo.
  3. Distribute the assignment link to students.
  4. Classroom automatically generates a private repo for each student.
  5. Students complete tasks inside the Docker environment and push their work.
  6. Instructors review submissions or use optional autograding.

🧪 Autograding (Optional)

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.


🚀 Student Quickstart (Short Version)

Students follow INSTRUCTIONS.md, but the essential steps are:

docker build -t linux/env .
docker run -it --name mylinuxenv linux/env

Exit the container:

exit

Return to it later:

docker start mylinuxenv
docker exec -it mylinuxenv bash

📁 Repository Structure

linux_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

🎯 Learning Goals

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

🔧 Updating the Template Repository

After updating:

  • INSTRUCTIONS.md
  • Dockerfile
  • tests/
  • .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.


📜 License

MIT License. See LICENSE for details.


About

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.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors