Chabot College Fall 2004 Replaced Fall 2010 Course Outline for Computer Science 41 INTRODUCTION TO UNIX Catalog Description: 41 – Introduction to Unix 2 units UNIX operating system capabilities, history, evolution and major variants. Components of a UNIX system, common commands, directory and file management, UNIX editors, shells, electronic mail and user communication, the C language development environment, Internet resources. Strongly recommended: Completion of, or concurrent enrollment in Computer Science 14 or equivalent programming course in the C or C++ programming languages (completed with a grade of “C” or higher). 1.5 hours lecture, 1.5 hours laboratory. [Typical contact hours: lecture 26.25, laboratory 26.25] Prerequisite Skills: None Expected Outcomes for Students: Upon completion of the course, the students should be able to: 1. display a basic knowledge of UNIX operating system capabilities, history, evolution and identify major variants; 2. differentiate capabilities of a multi-user operating system, UNIX, from those of a single user system such as Windows 95/98/NT; 3. identify the components of a UNIX system: file system, utilities, shell (command interpreter), kernel; 4. use Unix commands to log on and off a UNIX system and change passwords; 5. use Unix commands to manage files and directories; 6. identify various UNIX shells, identify the login shell and recognize shell variables; 7. redirect input and output, pipe commands, and run commands in the background; 8. use (in a basic way) tools such as grep, find, cut, paste, join, sort; 9. send, read and manage electronic mail; 10. use the vi and/or emacs editors; 11. edit, compile and run a simple C program under UNIX; 12. identify, locate, and use UNIX-based Internet resources. Course Content: 1. An overview of the UNIX operating system a. History and philosophy b. Multi-user and multi-tasking abilities c. Differences between Unix and Windows N/T d. UNIX 98 and future directions e. Unix variants: Linux, System V, Solaris, SCO, etc. f. Basic network vocabulary: direct connect, dial-in access, local area networks, Internet (IP) connection to clients 2. Components of a UNIX system a. The kernel b. The shell (command interpreter) c. The file system d. The user level: commands and utilities 3. Getting started. a. User names and password b. Logging on and off c. Changing passwords d. System prompt e. Command options and arguments f. Who and finger commands Chabot College Course Outline for Computer Science 41, Page 2 Effective Fall 2004 g. Stopping a command 4. Directories and Files a. Filenames and extensions b. Special files (physical devices) c. Directory naming conventions d. The directory tree e. Paths: absolute and relative f. Listing the contents of directory g. Changing directories h. The working directory i. Displaying contents of a file j. Printing a file with the lp command and simple formatting using pr and fmt k. Viewing long files with more, less, and pg commands l. Creating, renaming, moving and removing directories m. Moving, copying, deleting, and renaming files n. File and directory permissions (attributes) - observing and changing o. Use of "wildcards" p. Hidden files 5. Processes a. Redirecting standard input/output b. Connecting commands with pipelines c. Running and stopping background processes 6. User to User Communication a. Sending and receiving messages (mail) b. Forwarding messages c. Different UNIX mail systems: pine, elm, etc. d. Dead letters e. Saving messages in a file and printing them, managing the mail f. The write, talk, mesg and wall commands 7. Text manipulation using a line editor such as vi or emacs a. Invoking an editor to create a new file or edit an existing file b. Navigating a text file c. Standard editor functions: insert, delete, replace, find, copy, cut, paste d. Using vi or emacs to work with electronic mail e. Working with more than one open file 8. UNIX shells a. The common UNIX shells b. The login shell and the user profile c. The environment d. Common shell variables such as: PATH, LOGNAME, HOME, TERM, SHELL, MAIL 9. C programs under UNIX a. Compilation b. Linking c. What is a MAKE file d. Execution 10. UNIX and the Internet a. Internet addresses: IP, domain names, DNS b. Internet services: USENET, GOPHER, ARCHIE, newsgroups c. History of the World Wide Web Chabot College Course Outline for Computer Science 41, Page 3 Effective Fall 2004 d. Up- and downloading files and ftp e. UNIX-related freeware and shareware Methods of Presentation: a. b. c. d. Lecture Demonstrations Discussion. Student use of the College and Computer Science Laboratory UNIX systems Methods of Evaluating Student Progress: 1. Typical Assignment a. Create and compile a C program that allows a user to enter integer quantities for an elementary order entry invoice application computing quantities ordered, subtotals, and a grand total. b. Using the scripting capabilities in UNIX/LINUX, create an application that will allow a user to scan their account and list all subdirectories automatically, allow the user to select a subdirectory, display all files in that subdirectory. Keep looping until user chooses to quit c. Using Perl, write an elementary application that allows a user to enter integer quantities for an order entry application, computing quantities ordered, subtotals, and a grand total. 2. Methods of Evaluating Student Progress a. Assignments b. Written Quizzes c. Written Final Exam Textbook(s) (Typical: Introduction to UNIX and Linux, Muster, Osborne-McGraw Hill Publishing, 2002 Special Student Materials: Portable storage device Des Chun Revised Sept. 2003 Effective F2004