Courses by Category
Click on a category below to see a listing of courses.

This course is available for customized on-site delivery for groups of 3 or more students.
Contact us today at 877-258-8987 for more information or a quote.

Scroll down the page for a list of upcoming course dates in our public calendar.

Shell Programming with BASH (4 days)


This course teaches the Linux administrator how to program using the BASH shell. Shell scripting is one of the fundamental skills that enables an administrator to effectively manage Linux systems.

Shell Programming with BASH Course Calendar (4 days)

Call for upcoming dates or on-site delivery.

1 Includes airfare from anywhere in the continental United States and some parts of Canada as well as accommodation and shuttle services.
spacer
2 Include course and course materials only.
spacer
3 Requires a broadband internet connection and microphone. Note that Virtual LIVE courses are led by an instructor, and as such start and end in local time (based on the course location), this my differ from your time zone.
spacer
For government and education pricing, please contact us.

Recommended Pre-requisites

Students attending this BASH training course should have a basic understanding of Linux Fundamentals, including the File System Heirarchy standard. Students considering attending this course should know how to access system help. The Novell 3036 (SUSE Linux Fundamentals) course is ideal for preparing students for this course.

Course Outline/Agenda

Below is a basic outline of the material covered in this BASH training

  • BASH Basics
    • Understanding the role & history of the shell
    • The working directory
    • Tilde notation
    • Filenames, wildcards, and pathname expansion
      • Wildcard characters
      • Set operators
      • Brace expansion & nested brace expansion
      • Shell metacharacters and quoting
    • Common Unix utilities
      • cat
      • head & tail
      • awk
      • sed
      • grep
      • tr
      • find
      • sort
      • cut
    • Input/Output Channels
      • Standard Input
      • Standard Output
      • Standard Error
      • Output redirection
    • Process management
      • Background jobs & job priorities
      • Background I/O
      • Control keys
      • Using Piplines
  • Command-Line Editing
    • Leveraging the history
    • Changing the command line editor
    • Command line completion
  • Customizing the BASH Environment
    • Login and logout script (profile)
    • Command aliases
    • Shell variables
      • Variable quoting
      • Built-in variables
    • Prompt variables
    • Search path variables & command hashing
    • The CDPATH variable
    • The USER variable
    • Terminal variables
    • Variable creation
    • Variable scope
  • Basic Shell Programming
    • Scripting conventions
    • The shebang
    • Execution permissions
    • Using source for script execution
    • Creating (& removing) shell functions
      • Shell & function arguments
    • Using positional parameters
    • Changing the Internal Field Separator (IFS)
    • Declaring and using local variables (limited scope)
    • Shell string operators
    • Shell pattern matching
    • Command substitution
    • Returning values from functions
      • Understanding BASH return codes
  • Flow Control
    • The test statement & it's equivalents
      • Test combinational logic
      • File tests
      • String tests
      • Numeric tests
    • Decision making in BASH
      • The if/else statements
      • The for statement
      • The case statement
      • The select statement
      • The while & until statements
    • Command-Line Options and Variable Typing
      • Using getopts to parse arguments
      • Using shift to iterate through arguments
      • Using declare to type variables
      • Performing shell math
        • Working with integer variables
        • Arithmetic shortcuts
        • Arithmetic for loops
      • Working with shell arrays
  • Input/Output Command-Line Processing
    • Using labels to store data
    • Using echo & read commands
    • Using printf
    • Reading information from files
    • Using command, builtin & enable
  • Process Handling
    • Process ID's & Job numbers
    • Foreground and background processes
    • Signal handling
      • Using traps to catch signals
      • Ignoring signals
      • disowning HUP
      • Resetting traps
      • Using wait to delay exits
    • PID variables
  • Debugging Shell Programs
    • Performing syntax checking
    • Command echo modes
    • xtrace mode
    • Using fake signals
  • BASH Administration
    • Controlling default file permissions
    • Controlling process limits
    • BASH command line options
    • Using the restricted BASH shell to provide added security
  • Shell Scripting
    • Understanding the practical uses of shell scripts
    • Resource issues with shell scripts
    • Choosing the best tool for the job

Class Size

This class is limited to a maximum of 12 students.

On-Site Delivery

This course is available for on-site delivery for groups of 3 or more students.

OTG offers discounted training for on-site courses of more than 3 students - call us at 877-258-8987 (or submit the form on the upper right side of this page) for more information.

Course Details
This course is delivered by one of our Subject Matter Experts, with over a decade of Linux experience. It is a combination of hands-on exercises and lecture.

Instructional Materials
The following materials are used to deliver this course:
  • OTG Course Guide
  • Learning the bash shell (O'Reilly & Associates)
Adobe PDF Logo View course guide table of contents
Requires Adobe Acrobat Reader

Enroll in this course

Novell Gold Partner Logo

View upcoming course calendar

info@otg-nc.com
877-258-8987