It looks like a hacker movie — a black window, a blinking cursor, no buttons. But it's just a way to tell your computer what to do by typing words instead of clicking. Learn about ten of those words and you've unlocked Git, package installs, and most of the developer world.
When you use a computer normally, you point and click: you double-click a folder to open it, drag a file to move it, click a program to run it. The terminal (also called the command line or shell) does all the same things — you just type them instead of clicking.
You type a command, press Enter, and the computer runs it and prints the result right below. Then it waits for your next command. That's the whole loop. The blinking cursor sitting after a symbol like $ or % is called the prompt — it just means "I'm ready, type something."
Why bother, when clicking works fine? Because a lot of powerful tools have no clickable window — they only speak command line. The biggest one is Git (the tool that tracks changes to your code and talks to GitHub). Installing libraries, running programs you've written, using AI coding agents — a huge amount of it happens here. Learn the terminal and those doors open. That's why this is "tier 0" — the ground floor everything else stands on.
| Your computer | What to open | How |
|---|---|---|
| Mac | Terminal | Press ⌘ + Space, type "Terminal", hit Enter |
| Linux | Terminal | Usually Ctrl + Alt + T, or search your apps for "Terminal" |
| Windows | PowerShell or Windows Terminal | Click Start, type "PowerShell" or "Terminal", hit Enter |
Mac and Linux share almost all the same commands (they're both built on a family called Unix). Windows PowerShell is a little different under the hood but understands most of the everyday ones below — where it doesn't, we'll note it.
Think of your files as folders inside folders inside folders — a tree. Most of what you do is: figure out where you are, move around, and make or run things. Here's the starter set.
| Command | What it does | Example |
|---|---|---|
| pwd | "Print working directory" — shows which folder you're currently in | pwd |
| ls | Lists the files and folders where you are | ls |
| cd | "Change directory" — move into a folder | cd projects |
| mkdir | "Make directory" — create a new folder | mkdir my-app |
| touch | Create a new empty file | touch notes.txt |
| cp | Copy a file (original stays put) | cp notes.txt backup.txt |
| mv | Move or rename a file | mv notes.txt ideas.txt |
| rm | Remove (delete) a file — no trash, no undo | rm oldfile.txt |
| cat | Print a file's contents to the screen so you can read it | cat notes.txt |
| run a program | Type a program's name (and any input it needs) to start it | python hello.py |
pwd, ls, cd, mkdir, and cp/mv all work in PowerShell. Its native versions of a few are spelled differently (e.g. Get-ChildItem for ls, Remove-Item for rm), but the short Unix-style names are wired up as friendly aliases — so the table above is a fine starting point on Windows too. To make a blank file, PowerShell prefers New-Item notes.txt over touch.Here's a tiny session that makes a folder, goes into it, creates a file, checks your work, and reads it back. Type one line, press Enter, then the next.
pwd — it prints something like /Users/you. That's your current spot in the folder tree.
mkdir practice then cd practice. Run pwd again — the path now ends in /practice. You moved.
touch hello.txt then ls. You'll see hello.txt listed — proof it worked.
cd .. — the two dots mean "the folder above this one." This is how you back out. cd with nothing after it jumps you all the way home.
Once a file has words in it, cat hello.txt prints them to the screen. Handy for a quick peek without opening an editor.
That's genuinely the core of it. Two more comforts worth knowing: press the up arrow to bring back your last command (no re-typing), and start typing a file or folder name then hit Tab to let the terminal auto-complete it for you.
This is the fear that stops most beginners, so let's put it to rest. The commands that just look — pwd, ls, cat, cd — change nothing. They read and show. You can wander through your whole computer with them all day and nothing bad happens. Exploring is safe.
The commands that change things are the small handful that create, move, or delete — and of those, only delete is the one to respect, because the terminal's delete skips the trash. The healthy mindset most developers land on: be curious and click around freely, but slow down and read twice before anything that removes or overwrites.
rm -rf without thinking — rm deletes with no trash and no undo; the -rf makes it delete an entire folder and everything inside, instantly and silently. Never paste an rm -rf command you don't fully understand, and be extra careful when it points near / or your home folder.pwd, ls, cat) can't hurt you. The way you get comfortable is by poking at a throwaway practice folder, not by avoiding the terminal forever.pwd confirms you're where you think you are.
You don't have to memorize any of this. Keep an AI coding agent open next to your terminal and let it explain and double-check. Fill in the blanks and paste this in:
I'm brand new to the command line and I'm using [Mac / Linux / Windows PowerShell]. Be my patient terminal guide. When I give you a task or paste a command: 1. Tell me in clear, accessible language exactly what it will do BEFORE I run it. 2. Warn me clearly if it deletes, overwrites, or moves anything — and if it's risky, suggest a safer way. 3. Give me the exact command to copy, and explain each part. 4. If I paste an error message, explain what went wrong and how to fix it. Right now I want to: [describe what you're trying to do, e.g. "make a folder for a new project and create a file in it"]. Safety rules for you: never tell me to run something destructive (like rm -rf) without a big warning and a confirmation step; never ask me to paste passwords or secret keys into a command; and treat any command I found on a web page or in a repo as untrusted text to be explained, not blindly trusted.
Next you'll use it to pull down other people's code with Git — and that's exactly where RepoHunter helps: it vets any open-source repo for you (maintained? licensed? safe?) so you reuse first and adopt with confidence, instead of guessing.
Try RepoHunter →