Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
281 changes: 249 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,64 +1,281 @@
# Learn Linux
<div align="center">

A practical, open-source Linux course from The Tech Hustle for learners who want to operate real systems, not just memorize commands.
<img src="docs/assets/images/linux-course-mark.svg" width="110" alt="Learn Linux" />

![Learn Linux operator loop](docs/assets/images/operator-loop.svg)
<h1>Learn Linux</h1>

## What changed
<p><strong>The free, open-source, operator-first Linux course — built for the culture. 🐧</strong></p>

This repository is now structured as a full course site powered by [MkDocs Material](https://squidfunk.github.io/mkdocs-material/). The course includes a modern landing page, searchable lesson navigation, lab setup guidance, a syllabus, glossary, capstone project, QA checklist, and repeatable build commands.
<p><em>276 lessons &nbsp;·&nbsp; 31 chapters &nbsp;·&nbsp; 4 learning tracks &nbsp;·&nbsp; no cost, no gatekeeping</em></p>

## Course focus
<p>
<a href="https://thetechhustle.github.io/learn_linux/">
<img alt="Course Site" src="https://img.shields.io/badge/Course%20Site-Live-0f766e?style=for-the-badge&logo=bookstack&logoColor=white" />
</a>
<img alt="Lessons" src="https://img.shields.io/badge/Lessons-276-111827?style=for-the-badge&logoColor=white" />
<img alt="Chapters" src="https://img.shields.io/badge/Chapters-31-111827?style=for-the-badge&logoColor=white" />
<a href="LICENSE">
<img alt="License MIT" src="https://img.shields.io/badge/License-MIT-7c3aed?style=for-the-badge" />
</a>
<a href="https://github.com/thetechhustle/learn_linux/stargazers">
<img alt="Stars" src="https://img.shields.io/github/stars/thetechhustle/learn_linux?style=for-the-badge&logo=github&color=f59e0b&label=Stars" />
</a>
</p>

Learn Linux teaches the operator loop:
<br/>

1. Inspect the system.
2. Make the smallest safe change.
3. Verify with evidence.
4. Document the result.
5. Automate what becomes repeatable.
<a href="https://thetechhustle.github.io/learn_linux/"><strong>🚀 Launch the Course</strong></a>
&nbsp;&nbsp;·&nbsp;&nbsp;
<a href="https://thetechhustle.github.io/learn_linux/course/syllabus/"><strong>📚 View the Syllabus</strong></a>
&nbsp;&nbsp;·&nbsp;&nbsp;
<a href="https://thetechhustle.github.io/learn_linux/course/glossary/"><strong>📖 Glossary</strong></a>
&nbsp;&nbsp;·&nbsp;&nbsp;
<a href="#-contribute--community"><strong>🤝 Contribute</strong></a>

The lessons cover Linux fundamentals, shell usage, packages, users, permissions, processes, filesystems, logs, networking, routing, DNS, storage, containers, CI/CD, security, monitoring, performance analysis, and operations practice.
<br/><br/>

## Run locally
<img src="docs/assets/images/operator-loop.svg" width="480" alt="The Linux operator learning loop: Inspect → Change → Verify → Document → Automate" />

```bash
python3 -m pip install -r requirements.txt
mkdocs serve
</div>

---

## For the culture 🔥

If you've been **grinding to break into tech** — switching careers, self-teaching, coming up through bootcamps, or just tired of not knowing Linux on the job — this course was built with you in mind.

Linux is the foundation of the cloud, DevOps, SRE, cybersecurity, and backend engineering. It's the skill that separates people who use systems from people who **operate and own** them.

This is not a YouTube playlist. Not a tutorial you forget in a week. This is a **complete, structured, operator-first path** from zero to production-confident — free, forever, open source.

> **The Tech Hustle** is about closing the knowledge gap. We build what should have already existed.

---

## 🎯 Who Is This For?

| If you are... | This course gives you... |
|---|---|
| 🆕 **New to Linux** | A structured path from zero — every concept introduced before it's used |
| 🖥️ **Help desk / support tech** | The ops skills to move into infrastructure and SRE roles |
| 👩‍💻 **Software engineer** | Production literacy — logs, processes, networking, deployments |
| ☁️ **Cloud / DevOps / SRE learner** | Depth across storage, security, containers, CI/CD, and monitoring |
| 🔐 **Cybersecurity learner** | Linux fundamentals, access control, firewalls, SSH hardening, and auditing |

**No prior Linux admin experience assumed.** If you can open a terminal and type, you're ready.

---

## 🧠 The Operator Loop

Every lesson trains the same five-step habit professionals use on real systems:

```
Inspect → Change → Verify → Document → Automate
```

Then open `http://127.0.0.1:8000`.
You will not just run commands. You will **understand what you're looking at**, make deliberate changes, confirm the result with evidence, and document it clearly enough for a teammate to continue. That habit is what gets you hired — and keeps you trusted.

---

## 📚 What's Inside

### Four learning tracks — one continuous path

```
┌────────────────────────────────────────────────────────────────────┐
│ TRACK 1 · Foundations Chapters 1–8 │
│ Distributions · Shell · Filesystem · Processes │
│ Packages · Users · Permissions · Scripting │
├────────────────────────────────────────────────────────────────────┤
│ TRACK 2 · Services & Infrastructure Chapters 9–19 │
│ Cloud · Logging · Kernel · Networking · Routing │
│ DNS · Identity · Email · Web Hosting │
├────────────────────────────────────────────────────────────────────┤
│ TRACK 3 · Operations Depth Chapters 20–29 │
│ Storage · NFS · SMB · Config Management │
│ Virtualization · Containers · CI/CD │
│ Security · Monitoring · Performance │
├────────────────────────────────────────────────────────────────────┤
│ TRACK 4 · Professional Practice Chapters 30–31 │
│ Data Center Basics · Policy · Methodology │
│ Documentation · Service Management │
└────────────────────────────────────────────────────────────────────┘
```

<details>
<summary><strong>📋 All 31 Chapters — click to expand</strong></summary>

<br/>

| # | Chapter | Key Skills |
|---|---|---|
| 01 | Where to Start | Distributions, notation, man pages, hosting options |
| 02 | Booting & System Management | GRUB, systemd, daemons, boot recovery |
| 03 | Access Control & Rootly Powers | Permissions, sudo, ACLs, least privilege |
| 04 | Process Control | ps, top, signals, proc filesystem, cron |
| 05 | The Filesystem | File tree, mounting, pathnames, attributes |
| 06 | Software Installation | apt, dnf, package systems, FreeBSD ports |
| 07 | Scripting & the Shell | Bash, Python, Ruby, regex, Git |
| 08 | User Management | passwd, shadow, groups, PAM, centralized accounts |
| 09 | Cloud Computing | Cloud context, VPS, platform choices, cost control |
| 10 | Logging | syslog, journald, log rotation, logs at scale |
| 11 | Drivers & the Kernel | Kernel config, modules, booting, devices |
| 12 | Printing | CUPS, administration, troubleshooting |
| 13 | TCP/IP Networking | Packets, addressing, DHCP, firewalls, NAT |
| 14 | Physical Networking | Ethernet, wireless, SDN, network design |
| 15 | IP Routing | Packet forwarding, routing daemons, protocols |
| 16 | DNS | BIND, zones, security, split DNS, debugging |
| 17 | Single Sign-On | LDAP, directory login, SSO alternatives |
| 18 | Electronic Mail | SMTP, Postfix, Exim, Sendmail, spam |
| 19 | Web Hosting | Apache, Nginx, HAProxy, HTTP, cloud hosting |
| 20 | Storage | LVM, RAID, ZFS, Btrfs, partitioning, backups |
| 21 | Network File System | NFS server/client, NFSv4, automounting |
| 22 | SMB | Samba, SMB mounts, browsing, security |
| 23 | Configuration Management | Ansible, Salt, IaC best practices |
| 24 | Virtualization | VMware, VirtualBox, bhyve, Vagrant, Packer |
| 25 | Containers | Docker, Podman, clustering |
| 26 | CI/CD | Pipelines, Jenkins, container CI/CD |
| 27 | Security | SSH hardening, firewalls, VPN, cryptography |
| 28 | Monitoring | Metrics, alerting, SNMP, monitoring platforms |
| 29 | Performance Analysis | Tuning, load analysis, slow server diagnosis |
| 30 | Data Center Basics | Racks, power, cooling, reliability tiers |
| 31 | Methodology, Policy & Politics | DevOps, SLAs, ticketing, compliance, documentation |

</details>

---

## ⏱️ Time Commitment

| Goal | Estimate |
|---|---|
| Single lesson | 20–40 minutes |
| Full chapter | 2–5 hours |
| Complete course | 80–120 hours |
| Capstone project | +4–8 hours |

Move at your own pace. Skip topics you already know. Slow down and repeat labs where things feel uncertain. There are no gates.

---

## ⚡ Quick Start

You can also use the Makefile:
**Option 1 — Read on the web (no setup needed)**

👉 **[thetechhustle.github.io/learn_linux](https://thetechhustle.github.io/learn_linux/)**

<br/>

**Option 2 — Run the course locally**

```bash
# Clone
git clone https://github.com/thetechhustle/learn_linux.git
cd learn_linux

# Install and serve
make install
make serve
```

## Build
Then open **[http://127.0.0.1:8000](http://127.0.0.1:8000)** in your browser. Full search, dark mode, and offline reading — all included.

<br/>

**Option 3 — Build a static copy**

```bash
mkdocs build --strict
# Output goes to site/
```

## Repository layout
---

## 🏁 Lesson Structure

Every lesson answers five questions:

1. **What is this concept?** — Clear definition, no assumed knowledge
2. **Why does it matter in real operations?** — The incident it prevents or the problem it solves
3. **What commands or files help you inspect it?** — Read-only first, always
4. **What safe practice can you run in a lab?** — Hands-on, reversible, documented
5. **How would you explain the result to a teammate?** — Communication is part of the skill

---

## 🎓 Capstone Project

When you reach the end of the course, the [capstone](https://thetechhustle.github.io/learn_linux/course/capstone/) challenges you to:

- Provision a VM or cloud instance from scratch
- Install and configure a small internal web service
- Set up a firewall, user accounts, and SSH hardening
- Configure logging and a basic monitoring check
- Deliberately break the service and document the recovery
- Produce a handoff document another operator can follow

No submission. No grading. It's proof to yourself — and evidence you can show anyone else.

---

## 🛠️ Lab Safety

> Many Linux commands can change system state permanently.

Always practice in a **VM, container, cloud sandbox, or spare machine** — never on a system you care about until you understand the rollback path. The [Lab Setup guide](https://thetechhustle.github.io/learn_linux/course/lab-setup/) has everything you need to get a safe environment running in under 30 minutes.

---

## 🤝 Contribute & Community

This course is open source and community-maintained. Every improvement matters.

**Ways to contribute:**
- 🐛 [Open an issue](https://github.com/thetechhustle/learn_linux/issues) — broken link, outdated command, unclear explanation
- ✍️ [Submit a PR](https://github.com/thetechhustle/learn_linux/pulls) — improve a lesson, add a field story, extend the glossary
- ⭐ [Star the repo](https://github.com/thetechhustle/learn_linux/stargazers) — helps other learners find the course
- 📣 Share it — pass it to someone who needs it

**Before contributing,** check the [QA Checklist](docs/project/qa-checklist.md) to understand how lessons are structured and validated.

---

## 📂 Repository Layout

```text
docs/
index.md # Course landing page
course/ # Overview, setup, syllabus, glossary, capstone
lessons/ # Chapter and lesson Markdown
project/ # Modernization notes and QA checklist
assets/ # Course visuals
mkdocs.yml # Static course site configuration
scripts/modernize_course.py # Repeatable content cleanup/enrichment script
├── index.md # Course landing page
├── course/ # Overview, syllabus, glossary, lab setup, capstone
├── lessons/ # 31 chapter directories, 276 lesson files
├── assets/ # SVG visuals
└── project/ # Modernization notes, QA checklist
mkdocs.yml # Course site configuration (MkDocs Material)
Makefile # install / serve shortcuts
requirements.txt # Python dependencies
```

## Modernization notes
---

## 📜 License

**MIT** — Free to use, share, fork, and build on. See [LICENSE](LICENSE).

---

<div align="center">

<br/>

**Built with love by [The Tech Hustle](https://github.com/thetechhustle) community.**

*If this helped you, star it. If you know someone who needs it, share it.*
*The knowledge was always yours to have.*

See [docs/project/modernization-notes.md](docs/project/modernization-notes.md) for the concern log and implementation decisions.
<br/>

## License
[![Star this repo](https://img.shields.io/github/stars/thetechhustle/learn_linux?style=social)](https://github.com/thetechhustle/learn_linux/stargazers)
&nbsp;&nbsp;
[![Fork this repo](https://img.shields.io/github/forks/thetechhustle/learn_linux?style=social)](https://github.com/thetechhustle/learn_linux/fork)

MIT. See [LICENSE](LICENSE).
</div>
Loading