Catalog Description
- Transfer Status
- CSU
- Unit(s)
- 3.00
- Lecture: 34.00 Contact hours/68.00 Out of class hours/102.00 Total hours/2.00 Unit(s)
- Lab: 51.00 Contact hours/0.00 Out of class hours/51.00 Total hours/1.00 Unit(s)
- Total: 85.00 Contact hours/68.00 Out of class hours/153.00 Total hours/3.00 Unit(s)
Course Description: This course introduces a variety of the tools and concepts used while working with a UNIX/Linux-based computer system. Students will learn to write shell scripts using basic commands and regular expressions. They will then use those tools to write scripts first with basic shell commands, then with grep, sed, and awk, then with more advanced decision-making and flow control commands. Other scripting tools such as Perl and Python will also be explored. Students will write shell script programs to exercise their understanding of tools and concepts. This course will be taught using a combination of lectures, demonstrations, discussions, and hands-on labs. (C-ID ITIS-135).
Objectives
Upon successful completion of this course, the student should be able to:
- Construct regular expressions containing metacharacters for use at the command line or in shell scripts.
- Demonstrate proficiency using: grep to search for regular expressions in files; the vi editor for creating and editing text files; sed to perform editing tasks useful in shell scripts; and awk for manipulating data and generating reports.
- Write shell scripts: using command substitution to capture program output; to perform repetitive tasks using while and for loops; using conditional statements to control the execution of shell scripts design and implement shell functions; and identify and process command-line arguments.
- Write shell scripts using Bash, demonstrating knowledge of the appropriate environment commands to accomplish tasks such as data search and retrieval, file editing, system administration and backup.
- Write a simple program using PERL, Python, and/or to access a MySQL database.
Course Content
Topic Titles / Suggested Time Topic
Lecture
| Topics | Lec Hrs |
|---|---|
The Shells:
| 4.00 |
Shell Scripting:
| 15.00 |
|
Programming Tools:
| 10.00 |
Getting started and working with shell scripting:
| 5.00 |
| Total Hours: | 34.00 |
Lab
| Topics | Lab Hrs |
|---|---|
Getting started and working with shell scripting
| 7.00 |
The Shells:
| 4.00 |
|
Shell Scripting
| 20.00 |
Programming Tools:
| 20.00 |
| Total Hours: | 51.00 |
Methods of Instruction
- Demonstrations
- Group Discussions
- Lecture
- Multimedia Presentations
Methods of Evaluation
- Quizzes
- Projects
- Homework
- Lab Projects
- Mid-term and final examinations
- Examinations
Examples of Assignments
Reading Assignments
- Read the manual (man) page for the grep utility, taking note of the options that are available when executing this command. Be prepared to write grep commands to solve a series of problems in class.
- Read the article "In the Beginning was the Command Line" by Neal Stephenson. Be prepared to discuss the culture of Linux as presented by Stephenson, in particular the "Egypt analogy" and the Debian distribution.
Writing Assignments
- Write a one-page vi "starter guide" for a person who has never used the vi editor. In your guide, include a brief description of the history and key features of vi and an annotated list of the vi commands you consider to be most important for a new user to learn.
- Using the LinuxCareer.com website as a starting place, and internet research to gather additional information, write a 1-2 page report detailing the current demand for Linux professionals in the workforce, and the specific Linux skills required of these professionals.
Out-of-Class Assignments
- Based on the commercial use case provided by the instructor, write a report detailing your recommendations for an open source web server and database server. Be sure to address security issues in your recommendation.
- Design and implement a shell script to perform a backup of your home directory and all of its contents, including all directories, sub-directories, hidden files, and non-hidden files. Your script should compress the backup into a tarball. Test your script thoroughly and be prepared to demonstrate your working script in class.
Recommended Materials of Instruction
Bresnahan, C., & Blum, R. (2019). LPIC-1 Linux Professional Institute Certification Study Guide Exam 101-500 and Exam 102-500. Wiley, 5th. 9781119582120.
Suehring, S. (2019). LPIC-1 Linux Professional Institute Certification Practice Tests: Exam 101-500 and Exam 102-500. Wiley, 2nd. 9781119611097.
Shotts Jr., W. (2019). The Linux Command Line: A Complete Introduction. No Starch Press, 5th. 9781593279523.
Sobell, M. (2017). A Practical Guide to Linux Commands, Editors, and Shell Programming. Addison-Wesley Professional, 4th. 9780134774602.
Robbins, A. (2016). Bash Pocket Reference: Help for Power Users and Sys Admins. O'Reilly, 2nd. 9781491941591.
Zero Cost Textbook
Shotts, Jr., W. (2019) The Linux Command Line. http://linuxcommand.org/tlcl.php
Minimum Qualifications
Computer Information Systems
Computer Science (Masters Required)
Computer Service Technology