Skip to content

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 cd and ls and 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 /etc and 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.