File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Linux / UNIX and the fly likes What is a Shell Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java Interview Guide this week in the Jobs Discussion forum!
JavaRanch » Java Forums » Engineering » Linux / UNIX
Bookmark "What is a Shell" Watch "What is a Shell" New topic

What is a Shell

Joe Harry
Ranch Hand

Joined: Sep 26, 2006
Posts: 10033


What do we mean by a Linux Shell and what does shell scripting mean to Linux OS?

SCJP 1.4, SCWCD 1.4 - Hints for you, Certified Scrum Master
Did a rm -R / to find out that I lost my entire Linux installation!
Joe Harry
Ranch Hand

Joined: Sep 26, 2006
Posts: 10033

Could it be something like a batch file that we write in Windows?
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 17421

A Shell is simply a program that allows the user to interact with the system. The more formal name is "command shell", and it's not unique to Linux. The DOS COMMAND.COM program, for example, is a shell.

It's called a "shell" because it forms a sort of container for doing work, like a seashell does for what lives in it. The shell program typically is just a loop that reads a command line from a terminal or other input source, parses it, builds up the environment that will be passed to an application, loads the application and runs it, then repeats.

In ancient times, the shell was an integral part of the OS, but Unix popularized the idea of alternative shells such as ash, bash, csh, ksh, zsh and so forth. All have the same basic function, which is to do what I outlined above. These days Windows also has multiple shells - the COMMAND program is the old dumb DOS shell and the CMD program is similar, but smarter - it has some extra functions that make it easier to write intelligent scripts.

There are other types of shells as well. Shells have been written based on LISP, for example. And windowing systems provide what's known as a "gui shell".

An IDE is no substitute for an Intelligent Developer.
I agree. Here's the link:
subject: What is a Shell
It's not a secret anymore!