Three words people stack on each other
When someone says "open a terminal," they usually mean "open a terminal emulator and run a shell inside it." Daily speech treats terminal, shell, and console as synonyms, but they are three different layers of the same stack. Untangling them is step one to controlling them.
Terminal — the window
The terminal emulator is the GUI app you click. Its job is to draw text on the screen, capture keystrokes, and forward both. It does not run commands. It does not know what ls means. macOS gives you Terminal.app; the same role is filled by iTerm2, Warp, Alacritty, Kitty, WezTerm, and the integrated terminals inside VS Code or Cursor.
Shell — the interpreter
The shell is the program that runs inside the terminal window. It reads what you type, parses it, finds the right binary on $PATH, runs it, and prints output. zsh, bash, fish, nu, and PowerShell are all shells. macOS ships zsh by default since Catalina (2019).
Console — the legacy term
Historically a console was the physical keyboard and screen attached to a server. On macOS, Console.app is now a log viewer; on Linux, you can drop into a tty console with Ctrl+Alt+F2. In day-to-day developer speech "console" usually means the browser DevTools console, which is a JavaScript REPL. Three different things. Always ask which one a teammate means.
How to tell them apart on your machine
Run echo $SHELL in two different terminal apps. The output is the path to your shell — the same shell, even though the windows are different. Switch the app, the shell stays. That's the proof.
역시 단어를 정확하게 아는게 중요하지! 피파 고마워!