Explain the difference between shell, console, terminal, command line, etc. like...
source link: https://dev.to/sloan/explain-the-difference-between-shell-console-terminal-command-line-etc-like-im-five-565a
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Posted on Aug 3
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 [email protected] if you'd like to leave an anonymous comment or if you want to ask your own anonymous question.
Discussion (10)
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?
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.
CollapseExpand
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.
CollapseExpand
It doesn't matter is my take, I'd say it all to refer to a window with a typey commandy thing
CollapseExpand
Some things simply have more than one name. :)
CollapseExpand
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.
CollapseExpand
Have any of you ever talked to an actual 5 year old?
Did you just slap me? 🤣🤣🤣🤣🤣🤣🤣🤣🤣
CollapseExpand
You have a GUI - those are the windows, the menu including the desktop background that you see. Something initiates the process of the GUI, which also initiates other processes. You can talk to it as well. That’s it basically. You can talk to it through a command line that has a GUI, the process that manages that talk works with inner system wide permissions and is called a shell. I think that’s basically all you have to know. You can keep up researching from here by yourself.
CollapseExpand
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..
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK