Linux From Scratch - Beginner to Command-Line Contributor¶
From "I have never opened a terminal" to "I can read /etc, write a useful shell script, and contribute small fixes to Linux-adjacent open source projects (sysadmin tools, configs, dotfiles, docs)."
Who this is for¶
- You have never used a terminal, OR
- You can
cdandlsand that's about it.
That's it. If you need to know something, this path will teach it.
Note: this path is different¶
Other "from scratch" paths in this site teach a programming language. Linux is an operating system, not a language. This path teaches:
- The command line - how to use Linux through a terminal.
- The filesystem - where things live and why.
- Permissions, users, processes - the basics of multi-user computing.
- Shell scripting - automating with bash.
- Package management, networking, common admin tasks.
- Reading config files in
/etcand understanding what they do. - Contributing to Linux-adjacent OSS: sysadmin tools, dotfiles, distro docs, small CLI utilities.
We do not teach kernel programming, C, device drivers, or compiling the kernel from source. Those are advanced topics; the platform's "Linux Kernel" path covers them.
What you'll need¶
- A Linux environment. Options:
- Native Linux (Ubuntu, Fedora, Arch, anything).
- macOS - already Unix; most commands work identically.
- Windows - install WSL2 (Windows Subsystem for Linux). Free, runs a full Linux inside Windows.
- A virtual machine (VirtualBox + Ubuntu ISO) if you're cautious.
- A text editor -
nano(in the terminal, beginner-friendly) or VS Code (with the Remote-WSL extension if you're on Windows). - About 5 hours per week. Path is sized for 4-6 months at that pace.
Why Linux¶
- Most servers in the world run Linux. Cloud, containers, Kubernetes, all Linux underneath.
- Free and open. No license cost; thousands of free distros.
- Long-term skill. Linux changes slowly. What you learn now is useful in 10 years.
- Linux-adjacent OSS is huge. Sysadmin tools, dotfiles repos, distro docs, package configurations - endless opportunities to contribute even without being a programmer.
How this path works¶
Same template as the other paths: one concept per page, code/commands shown then walked through, exercise per page, "what you might wonder" Q&A.
The pages¶
| # | Title | What you'll know after |
|---|---|---|
| 00 | Introduction | What we're doing and why |
| 01 | Setup | Linux/WSL/Mac terminal open |
| 02 | The shell - ls, cd, pwd |
Navigating the filesystem |
| 03 | Files and directories | Creating, copying, moving, deleting |
| 04 | Reading files | cat, less, head, tail, wc |
| 05 | Searching | grep, find, locate |
| 06 | Permissions and users | chmod, chown, sudo |
| 07 | Pipes and redirection | Everything-is-a-stream |
| 08 | Processes | ps, top, kill, jobs |
| 09 | Shell scripting basics | bash, variables, if, for |
| 10 | Editing in the terminal | nano, vim (just enough) |
| 11 | Package managers | apt, dnf, brew, where software lives |
| 12 | Networking essentials | curl, ssh, scp, ports |
| 13 | Picking a project | Linux-adjacent OSS candidates |
| 14 | Anatomy of a small project | Case study |
| 15 | Your first contribution | Workflow + PR |
Start with Introduction.
Print this path
Want to read offline or archive? Open the printable version — every section of this path concatenated into one page, styled for paper. Use your browser's Print → Save as PDF.