UNIX and Linux Operating System Fundamentals


LiveFire Labs' UNIX and Linux Operating System Fundamentals course begins with a brief history and overview of both UNIX and Linux, and then proceeds to teach you the skills required for working on a server running either operating system.

Hands-on lab exercises are used to reinforce key concepts, and are completed by logging in on a real server in our Internet Lab from your work or home computer.

  1. A Brief History of the UNIX and Linux Operating Systems
  2. Operating System Concepts
  3. Getting Connected, Logging In, and Logging Out
  4. Operating System Commands
  5. Working with Directories
  6. Working with Files
  7. I/O Redirection, Pipes, and Filters
  8. Getting Help
  9. Processes and Jobs
  10. The Shell - A Closer Look
  11. Introduction to the vi Text Editor
  12. Introduction to Shell Scripting/Programming
  13. Tools and Utilities
  14. Interacting with Other Users
A Brief History of the UNIX and Linux Operating Systems

Understanding the origin and evolution of a particular technology often helps when learning how to use it. Like many new technologies, the development of these two operating systems did not start as a conscious effort to develop a commercial product. This makes their current level of popularity and utilization even more remarkable.

- The UNIX Operating System
- The Linux Operating System

Operating System Concepts

Most operating systems have certain traits that differentiate them from each other. The UNIX and Linux operating systems are no exceptions to this fact. Having a general understanding of a few of the design traits for these operating systems will assist you in using them more effectively.

- The UNIX and Linux operating system environment
- The File system
- The superuser (root) account

Getting Connected, Logging in, and Logging out

Before using a computer system, you need to connect and in most cases be authenticated as a valid system user. Methods for connecting and being authenticated are dependent on the task to be performed. For this course, all interaction between you and the lab system will be interactive and will require you to be authenticated prior to using the system.

- Using SSH to connect
- Username and password
- The login and password prompts
- Password considerations
- Remember to logout

Operating System Commands

A computer's operating system is a layer of software that bridges the gap between a computer 's user and the computer's hardware. The user instructs the operating system of what he or she would like to do at a high-level, and then the operating system will attempt to complete the task at a low-level. To effectively instruct an operating system of what you would like it to do, you need to become intimately familiar with the commands that are understood by the operating system and how to use these commands correctly.

- Command options and arguments
- Case sensitivity
- Some useful commands
- Running multiple commands on a single line
- The recursive command option
- Command history
- Command aliases
- Locating commands

Working with Directories

A directory is a container used for storing and tracking the location of files and other directories on systems running the UNIX or Linux operating system. If you are familiar with windows-based PC (personal computer) operating systems, a directory serves the same purpose as a folder.

Directories are useful for organizing your files based on what the files are used for. You may have all of your executable program files in one directory, files for a specific project in another, and graphical images in another.

- Your home directory
- Your working (current) directory
- Special characters
- Changing directories
- Creating a directory
- Removing (deleting) a directory

Working with Files

It is fairly safe to say that everything in the UNIX or Linux operating system is a file or is represented by a file. Because of this, you will need to understand the different types of files found on a system, and how to work with each type.

- File types
- Listing files located outside of your home directory
- Special characters (metacharacters)
- Hidden files
- Copying a file
- Moving/renaming a file
- Remove (delete) a file
- Displaying a file's contents
- Comparing the contents of two files
- Creating hard and symbolic links
- Finding files
- Counting characters, words and lines
- File access mode (permissions)
- Modifying a file's access mode
- File owners and groups

I/O Redirection, Pipes, and Filters

This module will discuss various methods for manipulating data and controlling the flow of data. The data flow paths discussed is the path to and from files, and the path between operating system commands.

- Standard file descriptors
- I/O Redirection - redirection of standard output
- I/O Redirection - redirection of standard input
- I/O Redirection - redirection of standard error
- The pipe mechanism
- Filters - cut
- Filters - paste
- Filters - sort
- Filters - grep
- Filters - awk
- Filters - tee

Getting Help

If you need help while working on a system running the UNIX or Linux operating system, there is detailed information available on the system to assist you if you have no books or manuals close by.

- System manual (man pages)
- The whatis command

Processes and Jobs

Since the UNIX and Linux operating systems are multiuser and multitasking operating systems, there are a large number of system activities for the operating system to continuously track and manage. Processes are used by the operating system to effectively and efficiently handle this seemingly complicated task.

Because of the multitasking capabilities of these operating systems, each user also needs a method for tracking and managing the simultaneous tasks he or she is working on. Jobs and job control provide this method for the user.

- What is a process?
- Process monitoring and management - The ps command
- The kill command
- Process priorities
- Jobs and job control

The Shell - A Closer Look

By now you should have a basic understanding of what the shell is and what purpose it serves. A deeper understanding of shells is needed to effectively work with the UNIX or Linux operating system.

- Variables
- Login and shell initialization files
- Related commands
- What shell am I using?
- Running a different shell

Introduction to the vi Text Editor

Regardless of what you use a UNIX or Linux system for, you will sooner or later want or need to create a new text file, or edit the text in an existing file. In order to accomplish this task you will need to know how to use a text editor. This module will teach you the basics of using the vi (visual) text editor.

The vi editor was selected for this course because it is available on most systems running the UNIX or Linux operating system (it's also commonly found on computers running other operating systems), it is widely used by UNIX and Linux users, and it is perfect for editing files over remote or low-speed connections. Since vi has a large number of features to support its extensive functionality, this module is designed to introduce you to the basics so that you can start using it immediately.

- Entering vi
- Exiting (quitting) vi
- Saving your work without exiting
- Switching to input mode to add text
- Diagram of vi editor modes
- Cursor movement

Introduction to Shell Scripting/Programming

A shell program, or script, in its simplest form is a collection of UNIX or Linux operating system commands that are executed as a group. Looking at a shell script from a more advanced perspective, it is a complete program written using a shell's programming language.

Shell scripts are used for executing frequently performed tasks, controlling operating system startup and shutdown, handling system administration duties, and for installing and configuring software products. This brief list shows how a shell script can be used for accomplishing many diverse activities.

Another advantage of a shell script is its portability. A shell script written on a particular version of the UNIX or Linux operating system can often be copied to and ran on other versions of these operating systems.

- Creating a shell script
- Accessing data from a shell script
- Test command
- Conditional/flow control statements
- Loop structures
- Checking return codes

Tools and Utilities

There are many tools and utilities available with the UNIX or Linux operating system that are used for completing a variety of tasks. This module will introduce you to a few of the more commonly used ones.

- The tar utility
- The gzip utility
- FTP (File Transfer Protocol)
- Ping (Packet Internet Groper)

Interacting with Other Users

Sometimes you will need or want to know who else is logged in on the system you are on, and you may also need to communicate with the other users. There are multiple utilities for identifying who else is on the system, and additional utilities for communicating with them. This module will introduce you to these frequently used utilities.


There are no prerequisites for this course other than the desire and dedication to learn the basics of the UNIX and Linux operating systems, to include UNIX shell scripting.

Course Duration

You will have access to the online course content and Internet Lab system for 8 weeks (24/7). This initial access period can be extended (with NO additional fee) if you need more time to complete the course.

Course / Lab Support

Your "Getting Started" email will contain the name and email address of your assigned LiveFire Labs training specialist, who will check in with you shortly after you start the course to find out how things are going and to see if you have any questions. You can also email your training specialist, who is an experienced UNIX technologist, whenever you have questions about the course material or hands-on lab exercises.

Getting Started

Follow the registration steps below if you are ready to start learning the fundamentals of UNIX/Linux, or contact us with any questions you may have. You can optionally check our FAQ for answers to common questions or view our Testimonials page to read what previous students think about our online courses and Internet Lab.