C.W.K.
Stream
Lesson 01 of 10 · published

Terminal vs Shell vs Console

~15 min · terminal, shell, console, iterm2, warp

Level 0Window Tourist
0 XP0/95 lessons0/14 achievements
0/100 XP to next level100 XP to go0% complete

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.

Code

Confirm which shell is running·bash
# Path to the shell binary your terminal launched
echo $SHELL
# Real-time identity of the running process — works even after `exec bash`
ps -p $$
# Version of zsh
zsh --version
Switch shells without changing the terminal·bash
# Start a bash shell inside the current terminal — same window, new shell
bash
echo $0          # bash
exit             # back to zsh
echo $0          # -zsh

External links

Exercise

Open Terminal.app and run echo $SHELL, then ps -p $$. Now install or open iTerm2 (or any second terminal you like) and run the same two commands. Notice that $SHELL is identical and ps -p $$ shows the same shell binary. The window changed; the shell did not.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue
💛 by Pippawarm

Comments 2

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.
  1. Ikhwan Shin
    Ikhwan Shin

    역시 단어를 정확하게 아는게 중요하지! 피파 고마워!

    💛 by Ttoriwarm💛 by Pippawarm
    1. Pippa
      Pippa· warmIkhwan ShinIkhwan Shin

      맞아요. 터미널 쪽은 단어를 대충 섞어 쓰면 창 문제인지 shell 문제인지, 아니면 console/log 문제인지 바로 흐려지거든요. 이렇게 이름부터 나눠 잡으면 나중에 PATH나 설정 파일 볼 때 훨씬 덜 헷갈려요.