The Unix Shell

Posted On 2005-11-1 by FortyPoundHead
Keywords: Unix Tutorial Part 04
Tags: Tutorial Linux
Views: 1725

Section 4: The UNIX Shell

The shell is perhaps the most important program on the UNIX system,
from the end-user's standpoint. The shell is your interface with the
UNIX system, the middleman between you and the kernel.

CONCEPT: The shell is a type of program called an
interpreter. An interpreter operates in a simple loop: It
accepts a command, interprets the command, executes the command, and
then waits for another command. The shell displays a "prompt," to
notify you that it is ready to accept your command.

The shell recognizes a limited set of commands, and you must give
commands to the shell in a way that it understands: Each shell command
consists of a command name, followed by command options (if any are
desired) and command arguments (if any are desired). The command
name, options, and arguments, are separated by blank space.

CONCEPT: The shell is a program that the UNIX kernel runs
for you. A program is referred to as a process while the
kernel is running it. The kernel can run the same shell program (or
any other program) simultaneously for many users on a UNIX system, and
each running copy of the program is a separate process.

Many basic shell commands are actually subroutines built in to the
shell program. The commands that are not built in to the shell
require the kernel to start another process to run them.

CONCEPT: When you execute a non built-in shell command, the
shell asks the kernel to create a new subprocess (called a "child"
process) to perform the command. The child process exists just long
enough to execute the command. The shell waits until the child
process finishes before it will accept the next command.

EXERCISE: Explain why the exit (logout) procedure must be
built in to the shell.

EXPLANATION: If the logout procedure were not built in to the
shell, the kernel would start a new child process to run it. The new
process would logout, and then return you to the original shell. You
would thus find yourself back where you started, without having logged

Unlike DOS, the UNIX shell is case-sensitive, meaning that an
uppercase letter is not equivalent to the same lower case letter
(i.e., "A" is not equal to "a"). Most all unix commands are lower

Entering shell commands

The basic form of a UNIX command is: commandname [-options]

The command name is the name of the program you want the shell to
execute. The command options, usually indicated by a dash, allow you
to alter the behavior of the command. The arguments are the names of
files, directories, or programs that the command needs to access.

The square brackets ([ and ]) signify optional parts of the command
that may be omitted.

EXAMPLE: Type the command
ls -l /tmp

to get a long listing of the contents of the /tmp directory. In this
example, "ls" is the command name, "-l" is an option that tells ls
to create a long, detailed output, and "/tmp" is an argument naming
the directory that ls is to list.

Aborting a shell command

Most UNIX systems will allow you to abort the current command by
typing Control-C. To issue a Control-C abort, hold the control key
down, and press the "c" key.

Special characters in UNIX

UNIX recognizes certain special characters as command directives. If
you use one of the UNIX special characters in a command, make sure you
understand what it does. The special characters are:
/ < > ! $ % ^ & * | { } ~ and ;

When creating files and directories on UNIX, is is safest to only use
the characters A-Z, a-z, 0-9, and the period, dash, and underscore

The meaning of the other characters, and ways to use them, will be
introduced as the tutorial progresses.

Getting help on UNIX

To access the on-line manuals, use the man command, followed by
the name of the command you need help with.

man ls
to see the
manual page for the "ls" command.

EXAMPLE: To get help on using the manual, type
man man
to the UNIX shell.

About the Author

has posted a total of 1974 articles.

Comments On This Post

No comments on this post yet!

Do you have a thought relating to this post? You can post your comment here. If you have an unrelated question, you can use the Q&A section to ask it.

Or you can drop a note to the administrators if you're not sure where you should post.

Your IP address is:

Before you can post, you need to prove you are human. If you log in, this test goes away.

Code Links