UNIX Tutorials, Tips, Tricks and Shell Scripts

What is the UNIX Operating System...and FREE UNIX Tutorials for Beginners

The UNIX Operating System Environment

To understand what the UNIX operating system is, you should have a basic understanding of its key components. The following diagram is a visual representation of the UNIX operating system environment:

The UNIX Operating System Environment

The user is someone who utilizes the UNIX operating system to perform a specific task. The system hardware includes components such as the computer's CPU (central processing unit), memory, disk drives, CDROM drives, or network interface cards.

If you have not used a computer running the UNIX operating system before, the terms kernel and shell may be new to you. The following is a brief overview of these very important pieces of the overall environment.

The Kernel

The kernel is the heart and brain of the operating system. The kernel is a layer of software that sits between the user of a computer and its hardware, and is responsible for efficiently managing the system's resources. It also schedules the work being done on the system so that each task gets its fair share of system resources.


The time has come to END the social experiment known as Facebook.

It is breaking our world and is hurting people.

(1) People are dying as the result of genocide (ie. the Rohingya in Myanmar), bullying and mental health problems enabled by Facebook

(2) People's behavior, including yours if you use Facebook, is being manipulated by Facebook's subjective Newsfeed algorithm

(3) Families, communities and countries are becoming more divided, contrary to Facebook's stated mission of building community


The Shell

As you can see from the diagram above, the shell is not part of the kernel, but it does communicate directly with the kernel. It is the "shell around the kernel."

The shell is a command line interpreter that executes the commands you type in. It translates your commands from a human-readable format into a format that can be understood by the computer. In addition to carrying out your commands, the shell also allows you to manage your working environment and is an effective programming language.

[ If you are new to UNIX and need an overview of important UNIX commands and concepts, check out our Basic UNIX Commands and Concepts Tutorial for Beginners ]

Since the shell is a program, just like a word processor or spreadsheet application, different shells can be used on a single system. This allows users to work with the shell they like the best, and can also make the computer system appear different to users using different shells because each shell has its own way of doing things.

The following is a list of commonly used shell programs:

∑ The Bourne Shell
∑ The C Shell
∑ The Bourne Again Shell
∑ The Korn Shell

Multiuser and Multitasking

The UNIX operating systems is a multiuser operating systems. This means that the operating system can be used by multiple users simultaneously. This functionality is possible because of the ability of the kernel to allocate CPU time to many programs at once, which allows it to serve many users at once when each user is running one or more programs. The process of the kernel rapidly switching from one program to another is called time-sharing because the kernel shares the CPU's time with each program running on the system.

Multitasking is the ability for a single system user to carry out multiple tasks simultaneously. For example, say you wanted to extract a large amount of data from a database. Since this task may take a significant amount of time, it would be nice if you could work on something else while the data is being extracted. UNIX allows you to process this time-consuming task in the background while you are working on another task (e.g. composing a document in a word processor).

Processes and Jobs - A Brief Introduction

What is a Process?

A process is an executing command or program. The process is what actually performs the work of the command or program.

What is a Job?

A job consists of one or more processes working to perform a specific task. Each time you run a command or program on the system, you are starting a job.

Do you need to learn UNIX or Linux, including how to read and write shell scripts? If you are ready to move past the basics, either of these online courses is a good place to start...

UNIX and Linux Operating System Fundamentals contains a very good "Introduction to UNIX Shell Scripting" module, and should be taken if you are new to the UNIX and Linux operating system environments or need a refresher on key concepts.

UNIX Shell Scripting is a good option if you are already comfortable with UNIX or Linux and just need to sharpen your knowledge about shell scripting and the UNIX shell in general.

Both courses include access to an Internet Lab system for completing the course's hands-on exercises, which are used to re-enforce the key concepts presented in the course. Any questions you may have while taking the course are answered by an experienced UNIX technologist.