Purdue School of Engineering and Technology

Purdue School of Engineering and Technology

Unix Programming and Administration

CIT 38100 / 3 Cr.

This course will teach students to effectively administer and develop applications in Linux/Unix. Emphasis will be on the ability to read, write and debug shell script programs. An exploration of Windows scripting languages will also be covered.

  • Provided

Course Outcomes (What are these?)

  • Interpret, write, and debug shell script programs (CIT j, m)
  • Write a program using Linux/Unix tools such as grep, sed (CIT J)
  • Become proficient in the use of regular expressions (CIT j)
  • Write programs using Windows scripting languages (CIT j, m)
  • Compare shell scripting in Linux/Unix to that of other operating systems such as Windows (CIT j, m)

CIT Student Outcomes (What are these?)

(j) An ability to use and apply current technical concepts and practices in the core information technologies.

(m) An understanding of best practices and standards and their application.

  • Review of UNIX history and basics
  • Vi editor
  • File systems and permissions
  • Shell basics
  • Filters and pipes
  • Regular expressions
  • Grep
  • Sed
  • Awk
  • Shell features
  • Basic shell scripting
  • Advanced shell scripting
  • Perl programming
  • Windows shell scripting


  • 3 Exams
  • Lab Assignments
  • Attendance/Participation
Principles of Undergraduate Learning (PULs)

1b. Identify and propose solutions for problems using quantitative tools and reasoning.

1c. Make effective use of information resources and technology.

2. Critical Thinking

4. Intellectual Depth, Breadth, and Adaptiveness

5. Understanding Society and Culture

6. Values and Ethics

What You Will Learn

Review of UNIX history and basics

  • Learn about the evolution and history of Unix and Linux
  • Review operating system concepts
  • Understand the components of Unix
  • Examine basic Unix commands

Vi editor

  • Understand file concepts
  • Learn about text editing in Unix
  • Create script files
  • Copy and replace text
  • Merge files
  • Use vi to search for patterns

File systems and permissions

  • Learn about different file systems
  • Examine different file types in Unix
  • Understand blocks and inodes
  • Create symbolic and hard links
  • Understand security principles
  • Set up groups and file permissions

Shell basics

  • Learn about the shell environment
  • Examine the different Unix shells
  • Learn about redirection of standard input and output
  • Understand command substitution
  • Examine job control and processes
  • Learn about the use of shell variables

Filters and pipes

  • Understand the concepts of filters and pipes
  • Use filters with pipes
  • Examine various filter commands
  • Learn when to use filters and pipes

Regular expressions

  • Understand the concept of regular expressions
  • Examine the different regular expression operators
  • Learn how to perform pattern matching
  • Understand where regular expressions can be used


  • Learn about grep and its related commands
  • Understand how to search files using the grep command
  • Search a specific directory for files
  • Use grep to search all directories for a particular file


  • Understand sed and its uses
  • Learn about addresses in sed
  • Examine different sed commands
  • Create sed scripts
  • Evaluate the difference between grep and sed


  • Learn about the awk utility and its uses
  • Understand awk components
  • Create awk scripts
  • Use awk statements and functions
  • Evaluate the differences between grep, sed, and awk

Shell features

  • Understand streams
  • Learn about different types of shell variables
  • Set up shell variables
  • Customize the shell environment
  • Examine the command execution process

Basic shell scripting

  • Understand script concepts
  • Create shell scripts
  • Learn about different expression types
  • Use arguments and parameters in scripts
  • Examine if statements and looping constructs
  • Debug shell scripts

Advanced shell scripting

  • Learn advanced scripting techniques
  • Understand variable substitution
  • Define functions in shell scripts
  • Use arrays in shell scripts
  • Understand signals
  • Be able to open and close files
  • Evaluate user interaction and scripting

Perl programming

  • Understand the basics of the Perl language
  • Identify and use data types in Perl
  • Understand differences between the awk program and Perl
  • Access disk files in Perl
  • Use Perl to sort information
  • Understand how to determine file status using Perl
  • Understand how Perl and CGI are used for creating dynamic Web pages

Windows shell scripting

  • Learn about shell scripting in Windows
  • Compare shell scripting in Unix to other operating systems
  • Understand the basics of Powershell
  • Create shell scripts in Windows
  • Execute and debug Powershell scripts