UNIX/Linux: Essentials and Programming

Course:  UNIXEP
Duration:  5 Days
Level:  I
Course Summary

By combining our UNIX/Linux Essentials and Shell Programming courses, this course not only gets you started as a UNIX/Linux user, but will put you well into the Power User category.

The "Essentials" portion starts off by building on a student's prior experience as a Windows desktop user: developing an understanding of what the UNIX/Linux operating system is, and how it's file-system and commands support familiar file handling activities. Then you'll learn to apply the UNIX/Linux concepts of standard input/output/error and command pipelines as you learn to take advantage of the ways that the Korn or Bash shells interpret commands you enter. We'll cover all the common UNIX/Linux "filter" commands that let you extract exactly the data you need from very large files such as application logs or data-base queries. We'll also discuss some very basic system troubleshooting techniques.

Then you'll move into the "Programming" part, where you'll see that the UNIX/Linux command-line is actually a complete programming language, allowing you to implement sophisticated automation of procedures that less experienced users need to spend time doing manually. We'll also go well beyond the "Essential" use of UNIX/Linux Power Tools such as grep, sed and awk, by thoroughly covering the principles of regular expressions, and how that understanding lets you apply those tools to solve just about any data extraction and processing requirement.

This course is applicable to any version of UNIX and/or Linux, including Solaris, AIX, HP/UX, RedHat, SuSe, Ubuntu and others. The course content is fully applicable to both Korn and Bash shells (but not csh or tcsh), noting where incompatibilities between them occur.

« Hide The Details
Topics Covered In This Course

What Is UNIX/Linux

  • Why Would Anyone Use UNIX/Linux?
  • What Is UNIX/Linux?
  • Components of a UNIX/Linux System
  • The Common UNIX/Linux Shells
  • Accessing A UNIX/Linux System

Getting Started

  • Logging In To UNIX/Linux
  • Installing/Configuring PuTTY
  • Getting To The Shell
  • Working With The Shell
  • Getting Help
  • Try A Few Common Commands

Navigating The Filesystem

  • Translating Windows Explorer to Shell Commands
  • What's That Stuff In My "ls" Output
  • Absolute and Relative File Names
  • Working With Directories
  • Working With Files
  • Standard ?Places? In the UNIX/Linux Filesystem

Basic Shell Features

  • Is It UNIX or Is It Shell ?
  • Shell Magic
  • File-Name Matching
  • A Key UNIX Concept: Standard I/O
  • I/O Redirection
  • Command Pipelines
  • Command Aliases

Editing Files With Vi

  • Editing Without A Mouse
  • "Just Getting By" With Vi
  • "A Bit More Efficient" With Vi
  • Command-Line Editing
  • Avoiding Vi: Copy and Paste
  • Avoiding Vi: File Transfer

Managing Processes

  • Programs and Processes
  • Foreground and Background
  • Basic "Job" Management
  • Advanced Job Management
  • UNIX Signals

What?s Happening on The System

  • What?s Running?
  • Where?s My Drives?
  • Basic Troubleshooting Techniques

Common UNIX Tools

  • Commands That Give You Information
  • Sending E-mail
  • Comparing (Similar) Files
  • Slicing and Dicing Data
  • Analyzing File Content
  • Searching/Filtering Idioms

More Advanced UNIX Tools

  • Sorting
  • Automated Editing
  • Finding Files
  • Processing Files That You Find
  • Archiving With "tar" and "cpio"
  • Compressing Files and Pipelines

Understanding "The Environment"

  • Using Shell Variables
  • Scope of Variables
  • What's In The UNIX Environment
  • Managing File/Directory Access Permissions

Getting Started With Shell Scripts

  • How the Shell Finds Commands
  • Turning A Script Into A Real Command
  • Using Command-Line Arguments
  • Getting Input From The User
  • Getting Data From Other Commands
  • Doing Arithmetic

Conditional ("if") Programming

  • Testing For Command Failures
  • Comparing Strings and Numbers
  • Testing For File Status
  • Short-Circuit Operators
  • Multi-Way Branching Logic
  • Debugging Shell Programs

Loop Programming

  • Iterators
  • Logical Expression Loops
  • Calculated (Counting) Loops
  • Breaking Out of A Loop
  • Looping Through Command-Line Arguments
  • I/O Redirection With Loops
  • Bash/Ksh Differences

Additional Shell Programming Techniques

  • Shell Functions
  • The "dot" command
  • Creating Reusable Libraries
  • The "set" Command
  • The "typeset" Command
  • Using Arrays
  • Substitution Parameters
  • Precise Output Formatting
  • Using Command-Line Options
  • Scheduled Tasks (Cron Jobs)

Understanding Regular Expressions

  • Simple Regular Expressions (Patterns!)
  • Character Classes
  • Anchors
  • Repetition
  • Sub-Expressions and References
  • Basic vs. Extended and Other Implementations

The UNIX Power Tools

  • Getting More Out of Grep
  • Getting More Out of Sed
  • Combining Power Tools With Scripts

Awk: The Ultimate Power Tool

  • One Liners
  • Selectors and Methods
  • Programming Syntax
  • Awk's Built-In Functions
  • "Non-Standard" I/O
  • Extracting Data From Reports
What You Can Expect

This course is fairly intense since it assumes relatively little experience with UNIX/Linux at the start, but by the end it moves into shell and tool techniques that are quite advanced. Consider taking the Essentials and Shell Programming courses separately for a more "relaxed" experience while covering the same topics.

On completing this course, a delegate can expect to be able to:

  • understand the basic structure of the UNIX/Linux operating system, and how its similar to and different from Windows.
  • thoroughly understand UNIX/Linux command-line syntax.
  • use shell wildcards, variables, history, and other syntax to save typing and work more effectively.
  • perform any kind of file-management activity including creating, copying, renaming, and setting access permissions for both directories and files.
  • use pipelined commands to work more effectively at the command-line level.
  • use UNIX tools alone or in combination with shell-scripts for extracting data from, and processing text files.
  • create and maintain your own shell and awk scripts, even fairly complex ones.
  • understand, debug and modify shell and awk scripts originally written by expert UNIX/Linux programmers.
  • do basic troubleshooting of Linux and application operation and performance.
Who Should Take This Course

This course is ideal for technical staff that have user-level experience with mainframe or Windows systems and are finding they now have the need to work as effectively and confidently on Linux based systems. It's also a great refresher for staff who find that their UNIX experience has become dated.

This course is recommended for those staff that will have the need to automate procedures (e.g., system administration, application monitoring, analysis, testing, etc.) using UNIX/Linux. Users who want to be effective UNIX/Linux users, but are not interested in programming, will find the stand-alone Essentials course will meet their needs more effectively.

Recommended Prerequisites

No prior experience with the UNIX or Linux operating system is required, however a background in programming using any language is strongly recommended.

Training Style

Short lecture sessions, along with extensive hands-on workshops.

« Hide The Details
Related Courses
Code Course Title Duration Level
SuSe Enterprise Linux 10 Essentials
5 Days
UNIX/Linux: The Essentials
3 Days
UNIX Shell Programming
3 Days

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at [email protected]