Unix/Linux Shell Scripting

Learn the essentials of Unix/Linux shell scripting.

  • 2 Days
  • Intermediate
  • In-person / Online
  • £ On Request


This course introduces the Unix operating system and enables you to write Unix Shell Scripts. Delegates will incrementally build scripts of increasing complexity, and learn to perform tasks such as console I/O, text manipulation, arithmetic, process control and signal handling. The course is taught using the Korn shell, but also discusses Bash, Bourne and C shells. The course can be delivered on any version of UNIX, but typically Red Hat or Ubuntu Linux is used. Tools specific to particular flavours of UNIX (e.g. DTrace on Solaris) are not covered by default, but can usually be included if required.

As with all our courses, the syllabus can be tweaked to cover more advanced topics, depending on your needs.


Review of Core Concepts

  • The history and evolution of UNIX
  • The filesystem, mounting devices and inodes
  • Processes, threads, scheduling and signals
  • Using the essential UNIX commands
  • Comparing the different UNIX shells
  • Picking the right shell for the job

Starting Shell Programming

  • Why shell scripts are an essential tool
  • Using the shebang line to pick an interpreter
  • Declaring and working with shell variables
  • Built in operators for testing and arithmetic
  • Evaluating expressions using the expr command
  • Testing variables with if and case
  • Creating and controlling for, while and until loops
  • Debugging your shell scripts

Regular Expressions

  • How a Regular Expression Engine operates
  • The difference between basic and extended regular expressions
  • Options for using regular expressions in shell scripts
  • Creating character classes and specifying multiplicities
  • Meta-characters for specifying positions in the input
  • Using parenthesis for grouping and submatches
  • The non-greedy versions of *, + and ?
  • Using parentheses that do not capture
  • Applying modifiers to only part of the expression
  • Using look-around assertions to match without capturing

Creating Useful Scripts

  • Creating formatted output with printf
  • Working with environment variables
  • Testing the exit status of a command
  • Looping till a command is successful
  • Discarding command output using /dev/null
  • Using /dev/zero to create test files
  • Testing the attributes of files
  • Returning an exit status from your script
  • Processing command line arguments
  • Reading and parsing input from the keyboard
  • Processing files one line at a time
  • Creating and working with arrays

Using the Sed Tool in Shell Scripts

  • Understanding how Sed transforms text input
  • Working with commands and addresses
  • Manipulating the contents of the pattern space
  • Using the hold buffer to copy and paste text
  • Sed commands for selection and iteration

Using the Awk Tool in Shell Scripts

  • Understanding how Awk processes text
  • Breaking up input into records and fields
  • Writing actions to processes records
  • Using regular expressions in actions
  • Awk commands for selection and iteration
  • Adding functions to Awk scripts

Advanced Shell Programming

  • Trapping and handling signals
  • Running other programs via exec
  • Starting, monitoring and deleting processes
  • Breaking up scripts into functions
  • Security issues with shell scripts

Alternatives to Shell Scripting

  • How Perl improves and extends shell scripting
  • Object-oriented scripting using Ruby and Python

Unix/Linux Shell Scripting

Learn the essentials of Unix/Linux shell scripting.

  • 2 Days
  • Intermediate
  • In-person / Online
  • £ On Request

Deloitte logo
Atlassian logo
Bose logo
Workday logo
BMW logo
Amex logo
McAfee logo
PWC logo