Linux Fundamentals
Request a Class



COURSE TIMES: 9:00am - 4:30pm

Printable version of this course


This is a challenging course that focuses on the fundamental tools and concepts of Linux and Unix. The course's focus on proficient use of the command line benefits all skill levels. Beginners develop a solid foundation in Unix, while advanced users discover patterns and fill in gaps in their knowledge. The course material is designed to provide extensive hands-on experience. Topics include: basic file manipulation; basic and advanced filesystem features; I/O redirection and pipes; text manipulation and regular expressions; managing jobs and processes; vi, the standard Unix editor; automating tasks with shell scripts; managing software; secure remote administration; and more.


Students should be comfortable with computers. No familiarity with Linux or other Unix operating systems is required.


*Course cost listed does not include the cost of courseware (required) or lunch (optional). Please contact us at or 207-775-0244 for additional pricing information, or if you have any questions. Course is subject to minimum enrollment. Course may run as a Live Distance Learning (LDL) session if minimum enrollment is not met.


What is Linux?
UNIX Origins, Design Principles, Time line
GPL - General Public License
The Linux Kernel
Linux Features
Popular Uses of Linux
What is a Distribution?
Components of Distributions
Slackware and Mandriva
Red Hat
SUSE Linux Products
Debian and Ubuntu

Multi-User Concepts
got root?
Logging In
Switching User Contexts
Gathering Login Session and System Info
Getting Help with man & info
$MANPATH, whatis and apropos
Help from Commands and Documentation

The Linux Filesystem
Filesystem Support
UNIX/Linux Filesystem Features
Filesystem Hierarchy Standard
Navigating the Filesystem
Displaying Directory Contents
Determining Disk Usage
Disk Usage with Quotas
File Ownership
Default Group Ownership
File and Directory Permissions
File Creation Permissions
Changing File Permissions

Manipulating Files
Directory Manipulation
File Manipulation
Deleting and Creating Files
Physical Unix File Structure
Filesystem Links
File Extensions and Content
Displaying Files
Previewing Files
Displaying Binary Files
Searching the Filesystem
Alternate Search Method
Producing File Statistics

Text Processing
Searching Inside Files
The Streaming Editor
Text Processing with awk
Replacing Text Characters
Text Sorting
Duplicate Removal Utility
Extracting Columns of Text
Merging Multiple Files

Shell Basics
Role of Command Shell
Communication Channels
File Redirection
Piping Commands Together
Filename Matching
File Globbing and Wildcard Patterns
Brace Expansion
Shell/Environment Variables
Key Environment Variables
General Quoting Rules
Nesting Commands
Multiple and Multi-line Commands

Regular Expressions
Regular Expressions
RE Character Classes
RE Quantifiers
RE Parenthesis

Archiving and Compression
Archive with tar and cpio
The gzip Compression Utility
The bzip2 Compression Utility
The Zip Archiving/Compression format

Text Editing
Text Editing
Pico/GNU Nano
Pico/Nano Interface and Shortcuts
Vi and Vim
Basic Vi
Learning Vi
Intermediate Vi
The Emacs Interface
Basic Emacs
More Emacs Commands

Command Shells
Identifying the Shell
Changing the Shell
sh: Configuration Files
sh: Script Execution
sh: Prompts
bash: Bourne Again Shell
bash: Configuration Files
bash: Command Line History
bash: Command Editing
bash: Command Completion
bash: shortcuts

Introduction to Shell Scripting
Shell Scripting
Example Shell Script
Positional Parameters
Input & Output
Doing Math
Comparisons with test
Conditional Statements
Flow Control: case
The for Loop
The while Loop

Process Management and Job Control
What is a Process?
Process Creation
Process States
Viewing Processes
Tools to Send Signals
Job Control Basics
Jobs screen
Using screen
Advanced Screen

Command Line Messaging
System Messaging Commands
Controlling System Messaging
Internet Relay Chat
Instant Messenger Clients
Electronic Mail
Sending Email with sendmail
Sending Email with mail
Overview of Pine
Sending Email with Pine

The Secure Shell (SSH)
Secure Shell
ssh and sshd Configuration
Accessing Remote Shells
Transferring Files
Alternative sftp Clients
SSH Key Management

Managing Software
Downloading Software
wget, lynx & links
Installing Software
Installing Binary Packages - RPM
Querying and Verifying with RPM
Compiling/Installing from Source
Installing Source RPM Packages

Linux Printer Sub-systems
Common UNIX Printing System
Configuring Print Queues
Standard Print Commands
Format Conversion Utilities
enscript and mpage

Mounting Filesystems & Managing Removable Media
Filesystems Concept Review
Mounting Filesystems
Filesystem Table
Automating Mounts
Removable Media
Preparing Floppy Diskettes
The mtools Package
mtools Commands

The X Window System
X Modularity
X.Org Drivers
Starting X
Display Manager Concepts
X Access Control
Remote X Access (historical/insecure approach)
Remote X Access (modern/secure approach)
Alternative Remote Graphical Protocols
Customizing X Sessions
Starting X Apps Automatically
Window Manager Concepts