Differences between 'Terminal', 'Console' and 'Shell'

Differences between 'Terminal', 'Console' and 'Shell'

💻 What's the difference?

A lot of cool concepts can be misunderstanding in the world of Linux. And that opens the door to an incredible knowlege search. But one of the first questions that can cross your mind is the difference between Terminal, Console and Shell.

Shell

We can start with the last one, the Shell is the program that processes your inputs and commands, and returns an output. There are a lot of shells out there like Bash (The most common one and the default in almost all Linux Distributions), Zsh and Fish. So, in resume, you can see the Shell as a command interpreter.

💡 You can also make scrpiting with your shell and not only write commands!

Terminal

image.png

When you mention a Terminal people can think about an image like above. But the terminal (complete name is Terminal Emulator) is only the wrapper that runs the shell, and that's it! There are a lot of Terminal projects like Alacritty or the Microsoft Terminal. And all of them can have cool features like having tabs or multiplexers (that allows you to have more than one virtual sessions).

Console

image 6.png

And here's the funny part, the console was initially the switches and indicators that you could see on a console panel of the computers. And you can see it as a Physical Terminal (Like above).

Later, the Physical Terminal were replaced by the Terminal Emulators that we saw earlier. GUI programs that allowed us to type text and see the outputs and response, that changed the game! But here we are and people always mention them like synonymous.

In resume, the Shell is the interpreter, the Consoles were how we used to controll old computers and then they evolved to Terminal emulators.