DEV Community

Sloan the DEV Moderator
Sloan the DEV Moderator

Posted on

Explain the difference between shell, console, terminal, command line, etc. like I'm five

This is an anonymous post sent in by a member who does not want their name disclosed. Please be thoughtful with your responses, as these are usually tough posts to write. Email if you'd like to leave an anonymous comment or if you want to ask your own anonymous question.

Top comments (11)

alserembani profile image
Atif Aiman • Edited

Here is my take (with my limited knowledge though 😅, but I'll try)

I'm using the kitchen as an example.

Shell is the environment of the kitchen. Can be restaurant A's kitchen, can be restaurant B's kitchen. Every kitchen might have a different set of tools to use, so need to understand what's inside the kitchen.

The console is the kitchen's space where you put your direction to use.

The terminal is somewhat similar to a console though. There might be differences in the definition for each person, but yeah you got the idea.

Command line is the direction you use to run things, like "Chop the pineapples", "Flat the dough", "Spread the tomatoes", "Sprinkle the pineapples", and "Cook the pizza". But for every command line, you need to see whether the kitchen you are working on has tools or not to run the direction.

The command line interface (CLI), is the place you put the command line So, somewhat CLI ~ terminal.

Usually things in the kitchen, we call "dependencies". So you can say, for example, npm in CLI, is something like a deep fryer. If you don't have a deep fryer, then how can you cook the fries?

alserembani profile image
Atif Aiman • Edited

To put back into context, shell is the environment you want to run your terminal/console. It can be ubuntu shell (I use ubuntu name here, but ubuntu is the OS, and ubuntu shell is the environment that runs on ubuntu, if that helps), zsh shell (macos), powershell (windows).

Console is the place you type your command line. Terminal is somewhat similar, so I would say the term are quite interchangable, but I might be wrong though.

Command line is the instruction you give to the shell. Like sudo apt update that tells ubuntu to update dependencies using apt.

For each command line, you need the dependency to run. If you try to run npm install react for example, but you didn't have npm tools inside your shell, then the shell cannot recognise your command line.

abhinav1217 profile image
Abhinav Kulshreshtha • Edited

Shell: Can be defined as a command interpreter within an operating system. Say echo $PATH is a command which is executed by bash-like shell interpreter. ${whoami} is interpreted to your username by bash. Fish has its own variables and so does ksh. By correlation, we also have ruby-shell, python-shell, node-shell, etc.

Console: In modern day, it is same as terminal, but in ancient days, you can think it as a screen with which user could see the output (and input) of machine. So there was console, or there was printer on which output was printed.

Terminal: Again in modern time, it is same as console, although terminal-emulator are appropriate word for something like gnome-terminal, alacrity etc. Back in ancient days, computers were large machine which could serve multiple people same time, Those people were provided I/O points called terminals, and you would connect stuff like a console (screen) or printer, or another computer, on those terminals. Think of train stations which are also called terminals in some countries, specific places, designated to safely get on or get off train.

Command Line: A general terminology for interaction method, Are you interacting with command line or with graphical interface.

adam_cyclones profile image
Adam Crockett

It doesn't matter is my take, I'd say it all to refer to a window with a typey commandy thing

darkain profile image
Vincent Milum Jr

Some things simply have more than one name. :)

pckilgore profile image
Patrick Kilgore • Edited

For a five year old, terminal and console are two words that mean the same thing. You can argue about it when you are a teenager and stop caring when you are an adult. They are like a piece of paper. They come in many shapes and sizes and colors, but what is most important is that you can write on them, the other stuff is just up to your personal preference.

The command line is like a line on the piece of paper. It's just a place to write stuff.

A shell is like a pen or a pencil. It is a tool. Shells can be different like a pen or a pencil. Some write smooth. Others are very precise. So different people prefer different shells. And like a pencil or a pen is good at writing, a good shell has a purpose. It should allow you to tell computers what to do.

Together, that's the thing that ties them together. You write things with your shell, in a command line, on your terminal/console. And as a result, the shell tells the computer to do stuff for you.

admiral444 profile image
Aniket Dandekar • Edited

shell is like your sweet mother, who does everything thing for you, who listen to your needs, if you ask her tell me date she go and check the date and tell you.

*consol * is like your big house, where you live and do all you task like playing games, doing search for something or maybe exploring.

terminal is like a room inside a house, where you play or explore or do somethings with your toys,beds,books,maybe with cloths and doors too. but as a 5 yr old kid you may dont have big arms,big body todo some certain task btw.

command line is like your speaking language, if you ask mother to do something then you need to tell her what exactly you need then she will give it to you, if you need something and your cant able to tell her and she cant understand it then she wont fullfill the request you made. or you ask something like give me that perticular toy which is not in your entire house that time also she cant fullfill that request.

here comes the father who will fullfill that need of your but first you need to tell your mother then she tell to your father and give it to you. father is like install package manager commands.

riekus profile image
Riekus van Montfort

Have any of you ever talked to an actual 5 year old?

alserembani profile image
Atif Aiman

Did you just slap me? 🤣🤣🤣🤣🤣🤣🤣🤣🤣

richardevcom profile image
richardev • Edited

Shell - your terminal commands stacked as a script. For when you're sick of copying and pasting the same commands.
Console - for backwards debugging and finding where your s*itcode is breaking.
Terminal - control panel
Command line - control panel.. but for Windows.. or packages..