Skip to content

devstuffs - Learn DevOps, Linux and More

Join the chat with devstuffs author and the community↗

Learn Linux and DevOps Concepts — by actually running them.

devstuffs teaches administrative and DevOps skills the way you’ll actually use them. Every chapter ships a working example, a safety gotcha worth knowing, and commands you can copy straight into a terminal.


Featured Courses

Four courses, each fully self-contained. Jump into any chapter without reading the others first.

~/courses/linux

Linux Fundamentals

The filesystem, permissions, and process model that every other course assumes you already have. New to Linux? This is where you start.

Foundational
Start course →
~/courses/shell-scripting

Shell Scripting

30+ chapters across different sections — from your first script to safe, debuggable automation. Bash-specific, not POSIX sh.

Core skill
Start course →
~/courses/docker

Docker

Build, run, and manage containers using the modern docker container / docker image CLI — fundamentals only, no orchestration.

Core skill
Start course →
~/courses/ansible

Ansible

~100 chapters, 20+ sections. Configuration management and automation, run against a real two-host lab throughout.

Advanced
Start course →

Suggested Learning Path

You can start anywhere, but if you're building from zero, this is the order the material assumes.

1Linux Fundamentals
→
2Bash Scripting
→
3Ansible
→
4Terraform
→
5Docker
→
6Kubernetes

How Chapters Are Built

The same three rules apply to every chapter on the site.

1

Broken first, then fixed

Anywhere correctness or safety is at stake, you see the naive version fail before you see the corrected one — not the other way around.

2

Every example is pre-baked

Copy-paste the whole thing. No "add your logic here." Cleanup commands included, so your machine ends up exactly how it started.

3

Chapters stand alone

Arrived from a search result instead of the start of the course? Most chapters stand alone. In not, relevant reference is provided.

✕ naive
rm -rf $BUILD_DIR

If BUILD_DIR is unset or empty, this expands to rm -rf against the current directory.

✓ corrected
rm -rf -- "${BUILD_DIR:?BUILD_DIR is not set}"

Quoted, guarded against a missing value, and -- stops a leading dash from being read as a flag.

Pick a course, open a terminal.

No signup wall to start reading. Every chapter is on the site.