A hands-on, command-line Linux course — navigate the filesystem, manage files and permissions, control users and processes, install software, run services with systemd, manage disks, work the network over SSH, troubleshoot a live machine, and automate it all with shell scripts. Every lesson is commands you run.
Before you start
You need a Linux shell to run the commands in. Pick whichever fits your machine:
Windows
Install WSL (Windows Subsystem for Linux). It gives you a real Ubuntu terminal inside Windows. Run this in PowerShell as Administrator, then restart and launch Ubuntu from the Start menu.
wsl --installmacOS
macOS is Unix but not Linux. Run a real Ubuntu VM with Multipass so the commands match exactly, then open a shell in it.
brew install --cask multipass
multipass launch --name lab
multipass shell labAlready on Linux / a cloud server
You are ready — just open a terminal. Or spin up a small cloud VM (any provider) and connect to it. Confirm your shell works:
uname -aFinding Your Way Around
Open a terminal and learn to move: see where you are, list what is there, change directories, tour the key folders of a Linux system, get help for any command, and find where commands and settings live.
Creating, Copying & Deleting Files
Do real work on the filesystem — make folders and files, copy and move and rename them, delete safely, use wildcards to act on many files at once, and bundle a folder into a single compressed archive.
Reading & Editing Files
See and change file contents from the terminal — print and page through files, peek at the start or end of big logs, edit comfortably in nano, and survive your first encounter with vim.
Pipes, Redirection & Text Processing
Connect commands into pipelines — redirect output into files, send output and errors where you want, pipe one command into the next, then search with grep and slice, sort, count, and transform text.
Permissions, Ownership & sudo
Control who can do what — read the permission string from ls -l, change permissions with chmod, change owners with chown, run admin tasks safely with sudo, and link files with symbolic and hard links.
Users & Groups
Manage the people and services on a machine — see who you are and who is logged in, add and remove users, set passwords, and grant admin rights by adding a user to the right group.
Processes & Jobs
Watch and control running programs — list processes, monitor the system live with top, run jobs in the background and bring them back, send signals to stop a misbehaving process, and adjust priority.
Installing Software with apt
Install and manage software on Ubuntu/Debian — refresh the package list, search for and install packages, apply security updates, remove what you no longer need, and see what is already installed.
Services with systemd
Run programs as managed background services — check, start, stop, and restart services with systemctl, make them launch at boot, read their logs with journalctl, and write your own unit file.
Disks & Filesystems
Manage storage from the command line — check free space and find what is filling the disk, list the physical disks, mount and unmount a filesystem, and add swap space when memory runs low.
Networking & SSH
Work with the network from the terminal — check your IP and routes, see which ports are open, test connectivity and resolve DNS names, log into remote machines over SSH, and copy files between them.
Firewalls with ufw & iptables
Control which connections a Linux machine accepts — see the current rules, open only the ports you need, set a deny-by-default policy with ufw, lock yourself out safely by allowing SSH first, and understand the iptables layer underneath.
Checking Health & Troubleshooting
Size up an unfamiliar or misbehaving machine fast — check uptime and load, memory and disk, who has logged in and failed to, then trace network paths and capture packets to pinpoint a problem.
Shell Scripting
Turn commands you repeat into reusable scripts — write and run your first script, use variables and arguments, make decisions with if, loop over files, factor logic into functions, and debug safely.