Chapter 1 · Lesson 1

Welcome to the Course

You're about to learn the one skill that quietly powers almost every server, cloud platform, and developer workflow on Earth: the Linux command line and Bash. Let's get you oriented — what you'll learn, why it matters, and how to actually finish.

Imagine it's your first week at a new job. Someone messages you: "The app is down — can you SSH into the server and check the logs?" A browser won't help you here. There's no mouse, no windows, no friendly buttons. There's a single blinking cursor:

you@web-01:~$ 

For a lot of beginners, that prompt feels intimidating — a black screen that seems to expect you to already know the magic words. By the end of this course it will feel like home. You'll glide into that server, tail the log, spot the error, and even write a small script so it never bites you the same way again. That blinking cursor isn't a wall; it's the most powerful, precise way to control a computer ever built — and it's about to become yours.

What this course covers

This is a complete, beginner-to-intermediate journey through Linux (the operating system that runs most of the internet) and Bash (the shell language you use to command it and to automate work). We don't assume you've ever opened a terminal. We start from "what even is Linux?" and finish with you writing admin-grade scripts that back up data, monitor system health, and run automatically on a schedule.

The course is organised so each skill builds on the last. Rather than a pile of disconnected commands, you're climbing a ladder — and every rung is something you'll genuinely use:

Your learning path through the course A five-step path from Foundations to the Command Line, then Text and Processes, Shell Scripting, and finally Automation and Projects. From first command to shipped automation 1 · Foundations Setup · what Linux is 2 · Command line Files · permissions 3 · Text & processes grep · pipes · ps 4 · Shell scripting variables · loops · functions 5 · Automation & projects cron · backups · capstones you@linux:~$
The path you'll climb: foundations → the command line → text & processes → writing scripts → automation and real projects.

Concretely, the course spans 18 sections and 76 lessons, plus four capstone projects that mirror real DevOps and sysadmin work. Along the way you'll touch every part of operating a Linux machine: navigating the filesystem, managing files and permissions, taming text and logs with tools like grep and awk, watching and controlling processes, and then turning all of it into reusable, well-tested Bash scripts. You don't need to memorise that list now — just know there's a clear arc, and we never skip a rung.

What you'll be able to do

Goals matter more than topics. Here's the honest, practical version of what you'll walk away able to do — the kind of thing you can put on a résumé and actually back up in an interview or on the job:

  • Operate any Linux box from the keyboard alone. Drop into an unfamiliar server over SSH and find your way around without a graphical desktop.
  • Manage the system with confidence. Files, directories, permissions, users, processes, and services — create, inspect, and fix them safely.
  • Slice and transform text and logs. Answer questions like "which 5 IP addresses hit us most today?" using pipelines of grep, sort, uniq, awk, and sed.
  • Write robust Bash scripts. With variables, conditionals, loops, functions, and real error handling — not fragile one-liners that break on the first surprise.
  • Automate the boring stuff. Schedule jobs with cron, build backup and monitoring tools, and ship scripts a team could rely on.

To make that tangible, here's a tiny taste of the destination. This is the kind of script you'll write effortlessly by Section 14 — don't worry about understanding every line yet, just notice that it reads almost like plain English:

#!/usr/bin/env bash
# backup.sh — archive a folder with today's date in the name
src="$HOME/project"
dest="$HOME/backups/backup-$(date +%Y%m%d).tar.gz"

tar -czf "$dest" "$src"
echo "Backed up $src to $dest"

And running it looks like this:

you@linux:~$ ./backup.sh
Backed up /home/you/project to /home/you/backups/backup-20260614.tar.gz

That's the whole point of the command line and scripting: a few precise lines do work that would take dozens of mouse clicks — and they do it the same way every single time.

💡 Expert Tip

The best Linux users aren't the ones who memorised the most commands — they're the ones who got comfortable looking things up. Every command has a built-in manual (man) and help (--help). We'll lean on those constantly, so you build a habit instead of a fragile memory.

Prerequisites and your environment

The prerequisites are refreshingly small: basic computer literacy. If you can install software, find a downloaded file, and aren't afraid to try things, you're ready. No prior Linux experience and no programming background are required. If you've never written a line of code, that's completely fine — we'll teach the programming concepts (variables, conditions, loops) as we reach them in the scripting sections.

The one thing you do need is a place to practise. You can't learn to swim from the side of the pool, and you can't learn Linux by only reading. You need a real terminal to type into. You have three good options, and all of them land you at the exact same Bash prompt:

Three ways to get a Linux terminal Three options for practising in this course: WSL on Windows, a virtual machine such as VirtualBox, and a cloud server, all leading to the same Bash prompt. Pick one path to a terminal WSL Linux inside Windows Fastest to start Virtual machine VirtualBox · VMware Full, isolated OS Cloud server AWS · DigitalOcean Real-world feel The same Bash prompt you@linux:~$
Three on-ramps, one destination. Whichever you choose, the commands in this course behave identically.
  • WSL (Windows Subsystem for Linux) — if you're on Windows, this is the quickest start. It runs a real Ubuntu inside Windows with no separate machine to manage. You can have a terminal open in minutes.
  • A virtual machine — tools like VirtualBox (free) or VMware run a complete, isolated Ubuntu inside a window on Windows, macOS, or Linux. Great for experimenting freely: if you break it, you delete it and start over.
  • A cloud server — a small Linux instance on AWS, DigitalOcean, or similar, that you reach over SSH. This is closest to how you'll use Linux at work, and many providers offer a free tier or a few dollars a month.

We'll walk through setting one of these up step by step in Lesson 1.3. For this lesson, you just need to decide which one you'll use. If you're on Windows and unsure, pick WSL. If you want a self-contained sandbox, pick a VM. Either is a great choice for the whole course.

📌 Important

We target Ubuntu/Debian defaults throughout the course (the apt package manager, GNU core utilities, and bash as the shell). The vast majority of what you learn transfers to any Linux distribution — only a handful of admin commands differ. Starting with Ubuntu keeps every example reliably copy-pasteable.

How to get the most from this course

Here's an uncomfortable truth about online courses: most people start them and never finish. The difference between starting and finishing is rarely talent — it's method. A few simple habits will carry you all the way to the capstones.

Type every command yourself. Reading ls -lah and running ls -lah are completely different experiences. Your fingers learn the rhythm, you see the real output, and — crucially — you make mistakes and recover from them. That recovery is the skill. Keep a terminal open beside this page and run along with each example.

Go in order, at least the first time. Later sections lean on earlier ones. The scripting in Section 9 assumes you can already move around the filesystem from Section 2 and redirect output from Section 7. Following the sidebar in order means nothing ever feels like it came out of nowhere.

Do the labs and quizzes. Each lesson ends with a hands-on exercise and a short quiz. They're not busywork — they're where the knowledge moves from "I read it" to "I can do it." Mark each lesson complete when you finish so the sidebar tracks your progress and you can always see how far you've come.

Build a tiny daily habit. Thirty focused minutes a day beats a five-hour marathon once a fortnight, because command-line fluency — like a language — comes from repetition. Consistency is the real secret.

⚠️ Common Mistake

The fastest way to scare yourself off Linux is to run a powerful, destructive command before you understand it. The most infamous example:

rm -rf /            # ☠️ NEVER run this — it tries to delete everything

In the very first sessions, practise inside a folder you created (or a throwaway VM), and read what a command does before you run it. We'll cover rm and its dangers properly in Lesson 3.1 — until then, treat any command with rm -rf or sudo with healthy respect. Curiosity is great; reckless deletion is not.

🤔 Reflection

Why are you here? Landing a DevOps role? Becoming a confident sysadmin? Automating a chore that eats your time every week? Write your reason down somewhere you'll see it. On the days motivation dips, a clear "why" is what gets you back to the terminal.

Hands-on Exercise

Two quick commitments to set yourself up for success:

  1. Write down 3 personal goals for this course — specific and measurable. Think "automate my weekly backup," not "get good at Linux."
  2. Decide the environment you'll practise in — WSL, a VM (VirtualBox/VMware), or a cloud server — and note why it fits you.

Keep these somewhere you'll revisit. Even better: jot them straight into a terminal-friendly file so your very first act in this course is creating one.

Show a worked example

Here's a sample set of goals and an environment choice, written into a plain text file from the terminal (don't worry about the exact commands yet — we cover file creation in Section 3):

$ cat > my-goals.txt <<'EOF'
My Linux & Bash goals
=====================
1. By the end of Section 8, comfortably read a server log and find
   the top 5 error messages using pipelines.
2. By Section 14, write a backup.sh that archives my ~/project folder
   nightly via cron and keeps the last 7 copies.
3. Be able to SSH into a cloud server, check disk usage, and restart
   a service without googling every step.

Environment: WSL (Ubuntu) on my Windows laptop — fastest to start,
and it matches the Ubuntu examples used in the course.
EOF

$ cat my-goals.txt        # read it back to confirm it saved

Notice the goals each name a section milestone and a concrete outcome. That's what makes them measurable — and motivating.

Further reading

Lesson Summary
  • The course takes you from "what is Linux?" to writing admin-grade Bash automation across 18 sections and 4 capstones.
  • Prerequisites are minimal — basic computer literacy; no prior Linux or programming needed.
  • Pick one environment — WSL, a VM, or a cloud server — they all reach the same Bash prompt.
  • Finish strong by typing every command, going in order, doing the labs, and practising a little every day.