Why the terminal is worth your time
On Windows or macOS you mostly click: open a folder, drag a file, right-click for options. A Linux server in the cloud usually has no desktop at all. When a support ticket says "the web app on server 12 is down", you connect to a text window and type. That window is the terminal. The program inside it that reads what you type and runs it is the shell. On Ubuntu the shell is Bash.
Think of it like a restaurant. The terminal is the table and the menu card, the place where you and the kitchen meet. The shell is the waiter: it takes your order (the command), hands it to the kitchen (the operating system) and brings back the result. The prompt is the waiter saying "what can I get you?"
Today you'll set up somewhere to practise, find out what you're connected to, run a few commands and learn how to get help. Everything later in the course builds on this.
Step 1: Get a free Linux shell
Pick one. All three work for this course.
Option A: WSL on Windows (recommended for Windows users). WSL (Windows Subsystem for Linux) runs a real Linux system next to Windows. You need Windows 10 version 2004 (build 19041) or later, or Windows 11.
# In PowerShell opened with "Run as administrator":
wsl --install # turns on WSL and installs Ubuntu, the default distribution
# Restart Windows when it asks you to.
# Then open "Ubuntu" from the Start menu. The first launch takes a minute
# while files unpack, and it asks you to create a Linux username and password.
Gotcha: if
wsl --installonly prints help text, WSL is already partly installed. Runwsl --list --onlineto see the distributions you can install, thenwsl --install -d Ubuntu.
Option B: A cloud shell. It runs in your browser and needs no install. Google Cloud Shell gives you 5 GB of persistent home storage and a default quota of 50 hours a week. AWS CloudShell is free, runs Amazon Linux 2023 (a cousin of the Red Hat family) and keeps 1 GB of home storage per Region.
Option C: A small virtual machine. Install Ubuntu Server in VirtualBox or a similar tool, or rent the smallest cloud VM you can find. This takes the most effort, but it's the closest to a real server.
Step 2: Read the prompt and ask "where am I?"
When the shell is ready it shows a prompt like this:
david@LAPTOP-7Q2K:~$
davidis the user you're logged in asLAPTOP-7Q2Kis the machine's name (its hostname)~means your home folder (more on folders in the next level)$means a normal user. A#means you are root, the all-powerful admin, so be careful
In support work, your first habit on any machine should be to confirm whose account you're using and which box you're on. Engineers have rebooted the wrong server because two terminal windows looked the same.
whoami # which user am I?
# david
hostname # which machine am I on?
# LAPTOP-7Q2K
cat /etc/os-release # which Linux distribution and version?
# PRETTY_NAME="Ubuntu 26.04 LTS"
# NAME="Ubuntu"
# VERSION_ID="26.04"
# ID=ubuntu
# ID_LIKE=debian
# ...
Your version number may be different, and that's fine. Look at the ID and ID_LIKE lines. ubuntu/debian means you'll use Ubuntu-style tools later in the course. On Red Hat family systems (RHEL, Fedora, Rocky, Amazon Linux) you'll see something like ID="rhel" or ID_LIKE="fedora". The same file exists on both families, so this check works everywhere.
Step 3: The anatomy of a command
Every command line follows the same pattern:
command -options arguments
date -u # command + option
echo Hello, Linux # command + arguments
- Command: the program to run (
date) - Options (also called flags): change how it runs. Short options use one dash (
-u). Long options use two dashes (--utc) - Arguments: what it works on (the text
Hello, Linux)
Spaces separate the parts, and case matters: date works, Date gives command not found.
date # current local date and time
# Sat Oct 17 14:05:12 BST 2026
date -u # same thing in UTC: the time zone servers and logs usually use
# Sat Oct 17 13:05:12 UTC 2026
echo Hello, Linux # echo prints its arguments back to you
# Hello, Linux
history # numbered list of commands you've run
# 1 whoami
# 2 hostname
# 3 cat /etc/os-release
# 4 date
history 3 # the argument 3 means "show only the last 3"
Tip: press the Up arrow to bring back earlier commands so you can edit and rerun them. That's
historyat your fingertips.
Step 4: Getting help without leaving the terminal
Nobody remembers every option. Senior engineers look things up all the time; they just do it quickly.
1. --help for a quick summary. Most commands print a short usage guide:
date --help # lists date's options, e.g. -u, --utc, --universal
2. man for the full manual. man is short for manual:
man date # opens the full manual page
Inside a man page, use the arrow keys or Space to scroll, type /utc and press Enter to search, and press q to quit. Beginners often get stuck here, so remember: q gets you out.
3. help for shell built-ins. Some commands, such as history and echo, are built into Bash itself. help history explains the Bash version.
4. Tab completion. Type the start of a command and press Tab:
hostn<Tab> # completes to: hostname
who<Tab><Tab> # several matches, so two Tabs list them: who whoami
Tab saves typing, and more importantly it prevents typos. If Tab completes the word, the command exists.
Gotcha: if a command seems to hang with no prompt, it may be waiting for input. Press Ctrl+C to cancel it and get your prompt back.
Check your work
Run these, then run history 4. You should see all four listed:
whoami
hostname
grep PRETTY_NAME /etc/os-release # a sneak preview: this prints just the distribution line
date -u
If your output shows your username, a hostname and an Ubuntu (or Red Hat family) name, your lab is ready.
Key takeaways
- The terminal is the window, the shell (Bash) runs your commands, and the prompt shows
user@hostplus$for a normal user or#for root. - Free places to practise: WSL (
wsl --installinstalls Ubuntu), Google Cloud Shell, AWS CloudShell or a small VM. - Always confirm where you are with
whoami,hostnameandcat /etc/os-release. - A command line is command, then options, then arguments, and case matters.
- For help, use
--helpfor a summary,manfor the full manual (qto quit) andhelpfor Bash built-ins. Use Tab to complete, Up arrow to recall commands and Ctrl+C to cancel.