Terminal, Console, Shell — What do they all mean?
Terminal, Console, Shell — We’ve all heard these terms, but do you know the difference between them?
The word Terminal comes from terminate, as in the “terminal” end of a communications process.
You may have heard the term ‘dumb terminal’ referring to basic text-based computer that is communicating with another system that’s doing all the hard work — a server or mainframe.
The first type of terminal was known as a teletypewriter (TTY). Instead of having a screen, a TTY was essentially a smart typewriter/printer combo.
When you typed the input was sent to a computer as well as being typed on the page. The computer’s output was then typed below.
In fact, modern Linux still refer to their dedicated full screen terminals as TTYs.
Terminals themselves aren’t clever in any way though. They don’t process your commands, read files. Their purpose is to read your text input, usually from a keyboard, and display the response.
The word console typically referring to physical device that had a screen and a keyboard. Its sole purpose was to run terminal software to accept commands, communicate with another system, and display the results on screen.
But it was dedicated hardware.
Now-a-days, terminal and console are essentially the same. We have software that acts as both the terminal and console.
We no longer need dedicated console or TTY hardware as software can do it as just another application on your computer.
A shell is what does most of the heavy lifting. It is the software that the terminal/console will communicate with.
It accepts commands, processes them (either internally or by running other software), and then returns the output to the terminal/console, which then displays it.
Examples of shell software:
- bash, fish, zsh, ksh, sh, tsch
- PowerShell, pwsh
- cmd, yori, 4dos, command.com
If you’ve used the command line on any modern operating system, you’ve probably used one of these.