00 - Introduction¶
What this session is¶
A 10-minute read. Sets expectations.
What you're going to be able to do, eventually¶
By the end:
- Open a terminal and navigate the filesystem with confidence.
- Read and edit text files from the command line.
- Manage files and directories - create, copy, move, delete, search.
- Understand users, permissions, and
sudo. - Write small shell scripts that automate routine tasks.
- Install software via your distro's package manager.
- Use
sshto connect to remote servers. - Read configuration files in
/etcand understand them. - Clone a small Linux-adjacent open-source project (a dotfiles repo, a sysadmin tool, a CLI utility), make a small improvement, and submit a pull request.
That last point is the goal.
What this path is NOT¶
This path is not about programming in C, writing kernel modules, compiling the kernel from source, or device drivers. Those are different - covered by the "Linux Kernel" path on this site.
This path is the foundation. The kernel path assumes you can already use Linux comfortably.
The deal¶
- It's slow on purpose. One concept per page.
- It assumes nothing. Every command explained.
- You have to type the commands. Reading without typing won't stick.
- You will get errors. Often. That's normal. Errors aren't scary; they tell you what's wrong.
What you need¶
- A Linux environment:
- macOS - works fine. The terminal is already a Unix shell (zsh by default).
- Linux native (Ubuntu, Fedora, etc.) - perfect.
- Windows - install WSL2 (Windows Subsystem for Linux). Microsoft's official, free, runs a real Linux inside Windows. Search "install WSL2" - Microsoft has a one-command installer.
- A virtual machine - VirtualBox + Ubuntu ISO. Slower; works.
- A text editor - VS Code is fine; we'll also teach
nano(terminal-based, beginner-friendly). - ~5 hours/week.
What you do NOT need¶
- Math.
- A computer-science background.
- A new computer - Linux/WSL/Mac runs on almost anything from the last 10 years.
- Any programming experience.
How long this realistically takes¶
4 to 6 months at 5 hours/week to reach "submit a PR to a Linux-adjacent project."
The first 6 weeks (pages 01-06) are the steepest part - terminal navigation, file management, permissions. After that you're doing useful things and it gets easier.
What success looks like¶
You'll be able to:
- Open a terminal on any Linux system and feel at home.
- Write a small shell script to automate something tedious.
- Understand what a sysadmin's job involves.
- Read most config files in /etc and know what they configure.
- Submit a small PR to a Linux-adjacent project.
You will not be able to: - Write kernel code (different path). - Pass a senior SRE interview (years of experience past this).
What you'll have: the foundation to keep going.
Where this path leads next¶
After this, depending on interest: - Linux Kernel path - go deep. Kernel internals, eBPF, mm, networking. - Container Internals path - Linux primitives (namespaces, cgroups) underlie containers. - Kubernetes path - orchestration on top of Linux. - A programming language path (Python, Go) if you want to write applications.
One last thing before we start¶
The terminal is intimidating. It looks alien. After 2 weeks of daily use it feels normal. After 6 months it feels faster than a GUI for many tasks. Patience.
If a page feels too dense - stop, re-read. Still dense? Skip, come back.
Ready? Next: Setup →