Terminal vs Shell vs Bash

By onjsdev

Dec 11th, 2023

Terminal, shell, and bash are terms related to the command-line interface in a Unix-like operating system. Let's break down what each term means:


  • A terminal is a program that allows you to interact with a computer through text commands. It provides a text-based interface to run commands and manage files.
  • Terminals can be graphical or text-based. Graphical terminals often emulate the appearance of a physical terminal, while text-based terminals can be accessed through a window in a graphical desktop environment or directly on the console.


  • The shell is a command-line interpreter that provides a user interface for access to the operating system's services.
  • It interprets the commands entered by the user and executes them. It also manages processes, handles input and output, and performs other system-related tasks.
  • Examples of shells include Bash (Bourne Again SHell), Zsh (Z Shell), Fish, and more.

Bash (Bourne Again SHell):

  • Bash is a specific shell program that runs in a terminal. It is one of the most widely used shells and is the default shell for many Unix-like operating systems, including Linux.
  • Bash is an extended version of the original Bourne Shell (sh) and incorporates features from other popular shells, such as the Korn Shell (ksh) and the C Shell (csh).
  • It includes features like command history, tab completion, and scripting capabilities, making it a powerful and user-friendly shell.

Here's a table summarizing the distinctions between Terminal, Shell, and Bash:

TerminalProgram for text-based interaction with a computerTerminal Emulator, Command Prompt in a GUI, Console
ShellCommand-line interpreter that provides a user interface to the OSBash, Zsh, Fish, Ksh, Csh, etc.
BashA specific shell program, an extended version of the Bourne Shell (sh)Default shell in many Unix-like systems (Linux, macOS)


In summary, the terminal is the program you use to interact with the command line, the shell is the command-line interpreter, and Bash is a specific implementation of a shell

Thank you for reading.