Average humans tell stories, and telling stories is amazing.

GUI vs. Terminal, in Plain Terms

Most of us grew up using computers through a GUI, a Graphical User Interface. That’s the normal desktop experience: icons you click, folders you open, windows you drag around. It’s visual and intuitive, and it’s designed so you don’t have to know what’s happening “under the hood.”

A terminal is different. It’s a text-based way of talking directly to your computer. Instead of clicking a folder icon to open it, you’d type something like:

cd Documents

Instead of dragging a file to the trash, you’d type:

rm oldfile.txt

No icons, no windows. Just text in, text out. It looks intimidating at first, but it’s really just a different language for giving your computer instructions.

Why Bother With the Terminal at All?
Speed and precision. Once you know the commands, doing things in a terminal is often faster than clicking through menus.
It’s exact. You tell the computer precisely what to do, with no ambiguity about which button you meant to click.
It’s the language of servers and security tools. Most servers don’t have a GUI at all. And most cybersecurity and IT tools are built to run in a terminal, because they’re designed for control and repeatability, not pretty visuals.
It teaches you what’s actually happening. A GUI hides a lot of the mechanics. The terminal exposes them, which is exactly why it matters for security work.

A Few Terms Worth Knowing
– Terminal — the window/application where you type commands and see text output.
– Shell — the program that actually interprets your commands (common ones: bash and PowerShell).
– Command line / CLI — general term for interacting with a computer by typing commands instead of clicking.
– Prompt — the line where you type, usually ending in $ or %, waiting for your next command.


My Starting Point (Mac/Linux)

I’m still getting comfortable with navigating through the directories. Here’s what I know so far:


pwd — show where I currently am
ls — list what’s in the current folder
cd — move into a different folder
mkdir — make a new folder
cat filename — show the contents of a file

Windows Has Its Own Version

If you’re on Windows, you actually have two different terminal experiences, and it’s worth knowing both since HTB material sometimes assumes one or the other:

Command Prompt (cmd) — the older, classic Windows terminal. Commands look similar in spirit to Mac/Linux but use different syntax:

cd — change directory (same command, works in cmd too)
dir — list what’s in the current folder (this is the Windows version of ls)
mkdir or md — make a new folder
type filename — show the contents of a file (this is the Windows version of cat)
cls — clear the screen

PowerShell — the newer, more powerful Windows shell. It’s what most modern Windows security and IT work happens in. The nice part: PowerShell actually understands a lot of the same commands as Mac/Linux, either natively or as aliases:

pwd — works in PowerShell, same as Mac/Linux
ls — also works in PowerShell (it’s aliased to a PowerShell command under the hood)
cd — same as always
cat filename — also works in PowerShell

A quick way to think about it: cmd is the old-school Windows way, PowerShell is the modern one and is far more capable (it’s built for scripting and automation), and Mac/Linux terminals use a shell like bash or zsh. HTB labs are usually Linux-based, so most walkthroughs default to Mac/Linux-style commands — but knowing the Windows side matters too, since plenty of real-world environments (and some HTB machines themselves) are Windows targets.


Tutorial: Getting to the Command Line and Navigating It

Here’s exactly how I opened a terminal on each system, plus a short hands-on exercise to practice navigation.

Step 1: Open a Terminal

On Mac:

  1. Press Cmd + Space to open Spotlight Search
  2. Type Terminal
  3. Hit Enter

On Windows:

  1. Press the Windows key
  2. Type PowerShell (recommended for beginners — it’s the more modern, more capable option)
  3. Click Windows PowerShell or hit Enter

On Linux:

  1. Most distros: press Ctrl + Alt + T
  2. Or search for “Terminal” in your applications menu

Once it opens, you’ll see a mostly blank window with some text and a blinking cursor — that’s your prompt, waiting for a command.

Step 2: Figure Out Where You Are

Type this and hit Enter:

  • Mac/Linux: pwd
  • Windows (PowerShell or cmd): cd (with nothing after it, just prints your current location)

This tells you your current folder — usually your “home” folder to start.

Step 3: See What’s Around You

  • Mac/Linux: ls
  • Windows: ls (works in PowerShell) or dir (works in both)

This lists the files and folders in your current location — the terminal equivalent of looking at an open Finder or File Explorer window.

Step 4: Move Into a Folder

Pick a folder you saw in Step 3 (like Documents or Desktop) and type:

cd Documents

Then run the “where am I” and “what’s here” commands again (pwd/cd and ls/dir) to confirm you actually moved.

Step 5: Go Back Up a Level

To move back out of a folder into its parent folder:

cd ..

The .. means “one level up.” Run it a couple of times and check your location each time — it’s the fastest way to build a mental map of how folders nest inside each other.

Step 6: Get Home Again

If you ever get lost, this resets you to your home folder:

  • Mac/Linux: cd ~ or just cd with nothing after it
  • Windows: cd ~ (PowerShell) or cd %USERPROFILE% (cmd)

Practice Loop

Before moving on to anything HTB-related, I ran this loop a few times until it felt automatic:

  1. pwd / cd — where am I?
  2. ls / dir — what’s here?
  3. cd [foldername] — move into something
  4. Repeat steps 1–2
  5. cd .. — back out
  6. Repeat until it’s boring

That boredom is the point — it means the basics are becoming muscle memory instead of something I have to think hard about.

Windows Has Its Own Version(s)

If you’re on Windows, you actually have two different terminal experiences, and it’s worth knowing both since HTB material sometimes assumes one or the other:

Command Prompt (cmd) — the older, classic Windows terminal. Commands look similar in spirit to Mac/Linux but use different syntax:

  • cd — change directory (same command, works in cmd too)
  • dir — list what’s in the current folder (this is the Windows version of ls)
  • mkdir or md — make a new folder
  • type filename — show the contents of a file (this is the Windows version of cat)
  • cls — clear the screen

PowerShell — the newer, more powerful Windows shell. It’s what most modern Windows security and IT work happens in. The nice part: PowerShell actually understands a lot of the same commands as Mac/Linux, either natively or as aliases:

  • pwd — works in PowerShell, same as Mac/Linux
  • ls — also works in PowerShell (it’s aliased to a PowerShell command under the hood)
  • cd — same as always
  • cat filename — also works in PowerShell
  • Get-ChildItem — the “real” PowerShell command that ls is actually short for; useful to know since PowerShell commands tend to follow this Verb-Noun pattern (Get-, Set-, New-, Remove-, etc.)

A quick way to think about it: cmd is the old-school Windows way, PowerShell is the modern one and is far more capable (it’s built for scripting and automation), and Mac/Linux terminals use a shell like bash or zsh. HTB labs are usually Linux-based, so most walkthroughs default to Mac/Linux-style commands. But knowing the Windows side matters too, since plenty of real-world environments (and some HTB machines themselves) are Windows targets.

Leave a comment