Terminal, terminal emulator, bash, shell, command line, prompt, tty...
These terms seem to be the exact SAME thing.
I couldn't tell the difference when people talk about them, and it's kind of embarrassing.
That's why I'm going to break down exactly what they mean, one by one.
Starting with…
Terminal (Emulator)
In the old days, the computer looked like this:

There is no easy way to send data into that.
So, programmers created a separate device called a terminal to send data and commands to the computer. It comes with a keyboard for input, which looks like this:

(Teleprinters or TTY were one of the earliest forms of terminals.)
Nowadays, physical terminals have (mostly) turned into software.
When we mention terminal these days, we are referring to a terminal emulator.
A terminal emulator is a computer program.
Terminal app on Mac, Windows Terminal, Ghostty, Kitty are all terminal emulators.

They still serve a similar purpose as physical terminals: sending data/commands to the computer.
Shell
You interact with the terminal through typing commands.
But the terminal itself doesn’t parse commands.
It uses something called a shell (or interpreter) to do it.

Commonly used shells include Bash, Z shell, Fish, Powershell, etc.
Let’s say you want to create a new file:
You type a command into your terminal emulator (the exact command depends on the shell you use)
The shell parses it and asks the OS to create the file for you

Command Line Interface (CLI)
Terminal is one of a kind.
It’s rare that you interact with by typing commands.
Think about how you use other programs, like browsers and games. You click buttons with the keyboard and mouse. We call that a graphical user interface (GUI).
On the flip side, we call a terminal a command-line interface (CLI), or command line in short, for obvious reasons.

Prompt
This thingie that appears at the beginning of every command line…

is called a prompt (or prompt string or PS1)
You might see it appear as a $, or > or really anything.
This thing is just a useful decoration that shows the terminal is waiting for a new command.
It would be pretty confusing if we didn't have this.
Since it's a decoration, you can customize it however you like.
- Fee from Anime Coders
PS: If you want to stay competitive as a developer by adding Docker to your resume, try Gacha Coders, a Gacha game that teaches you how to code.
Two Congress Passes for the Price of One
Code 2FOR1 gets you two WeAreDevelopers World Congress passes for the price of one — so don't make the trip to Silicon Valley solo.
San José, CA · September 23–25, 2026. 10,000+ developers, 500+ speakers, 20+ stages, and the full software development lifecycle in one place.
On stage: Kelsey Hightower, Thomas Dohmke (former GitHub CEO), Christine Yen (Honeycomb), Olivier Pomel (Datadog) — the people building the tools you use every day. Three days of AI, agents, cloud, security, and architecture, plus workshops, live coding, and the official Congress party.
Bring the builder you'd want in the room with you.


