College of Engineering & CS
Wright State University
Dayton, Ohio 45435-0001

CEG 333: Introduction to Unix

 

Prabhaker Mateti

 
pmateti@cs.wright.edu  (937) 775 5114
   

Catalog Description: CEG 333. Introduction to the use of Unix and Unix tools as a problem-solving environment. Emphasis on the shell, files and directories, editing files, user process management, compiling, and debugging.
2 credit hours.  

Prerequisite: CS 241.

Source Material

 
PABL
Paul W. Abrahams, Bruce R. Larson, UNIX for the Impatient , Second Edition, Addison-Wesley, 1995, ISBN 0201823764.
Home Page
www.cs.wright.edu/people/faculty/pmateti/Courses/333/
News Group
wright.ceg.333 Post all your questions, helpful comments, criticisms, and suggestions regarding this course (lectures, projects, home work, exams) to our news group. I am hoping for a lively discussion leading to good answers and clarifications. Keep an eye on this newsgroup.

1. Course Content

The numbers in parentheses are a rough estimate of the number of (50-minute) lectures on each topic.

Project work is a significant part of this course. The ordering of lectures, in contrast to the course content topics listed below, is largely due to this influence.

Getting Started (4)

Unix and Linux. Logging in and logging out. What the Shell Does.  The UNIX File System. UNIX Commands. Processes. X11 and KDE. The Ten Most Essential Commands for Unix Users: ls, cd, mkdir, rm, top, ssh, sftp, xterm, emacs, make; Standard Files and Redirection. Graphical User Interfaces. The xterm Terminal Emulator. gFTP, file transfer client.

Chapters 1, 2 and 13.b

The UNIX File System (2)

File Permissions. Operations on Directories. Listing Files with ls. Displaying and Concatenating Files with cat. Linking, Moving, and Copying Files with ln, mv, and cp. Removing Files. Examining Files or Output with a Pager. Printing Files. Finding Files with find. Locating, Classifying, and Checking Files. Comparing Files. Controlling File Access and Ownership. Miscellaneous File Utilities. Data Compression and Encoding. Archiving Sets of Files. Examining Files with od. Copying and Converting Data with dd.

Chapter 3.

Programming (5)

Shells: sh, bash, csh, tcsh, ksh, ... Bash, the "Bourne-again Shell." Interacting with the Shell. Editing an Input Line. Calling the Shell Directly. Shell Scripts. Syntax of Shell Input. Patterns. Regular Expressions. Simple Commands. Linking Commands with Operators. Redirection. IO redirection. Filters and pipes. Here-Documents. The test, true, and false Commands. Compound Commands. How Commands Are Executed. Parameters. Parameter Expansions. Quotation. Substitutions. Aliases. Commands for Job Control.  Intrinsic Commands and Predefined Aliases. Predefined Variables Used by the Shell. Execution Options. Initialization Files for the Shell.

Man pages. Makefiles. gcc and g++. Debugging. Executable binaries v. bash shell programming.  Signal handling. Libraries: Standard libraries v. operating system calls. Unix system calls, and the standard. Shared libraries. Routines v. packages. Memory allocation, file io.

Chapters 6 and 7.

Editors (3)

The vi Visual Editor. Getting Acquainted with Emacs. Getting Help. Basic Editing Commands.  Indentation. Operations on Rectangles. Explicit Operations on Buffers. The Buffer Menu. Searching and Replacing.  Executing UNIX Commands from Emacs. Environmental Inquiries. Customizing Emacs.

Chapter 9.

Remote Computers (2)

Network Addresses. Local-Area Networks. Distributing Files Over Networks. Internet Resources. Programs for Remote Communications. Remote Operations on "Nearby" Computers. Calling a Remote Computer with telnet and ssh.
Transferring Files Between Computers with ftp and sftp.  Newsgroups and Newsreaders. Forwarding Mail.

Chapter 12.

Unix Utilities (3)

Finding Patterns with grep.  Using sed to Edit from a Script. Finding files. The awk Programming Language. Other Data Manipulation Languages. Document Processing. Version Control.

Chapters 4, and 5.

Attendance

You are expected to attend all classes.

Grading

Exams

There will be two exams contributing 30%  and 35% to the final grade. The mid term is scheduled around the fifth week, and the final during the exam week as set by the Registrar.

Projects

The projects contribute 30% to the final grade. I expect to give the project in five parts worth 5+5+10+5+5% respectively. The due dates for these will be announced in class.

The projects will be evaluated based on three criteria: (1) approach, clarity, and elegance, (2) correctness, and (3) efficiency. These projects must be work done solely by you, except for the parts I provided you with. The implementation must be in C, C++, and/or bash demonstrable on our Linux systems. Projects must be submitted on-line using the turnin program.

I may ask you for a demo of your projects. During or after the demo, I may also ask you questions pertaining to your projects.

Homework Assignments

I will recommend that you work on various problems from the book and other places.  However, as this course has currently no TA support, I will neither grade the solutions nor provide solutions.

Newsgroup Activity

wright.ceg.333 Post all your questions, helpful comments, criticisms, and suggestions regarding this course (lectures, projects, home work, exams) to our news group. I am hoping for a lively discussion leading to good answers and clarifications. Keep an eye on this newsgroup.  To encourage good participation, I am assigning 5% of the total weight.  I am not looking for mere volume of submitted articles, or just questions, but quality of answers and discussion you provide in the group.

04/13/04
Open Content Copyright © 2003 pmateti@cs.wright.edu