Linux Essentials

Length: 5 Days

Prerequisite: Basic computer skills

Recommendation Statement:
The student should be able to use a computer monitor, keyboard, mouse. Student needs to be able to input commands and control characters from a keyboard.

Course Description:
For those new to Linux, this is the first course you will take.

The course starts at the beginner level and works into intermediate and advanced Linux commands and utilities. The student is introduced to the Bash shell, the command line and command syntax. Although you will be exposed to the GUI desktop interface available in Linux, this course teaches Linux at “the command line level” to develop a thorough understanding of the Linux operating environment.

The student learns how to navigate the Linux file systems and how to work with files, directories and permissions. The student will learn how to use the Linux editors “ex”, “Vi“ and “VIM” along with a few others.  Once the student is comfortable with basic Linux commands, they’ll move onto advanced power tools as well as how to customize the Bash shell.

The classroom labs are run in a real-world Linux environment, labs are structured to allow you to learn by doing and are developed to simulate “real world” situations. The hands-on labs progressively build your Linux knowledge and command skills in a clear and concise manner.

Working in a controlled Linux classroom environment with an expert instructor, you will learn Linux concepts and commands. You will receive professional tips and techniques that will help you build your Solaris confidence and skills

Upon completion of this course, you should be able to:

  • Log in and log out of the Linux OS
  • Use the desktop GUI environment
  • Compose command-line strings to perform functions
  • Navigate the directory tree
  • Manipulate text files
  • Create files and directories
  • Back up and restore user files and directories
  • Change permissions of files and directories
  • Use the Vi and Vim text editor
  • Identify and modify bash initialization files
  • Employ bash shell features to streamline command execution
  • Use basic network commands
  • Use commands to search directories and files
  • List active user processes and selectively kill user processes

Linux Essentials

Detailed Course Outline

Introduction to the Linux Operating System

  • Understand the evolution of the Linux OS and the various Linux Distributions
  • Understand how to identify your Linux Distribution and OS release
  • Linux standardization – an overview of standards in the Linux community
  • Describe Linux shells (which shells are available, compare the common Linux shells, how to choose a shell)
  • Describe the Linux kernel

Establishing Communication

  • Log in and starting a shell session
  • GUI desktop environments available to the Linux user
  • Understanding the Linux command syntax
  • Using emulation programs to access the system (ie. Putty / X-Windows / Telnet / SSH )
  • Setting your terminal environment (stty)
  • Executing commands from the command line; Linux Command syntax
  • Using the Linux “help” facility: manual pages

Introduction to the Filing System

  • Examining Linux files and directories
  • Describe the Linux file system and directory structure
  • Navigating the Linux directory hierarchy
  • Understand the difference between full and relative paths
  • Understanding the current and parent directories
  • Understanding the differences between a Windows/DOS based filesystem and a Linux file system
  • Differences between Windows (DOS) files and Linux files
  • Describe mount points – mounting and unmounting filesystems
  • Describe hard and symbolic links
  • Describe home directories
  • Disk space and checking the status of disks, filesystems, and directories (ie. du and df commands)

File Management

  • Creating directories
  • Copying files and directories
  • Moving and renaming files and directories
  • Removing files and directories
  • Using shell metacharacters
  • Locating files by name, owner, type and other parameters using the ‘find’ command

Linux Permissions

  • Understanding permissions
  • File permissions
  • Directory permissions
  • Change permissions with symbolic mode
  • Change permissions with absolute (octal) mode
  • Determine and set the umask value

Redirection Filters and Pipes

  • Exploring standard input, standard output, and standard error
  • Using filters
  • Using pipes

Using the vi Editor

  • Understand the Linux command line ASCII editors
  • Understand the Vi modes
  • Create/view/manipulate/save/delete files using the Vi editor
  • Use a Vi initialization file

Introduction to shell scripts

  • Creating simple shell scripts
  • Choosing a Shell for your scripts
  • The Bash Shell and Variables
  • Understand the Pros and Cons of all the Linux shells
  • Displaying the shell default variables
  • Create/Remove user shell variables
  • stty to set terminal types (backspace, etc.)

Introduction to the POSIX shell

  • Shell initialization files (.profile, .bashrc)
  • Understand set, export and env builtins for the bash shell
  • Use bash shell variables
  • Assign values to shell variables
  • Display the value of shell variables
  • Make variables available to subprocesses using the export statement
  • Display the value of environment variables
  • Unset shell and environment variables
  • Customize the user environment using shell initialization files
  • Perform arithmetic operations
  • Create and use aliases
  • Display aliases and the values assigned to them
  • Display the built-in aliases
  • Customize the bash shell environment
  • Use the tilde expansion and command substitution features of the bash shell

Using Aliases and Functions

  • Introducing the alias concept
  • Using functions
  • Making your aliases and functions permanent
  • Removing aliases and functions

Command Editing and Command History

  • Enabling command editing in the bash shell
  • Using history to recall commands
  • The command history file

System Status and Command Information

  • Displaying system information and user status
  • Determining command locations

Multitasking Capabilities

  • Introduction to multitasking in the Linux environment
  • Managing jobs and background processes
  • Using the process table to manage processes
  • Introducing delayed and detached jobs
  • Display system processes
  • Use processes and process identifiers (PIDs)
  • Identify parent and child processes
  • Terminate processes using the kill command

Advanced File Management

  • Creating links
  • Processing files with “awk”, “tr”, and “sed”
  • Use awk/nawk commands from the command line
  • Write awk programs to generate data reports from text files
  • Write awk programs to generate numeric and text reports from text files

Command line data processing

  • Using awk to display file contents and process data
  • Formatting files with the tr command
  • Using Linux filters to filter, sort and restructure data
  • Use awk to scan text files or standard input to display specific data, change data format, and add text to existing data

Archiving User Data

  • Managing file space
  • Archiving files and directories
  • Compressing files
  • Use the tar utility to store files
  • Backup files with the tar and compress commands
  • Use compression tools to save storage space (zip, gzip, etc)


  • Accessing printers and printing from the bash shell

Remote Connections

  • Remotely access a system using telnet or ssh
  • Transfer files with sftp and scp (using the command line)

Regular Expressions and the grep Command

  • Use and describe regular expressions
  • Describe the grep command
  • Use the grep command to find patterns in a file
  • Use the regular expression characters with the grep command
  • Metacharacters
  • The grep command

Stream Editing with ‘sed’

  • Use sed to perform noninteractive editing tasks
  • Substituting text
  • Deleting and printing lines
  • Reading and writing files
  • Multiple ‘sed’ editor functions
  • Use regular expression characters with sed 

Writing and Debugging Scripts

  • Creating a shell script
  • Put comments in a script
  • Change permissions on a script
  • Execute a script
  • Debug a script

String Manipulation

  • String Comparison
  • String Relations
  • Concatenation
  • Substring Manipulations
  • Wildcards and Pattern Matching


  • Use the exit status of a command as conditional control
  • Use the “if” statement to test a condition
  • Pass values using command-line arguments (positional parameters) into a script
  • Create USAGE messages
  • Place parameters on the command line
  • Use conditional if, then, elif, else, and fi constructs
  • Use exit, let, and test statements ([[ ]], ” “)
  • Apply the &&, ||, and ! Boolean logic operators
  • Use the case statement

Interactive Scripts

  • Use the print and echo commands to display text
  • Use the read command to interactively assign data to a shell variable
  • Read user input into one or more variables, using one read statement
  • Use special characters, with print and echo, to make the displayed text more user friendly
  • Create a “here” document
  • Use file descriptors to read from and write to multiple files


  • Write scripts that use for, while, and until loops
  • Write a script using the select statement
  • Describe when to use loops within a script
  • Generate argument lists using command, variable, and file-name substitution

Advanced Variables, Parameters, and Argument Lists

  • Declare strings, integers, and array variables
  • Manipulate string variables
  • Change the values of the positional parameters using the set statement within a script
  • Pass values using command-line arguments (positional parameters) into a script
  • Declare string and array variables
  • Setting and retrieving arrays
  • Set default values for parameters
  • Use the shell built-in let, print, set, and typeset statements
  • Reading user input
  • Positional parameters
  • Creating positional parameters
  • Conditional substitution
  • Working with arithmetic operators and data


  • Create user-defined functions in a shell script
  • Create, invoke, and display functions from the command line
  • Pass arguments into a function
  • Call functions from special (function) files that are saved in one or more function directories
  • Describe where functions are available for use

Controlling Script Behavior

  • Manage the use of temporary files
  • Write scripts using the setuid bit
  • Use the crontab command

Scheduling Execution

  • Sleep
  • Date
  • Cron and crontab


  • Describe how the trap statement works
  • Include trap statements in a script
  • Use the trap statement to catch signals and handle errors