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 amls — list what’s in the current foldercd — move into a different foldermkdir — make a new foldercat 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 foldertype 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/Linuxls — also works in PowerShell (it’s aliased to a PowerShell command under the hood)cd — same as alwayscat 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:
- Press
Cmd + Spaceto open Spotlight Search - Type
Terminal - Hit
Enter
On Windows:
- Press the
Windows key - Type
PowerShell(recommended for beginners — it’s the more modern, more capable option) - Click Windows PowerShell or hit
Enter
On Linux:
- Most distros: press
Ctrl + Alt + T - 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) ordir(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 justcdwith nothing after it - Windows:
cd ~(PowerShell) orcd %USERPROFILE%(cmd)
Practice Loop
Before moving on to anything HTB-related, I ran this loop a few times until it felt automatic:
pwd/cd— where am I?ls/dir— what’s here?cd [foldername]— move into something- Repeat steps 1–2
cd ..— back out- 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 ofls)mkdirormd— make a new foldertype filename— show the contents of a file (this is the Windows version ofcat)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/Linuxls— also works in PowerShell (it’s aliased to a PowerShell command under the hood)cd— same as alwayscat filename— also works in PowerShellGet-ChildItem— the “real” PowerShell command thatlsis actually short for; useful to know since PowerShell commands tend to follow thisVerb-Nounpattern (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