Table of Contents
1. Introduction. . . . . . . . . . . . . . . . . . . . .
. .1
Computing System.
. . . . . . . . . . . . . . . . . . . . .1
Operating System.
. . . . . . . . . . . . . . . . . . . . .2
UNIX History.
. . . . . . . . . . . . . . . . . . . . . . .2
UNIX Characteristics.
. . . . . . . . . . . . . . . . . . .4
System Calls.
. . . . . . . . . . . . . . . . . . . . . . .4
UNIX Vendors.
. . . . . . . . . . . . . . . . . . . . . . .5
UNIX Standards.
. . . . . . . . . . . . . . . . . . . . . .7
UNIX Organizations.
. . . . . . . . . . . . . . . . . . . .7
UNIX System
Structure . . . . . . . . . . . . . . . . . . .8
Kernel . . . . . . . . . . . . . . . . . . . . . . . .8
File System. . . . . . . . . . . . . . . . . . . . . .8
Commands/Utilities . . . . . . . . . . . . . . . . . .9
Process Scheduler. . . . . . . . . . . . . . . . . . .9
Shell. . . . . . . . . . . . . . . . . . . . . . . . 10
2. Getting Started . . . . . . . . . . . . . . . . . .
. . 11
Sign on . .
. . . . . . . . . . . . . . . . . . . . . . . 11
Change Password
. . . . . . . . . . . . . . . . . . . . . 12
Command Syntax.
. . . . . . . . . . . . . . . . . . . . . 12
On-Line Manual
Page . . . . . . . . . . . . . . . . . . . 13
Basic Commands.
. . . . . . . . . . . . . . . . . . . . . 14
date . . . . . . . . . . . . . . . . . . . . . . . . 14
whoami . . . . . . . . . . . . . . . . . . . . . . . 15
tty. . . . . . . . . . . . . . . . . . . . . . . . . 15
pwd. . . . . . . . . . . . . . . . . . . . . . . . . 15
cd . . . . . . . . . . . . . . . . . . . . . . . . . 15
who and finger . . . . . . . . . . . . . . . . . . . 15
chfn . . . . . . . . . . . . . . . . . . . . . . . . 17
uname. . . . . . . . . . . . . . . . . . . . . . . . 17
whatis . . . . . . . . . . . . . . . . . . . . . . . 17
cal. . . . . . . . . . . . . . . . . . . . . . . . . 17
exit . . . . . . . . . . . . . . . . . . . . . . . . 19
write and talk . . . . . . . . . . . . . . . . . . . 19
Review Questions.
. . . . . . . . . . . . . . . . . . . . 20
3. Text Editor . . . . . . . . . . . . . . . . . . . . .
. 21
Line Editor:
ed . . . . . . . . . . . . . . . . . . . . . 21
Review Question
. . . . . . . . . . . . . . . . . . . . . 24
The Full-Screen
Editor: vi. . . . . . . . . . . . . . . . 25
The pico Editor
. . . . . . . . . . . . . . . . . . . . . 27
4. File Manipulation . . . . . . . . . . . . . . . . . .
. 28
UNIX File Types
. . . . . . . . . . . . . . . . . . . . . 28
Input/Output
Redirection. . . . . . . . . . . . . . . . . 29
Basic File Manipulation
Commands. . . . . . . . . . . . . 29
Display File Contents. . . . . . . . . . . . . . . . 30
Copy Files . . . . . . . . . . . . . . . . . . . . . 30
Compare Files. . . . . . . . . . . . . . . . . . . . 31
Create a Directory . . . . . . . . . . . . . . . . . 32
Move a File. . . . . . . . . . . . . . . . . . . . . 32
Delete a File or Directory . . . . . . . . . . . . . 32
Determine the File Type. . . . . . . . . . . . . . . 33
Filer and Pipe . . . . . . . . . . . . . . . . . . . 34
File name and Name Substitution Characters . . . . . 35
List File Attributes . . . . . . . . . . . . . . . . 36
File Permission
and Mask. . . . . . . . . . . . . . . . . 40
Change File Permissions. . . . . . . . . . . . . . . 40
Set File Creation Mode . . . . . . . . . . . . . . . 42
Review Questions.
. . . . . . . . . . . . . . . . . . . . 43
5. Process Management. . . . . . . . . . . . . . . . . .
. 44
Shell Process
Life Cycle. . . . . . . . . . . . . . . . . 44
Program versus
Process. . . . . . . . . . . . . . . . . . 45
Process Scheduler
. . . . . . . . . . . . . . . . . . . . 46
Process Creation
and Termination. . . . . . . . . . . . 48
Process Manipulation
Commands . . . . . . . . . . . . . 49
Scheduling Processes (cron and at) . . . . . . . . . 54
Review Questions.
. . . . . . . . . . . . . . . . . . . . 56
6. Shell Programming . . . . . . . . . . . . . . . . . .
. 57
Shell Variables
. . . . . . . . . . . . . . . . . . . . . 57
Shell Script.
. . . . . . . . . . . . . . . . . . . . . . 58
Shell Metachatacters.
. . . . . . . . . . . . . . . . . . 61
Using Quotes.
. . . . . . . . . . . . . . . . . . . . . . 62
Positional Parameters
. . . . . . . . . . . . . . . . . . 63
Shell Interpretation
Sequence . . . . . . . . . . . . . . 64
Shell Statements.
. . . . . . . . . . . . . . . . . . . . 65
Conditional Statements: if and case. . . . . . . . . 65
Relational and Logical Operators . . . . . . . . . . 66
Logical Connectors . . . . . . . . . . . . . . . . . 67
Filter. . .
. . . . . . . . . . . . . . . . . . . . . . . 69
cut. . . . . . . . . . . . . . . . . . . . . . . . . 69
tee. . . . . . . . . . . . . . . . . . . . . . . . . 70
sort . . . . . . . . . . . . . . . . . . . . . . . . 71
wc . . . . . . . . . . . . . . . . . . . . . . . . . 71
tr . . . . . . . . . . . . . . . . . . . . . . . . . 71
grep . . . . . . . . . . . . . . . . . . . . . . . . 72
Setting and
Shifting Positional Parameters. . . . . . . . 74
Keyboard Input.
. . . . . . . . . . . . . . . . . . . . . 76
Loop Statements
. . . . . . . . . . . . . . . . . . . . . 78
for. . . . . . . . . . . . . . . . . . . . . . . . . 78
while. . . . . . . . . . . . . . . . . . . . . . . . 79
until. . . . . . . . . . . . . . . . . . . . . . . . 81
Arithmetic Operations
by expr . . . . . . . . . . . . . . 85
continue and
break. . . . . . . . . . . . . . . . . . . . 87
Error Handling.
. . . . . . . . . . . . . . . . . . . . . 89
Return a Value.
. . . . . . . . . . . . . . . . . . . . . 90
Recursion .
. . . . . . . . . . . . . . . . . . . . . . . 92
Interrupt Signals
. . . . . . . . . . . . . . . . . . . . 96
File Input Operation.
. . . . . . . . . . . . . . . . . . 99
Stream Editor
-- sed. . . . . . . . . . . . . . . . . . .103
Shell Function.
. . . . . . . . . . . . . . . . . . . . .106
Review Questions.
. . . . . . . . . . . . . . . . . . . .109
7. Awk Programming . . . . . . . . . . . . . . . . . . .
.114
What is awk?.
. . . . . . . . . . . . . . . . . . . . . .114
How does awk
work?. . . . . . . . . . . . . . . . . . . .114
awk Variables
. . . . . . . . . . . . . . . . . . . . . .115
Statements.
. . . . . . . . . . . . . . . . . . . . . . .116
Operators .
. . . . . . . . . . . . . . . . . . . . . . .116
Using awk as
a Filter . . . . . . . . . . . . . . . . . .117
Develop awk
Scripts . . . . . . . . . . . . . . . . . . .118
Review Questions.
. . . . . . . . . . . . . . . . . . . .133
8. Perl. . . . . . . . . . . . . . . . . . . . . . . . .
.135
What is Perl?
. . . . . . . . . . . . . . . . . . . . . .135
What can Perl
do? . . . . . . . . . . . . . . . . . . . .135
How does Perl
work? . . . . . . . . . . . . . . . . . . .136
CGI and Perl.
. . . . . . . . . . . . . . . . . . . . . .141
Review Questions.
. . . . . . . . . . . . . . . . . . . .143
9. File System . . . . . . . . . . . . . . . . . . . . .
.144
File Identification
. . . . . . . . . . . . . . . . . . .144
Creating a File/Directory
. . . . . . . . . . . . . . . .145
Retrieving a
File/Directory . . . . . . . . . . . . . . .145
What is a File
System . . . . . . . . . . . . . . . . . .146
Disk Address
List . . . . . . . . . . . . . . . . . . . .147
Link Manipulation
. . . . . . . . . . . . . . . . . . . .148
File System
Backup. . . . . . . . . . . . . . . . . . . .153
Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . .158
Command Summary
. . . . . . . . . . . . . . . . . . . . .158