9

Explain the difference between shell, console, terminal, command line, etc. like...

 2 years ago
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.
neoserver,ios ssh client
Sloan

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)

pic

CollapseExpand

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?

Comment button Reply

CollapseExpand

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.

Comment button Reply

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.

Comment button Reply

CollapseExpand

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

Comment button Reply

CollapseExpand

Some things simply have more than one name. :)

Comment button Reply

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.

Comment button Reply

CollapseExpand

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

Comment button Reply

CollapseExpand

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

Comment button Reply

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.

Comment button Reply

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..

Comment button Reply


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK