UNIX is a multi-user operating system that was developed at Bell Labs in the 1970s. UNIX was designed to be a multitasking and flexible system for programmers, and it was inexpensive too. Since it was one of the first operating systems to be written in a high-level language, which is C, any computer which had C compiler installed could run it. This made UNIX very popular in universities.
In order to access a UNIX system, the most commonly used mode is a terminal. A terminal generally contains a video monitor and a keyboard, as well as a process run by the kernel called “tty”, which connects the terminal to the UNIX system. When a user has established contact with the UNIX system, the login prompt is displayed and the username and the unique password must be typed in. The username can have a maximum of 8 characters, and it must be in lowercase.
The UNIX shell is a command programming language that acts as the interface to the UNIX OS. Some of the features of UNIX shell are control-flow primitives, parameter passing, string substitution, and variables. Additionally, it is possible to have a two-way communication between the shell and commands.
There is a single main directory in UNIX called the root directory, denoted as “/", which stores all the files and directories. When there is more than one hard drive in a computer, they are combined in a single directory tree.
When a user runs a program, some output is given at the shell prompt. The output, however, can be redirected if the user doesn’t want it to appear in the shell window. It can be directed to a file or a printer, for instance. Likewise, input for programs can be redirected too.
With UNIX, a mechanism called Pipe allows you to connect processes, simply by letting the standard output of one process feed into the standard input of another process. Hence, by connecting simple processes in a pipeline, complex tasks can be performed without writing detailed programs.
One of the best features of UNIX is multitasking. The UNIX OS can perform multiple tasks for a user, without suspending the background programs or applications. This is possible because UNIX actually runs one job at a time, but the switching between the jobs is extremely fast.
A few basic sets of commands control the foreground and background jobs. These commands can determine the status of your current job as well. A foreground job is the current job you are interacting with, whereas background jobs are the other jobs which are running in the background.
In the UNIX system, text editing is one of the fundamental operations that a user performs. Among the several text editors available for UNIX, Emacs are a favorite because they are powerful, customizable, extensible, as well as flexible.
The UNIX shell contains a set of environment variables which can provide you with information such as the current working directory, the programs you run, or the kind of terminal which is being used. The environment variables are given in upper case letters.
A shell can be invoked from within another shell. Simply typing the name of the shell (ksh, csh, or sh) will start a new shell. You can even set up the default start up shell by using the “chsh” command. Interactive shells are convenient for users as most of them have context-sensitive help and color-coded command-line interface (CLI). They simplify UNIX scripting jobs too.
Although it appears that there is a single file system in UNIX, there are actually a number of them. The most common UNIX files are ordinary files, directories, special files, and pipes.
Presently, UNIX operating systems are installed in popular workstation products of companies such as Sun Microsystems, Silicon Graphics, and IBM. Also, the UNIX environment, along with the client/server program model, contributed vastly to the development of the internet. The networking of computers was also brought about by UNIX.