Donation?
Harley Hahn Home Page
Send a Message to Harley
A Personal Note from Harley Hahn
Unix Book Home Page
SEARCH
List of Chapters
Table of Contents
List of Figures
Chapters...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Glossary
Appendixes...
A
B
C
D
E
F
G
H
Command Summary...
• Alphabetical
• By category
Unix-Linux Timeline
Internet Resources
Errors and Corrections
Endorsements
INSTRUCTOR AND STUDENT MATERIAL...
Home Page & Overview
Exercises & Answers
The Unix Model Curriculum &
Course Outlines
PowerPoint Files for Teachers
|
The Unix Model Curriculum:
Outline for a One-Quarter Course
The Unix Model Curriculum is a detailed plan
for teaching all the important concepts
necessary for an introductory course in Unix
and Linux. The Unix Model Curriculum was
developed by Harley Hahn to help instructors
decide which topics to teach and the order in
which to teach them.
The following is an outline for a
one-quarter Unix/Linux course based on the Unix
Model Curriculum. The outline contains a total
of 54 teaching units, each of which takes about
25 minutes to teach. The intention is for you
to teach 6 units per week.
Thus, if you have two 1½-hour classes a
week, you should teach 3 units per class. If
you have three 1-hour class a week, you should
teach 2 units per class. In all, it should
take you 9 weeks to teach the course (54/6 =
9).
The schedule is based on a 11-week quarter,
with the last week taken up by
final exams, leaving 10 teaching weeks.
I assume that, during these 10 weeks, one
class will be used for a midterm exam, and
another class will be lost because of a holiday.
Within the course outline below, the section
numbers refer to the Unix Model Curriculum.
The page references indicate the relevant
pages to read in the print version of
Harley Hahn's Guide to Unix.
Section 1: Introduction to Unix
Unit |
Page References |
Topics |
1 |
The Unix family of operating systems
The Unix culture
Why do we use Unix?
Who uses Unix?
|
Section 2: What is Unix? What is Linux?
Unit |
Page References |
Topics |
2 |
What is an operating system?
What is the kernel?
Unix = Kernel + Utilities
The GPL (General Public License) and Open Source Software
The development of Linux
What is Unix? What is Linux?
|
Section 3: The Unix Connection
Unit |
Page References |
Topics |
3 |
Multiprogramming, time-sharing
Host and terminals paradigm
The console
Client/server relationship
What happens when you press a key?
Character terminals, graphics terminals
|
Section 4: Starting to Use Unix
Unit |
Page References |
Topics |
4 |
System administrator
Userids and passwords
Logging in
What happens after you log in?
|
Unit |
Page References |
Topics |
5 |
Shell prompt
Logging out [logout, exit, login]
Upper- and lowercase
|
Unit |
Page References |
Topics |
6 |
Changing your password [passwd]
Choosing a password
Userids and users
The superuser userid [root]
(Appendix E: What to Do If You Forget the Root Password)
|
Section 5: GUIs: Graphical User Interfaces
Section 6: The Unix Work Environment
Unit |
Page References |
Topics |
7 |
What is a GUI?
Desktop environment
KDE and Gnome
The GUI and the CLI (command line interface)
Logging in and logging out with a GUI
|
Unit |
Page References |
Topics |
8 |
Multiple desktops/workspaces
Terminal windows
Virtual consoles
The console
Working as superuser [su]
Shutting down; rebooting [init, reboot, shutdown]
|
Section 7: Using the Keyboard With Unix
Unit |
Page References |
Topics |
9 |
How does Unix know what type of terminal you are using?
Modifier keys
Stopping a program [intr, quit]
End of file signal [eof]
Command line editing
Return; linefeed; newline
|
Section 8: Programs to Use Right Away
Unit |
Page References |
Topics |
10 |
Finding a program on your system [which, type, whence]
How do you stop a program?
Displaying the time and date [date]
(Appendix F: Time Zones and 24-Hour Time)
Information about your system [uptime, hostname, uname]
Information about you [whoami, quota]
Information about other users [users, who, w]
|
Section 9: Documentation
Unit |
Page References |
Topics |
11 |
The Unix tradition of teaching yourself
RTFM
What is the Unix manual? [man]
Man pages
Displaying man pages
|
Unit |
Page References |
Topics |
12 |
Organization
Section numbers
Referencing man pages
Format of a man page
Finding out what a command does [whatis]
Searching for a command [apropos]
|
Section 10: Command Syntax
Unit |
Page References |
Topics |
13 |
Entering more than one command at a time
What happens when you enter a command?
Command syntax
Options
Dash options; dash-dash options
|
Unit |
Page References |
Topics |
14 |
Arguments
Whitespace
One or more; zero or more
Syntax: the formal description of a command
Learning command syntax from the Unix manual
Dealing with a lot of options
|
Section 11: The Shell
Unit |
Page References |
Topics |
15 |
What is a shell?
The Bourne shell family [sh, ksh, bash]
The C-Shell family [csh, tcsh]
|
Section 12: Using the Shell: Variables and Options
Unit |
Page References |
Topics |
16 |
Interactive shells; non-interactive shells
Environment; processes; variables
Environment variables; shell variables
Displaying environment variables [env, printenv]
|
Unit |
Page References |
Topics |
17 |
Displaying shell variables [set]
Displaying and using the value of a variable [echo, print]
(Appendix G: Shell Options and Shell Variables)
Bourne shell family: Using variables [export, unset]
C-Shell family: Using variables [setenv, unsetenv, set, unset]
|
Section 13: Using the Shell: Commands and Customization
Unit |
Page References |
Topics |
18 |
Metacharacters
Quoting; escaping
Strong quotes; weak quotes
Builtin commands [type]
External commands
|
Unit |
Page References |
Topics |
19 |
Search path
Shell prompt
Command substitution
Typing commands; making changes
|
Unit |
Page References |
Topics |
20 |
History list [fc, history]
Autocompletion
Aliases [alias, unalias]
|
Section 14: Using the Shell: Initialization Files
Unit |
Page References |
Topics |
21 |
Initialization files; logout files
Names of initialization and logout files
Dotfiles and rc files
Using a simple text editor
|
Unit |
Page References |
Topics |
22 |
Login shells; non-login shells
When are initialization files executed?
What to put in initialization files
Displaying, creating and editing initialization files
Comments in shell scripts
|
Section 15: Standard I/O, Redirection, and Pipes
Unit |
Page References |
Topics |
23 |
The Unix philosophy regarding tools
(combining tools, small is beautiful)
Standard input; standard output; standard error
Redirecting standard output
Preventing files from being replaced or created by redirection
|
Unit |
Page References |
Topics |
24 |
Redirecting standard input
File descriptors
Redirecting standard error: Bourne Shell family
Throwing away output (/dev/null)
Redirection summary
Pipelines
|
Section 16: Filters: Introduction and Basic Operations
Unit |
Page References |
Topics |
25 |
Filters
The problem solving process
The simplest possible filter [cat]
Increasing the power of filters
The most useful filters
|
Unit |
Page References |
Topics |
26 |
Combining files [cat]
Selecting lines from the beginning or end of data [head, tail]
Deleting columns of data [colrm]
|
Section 17: Filters: Comparing and Extracting
Section 18: Filters: Counting and Formatting
Unit |
Page References |
Topics |
27 |
Comparing files
Comparing any two files [cmp]
Comparing sorted text files [comm]
Comparing unsorted text files [diff]
Counting lines, words, characters [wc]
|
Section 19: Filters: Selecting, Sorting, Combining, and Changing
Unit |
Page References |
Topics |
28 |
Selecting lines that contain a specified pattern [grep]
The most important grep options [grep]
Selecting lines beginning with a specific pattern [look]
|
Unit |
Page References |
Topics |
29 |
Sorting data [sort]
Controlling the order in which data is sorted [sort -dfn]
Finding duplicate lines [uniq]
|
Unit |
Page References |
Topics |
30 |
ASCII code
(Appendix D: The ASCII Code)
Collating sequences
Locales
|
Mid-term Exam
Section 20: Regular Expressions
Unit |
Page References |
Topics |
31 |
Introduction to regular expressions
Matching lines
Matching words
Matching characters
Character classes
|
Unit |
Page References |
Topics |
32 |
Predefined character classes
Ranges
Locales and collating sequences
Repetition operators
Understanding complex regular expressions
|
Section 21: Displaying Files
Unit |
Page References |
Topics |
33 |
Survey of programs used to display files
Using less for paging [less]
less: Starting, stopping, help
less: Most common commands
|
Unit |
Page References |
Topics |
34 |
less: Searching within a file
Displaying the beginning of a file [head]
Displaying the end of a file [tail]
Watching the end of a growing file [tail -f]
|
Unit |
Page References |
Topics |
35 |
Binary, octal, hexadecimal
Why we use hexadecimal rather than octal
Displaying binary files [hexdump, od]
|
Section 22: The vi Text Editor
Special references:
Summary of vi Commands (Appendix C, pages 827-823)
Quick Index for the vi Text Editor (pages 891-893)
Unit |
Page References |
Topics |
36 |
Introduction to the vi text editor [vi]
Starting vi
Command mode; input mode
Knowing what mode you are in
|
Unit |
Page References |
Topics |
37 |
Starting vi as a read-only editor: [view, vi -r]
Stopping vi
How vi uses the screen
Using vi and ex commands
How to learn vi commands
|
Unit |
Page References |
Topics |
38 |
Creating a practice file
Moving the cursor
Moving through the editing buffer
Searching for a pattern
|
Unit |
Page References |
Topics |
39 |
Using line numbers
Inserting text
Changing text
Replacing text
Deleting text
Undoing or repeating a change
|
Unit |
Page References |
Topics |
40 |
Moving text
Copying text
Copying lines
Moving lines
Writing data to a file
|
Section 23: The Unix Filesystem
Unit |
Page References |
Topics |
41 |
What is a file?
Types of files
Directories; subdirectories
Tree-structured filesystem
|
Unit |
Page References |
Topics |
42 |
Filesystem Hierarchy Standard (FHS)
Root directory and subdirectories
Contents: root directory
Contents: /usr directory
Home directories
|
Section 24: Working With Directories
Unit |
Page References |
Topics |
43 |
Pathnames: absolute, relative
Working directory
Pathname abbreviations ( .. . ~ )
Moving around the directory tree [cd, pwd]
|
Unit |
Page References |
Topics |
44 |
Making a new directory [mkdir]
Removing a directory [rmdir]
Moving or renaming a directory [mv]
Using ls to list files [ls]
Directory listings [ls -CrR1]
|
Unit |
Page References |
Topics |
45 |
Globbing; wildcards
Dot files (hidden files) [ls -a]
Long directory listings [ls -dhltu]
|
Section 25: Working With Files
Unit |
Page References |
Topics |
46 |
Rules and conventions for naming a file
Copying a file [cp]
Copying files to a different directory [cp]
Copying a directory to another directory [cp -r]
|
Unit |
Page References |
Topics |
47 |
Moving a file [mv]
Renaming a file or directory [mv]
Deleting a file [rm]
How to keep from deleting the wrong files [rm -if]
|
Unit |
Page References |
Topics |
48 |
File permissions
How Unix Maintains File permissions [id, groups, ls -l]
File modes
Changing file permissions [chmod]
|
Unit |
Page References |
Topics |
49 |
Introduction to links [stat, ls -i]
Multiple links to the same file
Creating a new link [ln]
Symbolic links [ln -s]
Using symbolic links with directories
|
Unit |
Page References |
Topics |
50 |
Finding files: Searching a system database [locate]
Finding files: Searching a directory tree [find]
The find program: paths
The find program: tests
|
Section 26: Processes and Job Control
Unit |
Page References |
Topics |
51 |
How the kernel manages processes
Foreground and background processes
Job control
|
Unit |
Page References |
Topics |
52 |
Running a job in the background
Suspending a job [fg]
Displaying a list of jobs [jobs]
Moving a job to the foreground [fg]
Moving a job to the background [bg]
|
Unit |
Page References |
Topics |
53 |
Using ps to display process information [ps]
The ps program: Basic skills
The ps program: Choosing options
|
Unit |
Page References |
Topics |
54 |
Monitoring system processes [top, prstat]
Killing a process [kill]
Sending a signal to a process [kill]
Daemons
|
Final Exam
|