Linux & Open-Source Training Linux Laptops Linux Services

Shelll Programming

Course Description

This hands-on course is a Lecture/lab format with 50% for each. Students will write many shell programs. Many examples are presented and enhanced by the students. This class covers Linux virtualization from the introductory level up to a more advanced level. Not only covering “how to” but also the “how” of how things work behind the scenes. How virtualization is implemented on Linux. From the role of qemu to the role of the Intel and AMD specialized instructions.

We examine what virtualization really means. We compare containers, processes, threads, chroot, KVM, and how these all provide separation and more.

Course Objectives

  • To provide an understanding of the essentials of  shell programming with Bourne Shell family shells such as Bash.
  • To give you practical experience in writing and using shell scripts.
  • To provide experience in understanding run-level scripts on Linux.

    After this class attendees will be able to:
    • Write shell programs that use the various data types and control structures of the Bash/Posix/Korn shell.
    • Describe the use of environment and local variables.
    • Use functions and subshells.
    • Write robust shell programs with error checking.
    • Use the related facilities of AWK, SED, and Expect
Who Should Attend

Linux/UNIX system administrators, developers, or power users. Users with a need to automate tasks.

Course Materials

The workshop materials include a comprehensive student workbook. The workbook contains all of the slides used in the course as well as hands-on lab exercises.
The following modules will be covered during the class:


  • Declarations
  • Functions
  • Processing options and arguments
  • I/O Here Documents
  • Control Structures
  • Expressions
  • Performance
  • Arrays
  • Menus
  • AWK, SED , Expect
Class Duration: Two days

Enrollment Form

Prerequisites: We will use Linux command line and GUI tools. We will also examine code in the Linux kernel a bit. Some experience with the Linux command line is required. Some familiarity with C will be helpful.If you have any questions about the difficulty level of the class, please contact us at:  classes (at)

On-site: If you would like to arrange an on-site class, please contact us at: classes (at)

If you don't see this class scheduled in the timeframe/place of your preference, please let us know your preference for timeframe (which month etc.) and any particular geography preference. Send email with your interest to

Receive Announcements & Linux Tips
Linux is a registered trademark of Linus Torvalds.