Chabot College November 1999 Replaced Fall 2010 Course Outline for Computer Science 42 UNIX TOOLS, SHELL PROGRAMMING AND SYSTEM ADMINISTRATION CONCEPTS Catalog Description: 42 - UNIX Tools, Shell Programming and System Administration Concepts 2 units Further experience with UNIX tools. Enhanced shells. Emphasis on Linux variant of UNIX. Basic networking concepts. Writing and testing shell scripts. Processes and scheduling. Security issues. Basis System administration. Prerequisite: Computer Science 41 (completed with a grade of “C” or higher). 1.5 hours lecture and 1.5 hours lab. [Typical contact hours: lecture 26.25, laboratory 26.25] Prerequisite Skills: Upon entering into the course the student must have a working knowledge of user-level UNIX terminology and commands. Specifically: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Basic knowledge of UNIX operating system capabilities Components of a UNIX system: file system, utilities, shell, kernel Files and directory management UNIX shells and shell variables Redirection, piping and background processes Exposure to tools such as grep, find, cut, paste, join, sort Sending, reading and managing electronic mail Use of the vi and/or emacs editors Compiling, linking, and running a simple C program under UNIX UNIX-based Internet resources Expected Outcomes for Students: Upon completion of the course, the students should: 1. 2. 3. 4. 5. 6. 7. 8. Be proficient in using UNIX tools; Know about the Linux variant of Unix; Have a working knowledge of enhanced UNIX shells; Be able to program and use shell scripts; Have a basic knowledge of awk; Be familiar with process control: Be familiar with security issues; Be familiar with basic system administration concepts and procedures. Course Content: 1. UNIX tools a. Patterns in files b. Columns and fields c. Sorting and file comparison d. Examining and changing file information e. Monitoring input and output Chabot College Course Outline for Computer Science 42, Page 2 November 1999 f. Displaying date and time 2. Linux variant of Unix a. Where to obtain Linux b. Features of Linux c. Setting up Linux 3. Enhancing UNIX shells a. The C Shell and its variants b. The Korn Shell and its variants c. Sources and sites 4. Writing shell scripts a. Executing a script b. Arguments c. Shell input and output: echo, read, etc. d. Conditional execution: if, test, if..elif…else, case e. Logical operators: && and || f. Loops g. Command line options h. Debugging scripts 5. The UNIX tool: awk a. How awk works b. Patterns c. Actions d. Input and output\ 6. Process control a. The ps command and its options b. Killing a process c. Parent and child processes d. Scheduling with the at and batch commands e. Daemons and zombies f. Priorities: nice, sleep, wait 7. Security issues a. User and Group Ids b. Password files c. File encryption d. Terminal locking e. Trojan horses, viruses and worms 8. Be familiar with basic system administration concepts and procedures a. Multiuse and multitasking concepts b. Directory structure from the administrator’s point of view c. Installation issues (Linux specifically) Chabot College Course Outline for Computer Science 42, Page 3 November 1999 d. e. f. g. h. Superuser permissions, passwords, log in Startup and shutdown (changing system states) Default user environment and profiles Accounts, users and groups Maintenance tasks such as backups, displaying the current system state, resetting passwords, checking disk space, etc. i. Tips for secure system administration Methods of Presentation: 1. 2. Lecture, demonstrations and discussion Student use of the College UNIX System Textbook(s) (Typical): Unix The Complete Reference, Rosen, Host, Farber, Rosinski. Osborne-Mc Graw Hill Publishers, 1997. Methods of Evaluating Student Progress: 1. 2. 3. Exams Students will be asked to implement assigned projects Attendance Special Student Materials: Computer use fee paid at the time of registration CC/hps CourseOutlines/CS/42/991028