SIMG 726 UNIX Power Tools Syllabus

The following is an assessment of the importance of the content in the book "UNIX Power Tools".  Because the different levels of complexity involved in each topic and the non-linear and intertwined ways in which one becomes familiar and proficient with the UNIX system.  It is unlikely that a sequential reading of this book will be helpful in this class because of the way we will be chaining several UNIX concepts to address certain problems or an application.  The quickest way to guide a "new" UNIX user with this book is to rank the importance of the different chapters and sections.  I would like to stress that by "new", I mean someone who is "new" to this particular book.  I have found this book to contain material that even veteran UNIX users will find useful or at the very least gain a sense of confirmation in having independently discovered the various "tricks of the trade".  I, for one, am thankful that a team of authors have placed many of these concepts in print.  If anything else, it will serve as a starting point for a person to explore a specific topic in greater depth on their own.

UNIX is an operating system that encourages experimentation and tinkering.  It forces a user to think about their problem and assess the tools that are available to them to do the job.  Just as a carpenter who only knows how to use a hammer can without a doubt (and a lot of persistence) build a chair with just that single tool.  The process  is inevitably cumbersome and inexact. Only when other tools are learned and brought into practice does the process reach a level sophistication and elegance that offers the user a sense of satisfaction that is akin to solving an intricate puzzle.  Unlike a puzzle, however, there are no right or wrong solutions as long as you get the job done in a reasonable amount of time and learning something in the process.  Probably just as important as knowing the UNIX operating system is knowing when UNIX is not the appropriate tool to use if another tool is available.  More importantly, the user should recognize the problem they have solved in the future so that they may once again, dust off the toolbox and find another way of solving the problem.

I will place the specific sections or chapters of this book in order of "need".  While this need will depend on the user's experience, we will inevitably fall into the chicken and egg problem because we need to know about X concept in order to appreciate Y.    This does not necessarily mean that the user is a newbie, but that the user may simply not be familiar with a particular concept.  I also inject my flawed biases based on my experiences in using the UNIX operating system in imaging.

So here goes
 

MUST LEARN TOPICS (First 3 weeks of class)

WEEK 0

Chapter 1 : Introduction

Why should you care about UNIX and some basic concepts about the file system organization and file permissions

Chapter 2 : Getting Help

Many new users are intimidated by the UNIX help system.  This will hopefully ease the pain.

Chapter 3.1 : What Happens when you login

Although they tend to jump into UNIX jargon, it does discuss what happens when you first login

Chapter 47.7 : Sharing Desktops with VNC

We need this so that you can connect to the UNIX systems from anywhere in the world.

Chapter 6.10 : Starting Remote X Clients

Critical skill to take advantage of X-windows connectivity

WEEK 1

Chapter 17 : vi Tips and Tricks

Along with an on-line tutorial (run from the UNIX prompt and not a web-browser), this chapter will initiate you into a rite of passage in the UNIX world.  All UNIX systems contain the vi editor and is the favored editor of most traditional UNIX minimalists.  We need a way to create files because if we can't, then the rest of this is pointless.

Chapter 45 : Printing

This chapter is actually a lot more than the title indicates.  Because we will be learning how to use the LaTeX environment.  This chapter provides a very brief history of the whole process of mark up languages including LaTeX.  We will also introduce two front-end environments that will facilitate the creation of LaTeX documents.

It should also be noted that in this chapter is a brief description of a powerful image manipulation tool called netpbm (formerly known as pbmplus).  We will be looking at this particular package
 

Chapter 16 : Spell Checking, Word Counting, and Textual Analysis

Tools for generating your documents

WEEK 2

Chapter 43 :  Redirecting Input and Output

Aside from editing files by hand, this is a way to create a lot of files quickly and in quantity. Probably one of the most powerful basic concepts that makes UNIX so versatile.

Chapter 12 : Showing What's in a File

Now that you have generated many file quickly and in quantity, you want to see how much of these files have useful content.

Chapter 10 : Linking, Renaming, and Copying Files

Basic skill to start organizing the mass quantities of files you have generated.

Chapter 14 : Removing Files

Necessary part of orgnization

Chapter 11 : Comparing Files

Just in case you want to make sure that you really want to delete that file that you have worked on for the past 4 hours.

FOR WINTER BREAK (as a supplemental reading over break, along with the Cuckoo's Egg read the following sections in Part 9.  You would appreciate the book a little more if you read this part first)

Chapter 48 : Security Basics

Although you can function  in UNIX land in your own account without knowing about these concepts, it is critical in our connected world to understand basic security concepts.

Chapter 49 : Root, Group, and User Management

This is geared more toward administrating a UNIX system which you may be inclined to do in the future.  The concepts, however, will help you communicate with system administrators more intelligently.

Chapter 50 : File Security, Ownership, and Sharing

This chapter is fundamental in functioning in the UNIX system to allow collaboration and exchange of data (unless you choose to work in a vacuum).

Chapter 51 - SSH

AFTER BREAK

WEEK 3

Chapter 3.3-3.7 : Shell specific articles

This may be intimidating at first particularly if you edit crucial startup files.

Chapter 3.20 RC Files

Talks about important setup files (typically hidden) which will come into play as users become more proficient with the UNIX tools.

Chapter 29.1-29.3 : Custom Commands

Although this is worthwhile knowing, becoming too dependent on some of these features means that you may have difficulty working in antoher person's environment.

Chapter 28 : Saving Time on the Command Line

Some important tips and trick in getting proficient on the command line

Chapter 30 : The Use of History

Chapter 31 : Moving Around in a Hurry

Chapter 13 : Searching Through Files

Chapter 39 : Creating and Reading Archives

WEEK 4

Chapter 23 : Job Control

Chapter 24 : Starting, Stopping, and Killing Processes

Chapter 25 : Delayed Execution

Chapter 26 : System Performance and Profiling

WEEK 5

Chapter 32 : Regular Expression (Pattern Matching)

Chapter 33 : Wildcards

Chapter 34 : SED

Chapter 20 : Batch Editing

Chapter 21 : You Can't Quite Call This Editing

Chapter 22 : Sorting

WEEK 6

Chapter 27 : Shell Interpretation

Chapter 35 : Shell Programming for the Uninitiated

Chapter 36 : Shell Programming for the Initiated

Chapter 37 : Shell Script Debugging and Gotchas

WEEK 7

Chapter 15 : Optimizing Disk Space

Chapter 38 : Backing up Files

WEEK 8

.

WEEK 9

 

CHAPTERS THAT WE WILL NOT BE COVERING BECAUSE OF SCOPE

Chapter 18 : Creating Custom Commands in vi
Chapter 19 : GNU EMACS
Chapter 26 : System Performance and Profiling
Chapter 29.5-29.14 : Custom Commands
Chapter 40 : Software Installation
Chapter 41 : Perl
Chapter 42 : Python
Chapter 44 : Devices
Chapter 46 : Connectivity
Chapter 47 : Connecting to MS Windows