0

As a Linux newcomer that really wants to understand Linux rather than just work with it automatically, I understand that the term "Shell" basically describes a software layer which is above the kernel that includes services that can run and be manipulated by utilities much more "easily" then the kernel can.

If I understand correct, web server software (such as Apache, MySQL and PHP) are titillates written in "high" programming languages and can use shell software pieces to operate together as a "Web Server" so that software from both layers will compromise that "Web server".

If so, what is the difference between this software layer named "Shell" to the terminal I use in Ubuntu also called Shell by wikipedia?

It seems to me that either there are two "Contexts" to the phrase "Shell" In Linux, or the terminal (such as Bash terminal) is mistakenly called "Shell" by some users.

2 Answers2

3

A terminal is a device or application that allows you to connect to another system. When you do such a connection on Unix, you connect to a shell.

The shell is an application that allows the user to perform all kinds of operations including running other programs. Note that most programs do not need the shell to exist. The shell exists only for user control.

So, the shell appears inside the terminal but is not run from it.

Finally note that there are actually many different terminal emulators and shells.

  • Hi Juilie, thanks so much for your answer (thumbed up). You said that the shell exists only for user control; but before you said it allows different operations for the user... I guess we can merge and say "exists for running certain utilities as well changing them, the shell itself, and the kernel"). Is it sounds correct to you? –  Jun 15 '16 at 14:08
  • While your merge is true, it actually focuses on uncommon things. Most shell operations are related to disk and process handling. – Julie Pelletier Jun 15 '16 at 15:09
  • While (drastically) changing utilities, or the shell/kernel might indeed be uncommon for most users, I think running shell-dependent processes isn't very much uncommon for users; most Lin users I know do that... Maybe that's because I live in Israel in which, sadly, Linux just starts to become more popular in 2016, and in some other countries usage is less job-oriented... –  Jun 15 '16 at 21:29
-1

"Shell" and "Terminal" are often used interchangeably.

The difference is that the terminal you would open in Ubuntu, is a terminal emulator. There is only one actual "terminal", or "shell", for your system, through which the different emulators interact with.

Bash is just a syntax for interacting with the internal shell, just like fish, zsh, etc.