A Practical Guide to Red Hat Linux 8

Contents


Preface xxxiii

PART I: GNU/Linux Basics 1

1. GNU/Linux: A Product of the Internet 3

The GNU/Linux Connection 4
    The Code Is Free 6
    Have Fun! 7
The Heritage of GNU/Linux: UNIX 7
What Is So Good about GNU/Linux? 8
    Why GNU/Linux Is Popular with Hardware Companies and Developers 9
    GNU/Linux Is Portable 10
    Standards 10
    The C Programming Language 11
Overview of GNU/Linux 12
    Linux Has a Kernel Programming Interface 12
    GNU/Linux Can Support Many Users 13
    GNU/Linux Can Run Many Tasks 13
    GNU/Linux Provides a Secure Hierarchical Filesystem 13
    The Shell: Command Interpreter and Programming Language 14
    A Large Collection of Useful Utilities 16
    Interprocess Communication 16
    System Administration 16
Additional Features of GNU/Linux 17
    GUI: Graphical User Interfaces 17
    (Inter)networking Utilities 18
    Software Development 19
    Text-Based Editors 19
    GUI Editors 20
    Electronic Mail 20
Chapter Summary 20
Exercises 21

2. Getting Started 23

Before You Start 24
    Conventions 24
    Graphical versus Character-Based Interface 28
Red Hat Linux 28
    Logging In 29
    Incorrect Login 34
    The Shell 35
    Terminal Emulation and telnet 35
    Logging Out 36
    Superuser 36
    Virtual Console 36
    Correcting a Mistake 37
    Repeating/Editing Command Lines 39
passwd: Changes Your Password 40
Documentation 42
    man and xman: Display the System Manual 42
    info: Displays Information 45
    HOWTOs 47
    Other Sources of Help 47
Tutorial: Using pico to Create/Edit a File 49
    Starting pico 50
    Entering Text 51
    Getting Help 52
    Correcting Text 52
    Ending the Session 52
Basic Utilities 53
    ls: Lists the Names of Files 53
    cat: Displays a Text File 54
    less Is more: Displaying a Text File One Screen at a Time 54
    rm: Deletes a File 54
    hostname: Displays Your Machine Name 55
Special Characters 55
Chapter Summary 56
Exercises 58
Advanced Exercises 59

3. Introduction to the GNU/Linux Utilities 61

Working with Files 61
    cp: Copies a File 61
    mv: Changes the Name of a File 63
    lpr: Prints a File 63
    grep: Finds a String 64
    head: Displays the Beginning of a File 65
    tail: Displays the End of a File 66
    sort: Displays a File in Order 66
    uniq: Removes Duplicate Lines from a File 66
    diff: Compares Two Files 67
    file: Tests the Contents of a File 68
| (Pipe): Communicates between Processes 69
Four More Utilities 69
    echo: Displays Text 70
    date: Displays the Time and Date 70
    script: Records a GNU/Linux Session 70
    mcopy: Converts GNU/Linux Files to MS Windows Format 72
Compressing and Archiving a File 72
    gzip: Compresses a File 73
    gunzip and zcat: Decompress a File 74
    bzip2: Compresses/Decompresses a File 74
    tar: Packs and Unpacks Files 75
Locating Commands 77
    which, whereis: Locate a Utility 78
    apropos: Searches for a Keyword 79
Obtaining User and System Information 80
    who: Lists Users on the System 80
    finger: Lists Users on the System 81
    w: Lists Users on the System 83
Communicating with Other Users 84
    write: Sends a Message 84
    talk: Communicates with Another User 85
    mesg: Denies or Accepts Messages 87
E-Mail 87
    Tutorial: Using pine to Send and Receive E-Mail 88
Chapter Summary 95
Exercises 98
Advanced Exercises 99

4. The GNU/Linux Filesystem 101

The Hierarchical Filesystem 101
Directory and Ordinary Files 103
    Filenames 103
    mkdir: Creates a Directory 106
    The Working Directory 107
    Home Directory 108
    Absolute Pathnames 110
    Relative Pathnames 110
    Important Standard Directories and Files 112
Working with Directories 115
    rmdir: Deletes a Directory 115
    Pathnames 116
    mv, cp: Moves or Copies a File 117
    mv: Moves a Directory 118
Access Permissions 118
    ls –l: Displays Permissions 118
    chmod: Changes Access Permissions 119
    Setuid and Setgid Permissions 121
    Directory Access Permissions 121
Links 123
Hard Links 124
    Symbolic Links 126
    rm: Removes a Link 130
Chapter Summary 130
Exercises 132
Advanced Exercises 134

5. The Shell I 137

The Command Line 137
    Syntax 138
    Processing the Command Line 140
    Executing the Command Line 142
Standard Input and Standard Output 142
    The Screen as a File 143
    The Screen/Keyboard as Standard Input and Standard Output 144
Redirection 145
    Redirecting Standard Output 145
    Redirecting Standard Input 147
    Appending Standard Output to a File 149
    /dev/null: Data Sink 150
Pipes 151
    Filters 153
    tee: Sends Output in Two Directions 154
Running a Program in the Background 154
Filename Generation/Pathname Expansion 157
    The ? Special Character 157
    The * Special Character 158
    The [ ] Special Characters 159
Builtins 161
Chapter Summary 162
Exercises 163
Advanced Exercises 165

PART II: Intermediate/Advanced GNU/Linux 167

6. X Window System and Graphical User Interface 169

X and GUI: Desktop, Window, and Mouse 170
    X Window System 170
    Changing to a Different Desktop Manager 173
    Desktop 174
    Terminal Emulator/Shell 177
    File Manager 178
    Panel 178
    Windows 179
    Shading a Window 185
    Session Manager 185
X Window System 185
    Customizing X Applications from the Command Line 186
    Setting X Resources 188
    Remote Computing and Local Displays 193
    Stopping the X Server 195
    Remapping Mouse Buttons 196
X Applications 197
Chapter Summary 199
Exercises 200
Advanced Exercises 201

7. GNOME Desktop Manager 203

Choosing Your Window Manager 203
Getting Started 204
    Help 204
    Windows and Mouse Clicks 207
    GNOME Menu 208
    Main Panel 210
    Desktop 212
    Menus 214
Nautilus: File Manager 214
    Display 217
    Control Bars 219
    Properties 226
GNOME Utilities 227
    Search Tool 227
    Font Preferences 230
    Pick a Font Window 230
    Pick a Color Window 230
    Run Program Window 231
    File Types and Programs (MIME Types) 232
    GNOME Terminal Emulator/Shell 233
Customizing GNOME 236
    Start Here: Preferences/Control Center 237
    Nautilus Menubar: EditaPreferences 243
    Panels 246
    Menus 253
The Sawfish Window Manager 254
    Bringing Up Sawfish 254
    Working with Sawfish 256
    Customizing Sawfish: The Sawfish Configurator 258
Chapter Summary 263
Exercises 264
Advanced Exercises 265

8. KDE Desktop Environment 267

Getting Started 268
    Help 268
    Windows and Mouse Clicks 271
    K Menu (Application Starter) 274
    Other Menus 276
    kicker: Main Panel 276
KDE Utilities 278
    konsole: Terminal Emulator 278
    kcolorchooser: Selects a Color 281
    Run Command 282
    Cut and Paste 283
Konqueror Browser/File Manager 286
    Getting Started 287
    File Manager 288
    Web Browser 290
    Bookmarks 291
Kparts 292
    Toolbars 293
    kfind: Finds Files 298
    Views II 300
    Shortcuts 302
    Tutorial: Active, Linked, and Locked Views 303
    Navigation Panel 306
Menus 308
    Desktop Menus 308
    Taskbar 311
    Toolbar Menu 311
    Window List Menu 312
    (Window) Operations Menu 312
Customizing KDE 313
    Control Center 314
    Panels 338
    Toolbars 340
    Miscellaneous 344
Chapter Summary 347
Exercises 348
Advanced Exercises 349

9. Networking and the Internet 351

Types of Networks and How They Work 353
    Broadcast 354
    Point-to-Point 354
    Switched 355
    LAN: Local Area Network 355
    WAN: Wide Area Network 357
    Internetworking through Gateways and Routers 357
    Network Protocols 360
    Host Address 362
CIDR: Classless Inter-Domain Routing 367
    Hostnames 368
Communicate over a Network 370
    finger: Displays Information about Remote Users 370
    Sending Mail to a Remote User 372
    Mailing List Servers 372
Network Utilities 373
    Trusted Hosts 373
    ssh: Logs in or Runs a Command on a Remote Computer 374
    scp: Copies a file from/to a Remote Computer 376
    telnet: Logs in on a Remote Computer 376
    ftp: Transfers Files over a Network 378
    ping: Tests a Network Connection 380
    traceroute: Traces a Route over the Internet 381
    host and dig: Queries Internet Name Servers 382
    whois: Looks Up Information about an Internet Site 384
Distributed Computing 387
    The Client/Server Model 387
    DNS: Domain Name Service 388
    NIS: Network Information Service 390
    NFS: Network Filesystem 391
    automount: Mounts Filesystems Automatically 393
Internet Services 394
Proxy Server 397
RPC Network Services 398
Usenet 399
Tutorial: Using pine as a Newsreader 401
    Subscribing to Newsgroups 403
    Reading News 403
    Posting News 404
    Unsubscribing from a Newsgroup 405
Netnews with Mozilla 405
WWW: World Wide Web 406
    URL: Uniform Resource Locator 407
    Browsers 408
    Search Engine 408
    Downloading a File 408
Chapter Summary 409
Exercises 410
Advanced Exercises 411

10. The vim Editor 413

History 413
Tutorial: Creating and Editing a File with vim 414
    Specifying a Terminal 415
    Starting vim 415
    Command and Input Modes 416
    Entering Text 417
    Getting Help 419
    Ending the Editing Session 421
Introduction to vim Features 421
    Online Help 422
    Modes of Operation 422
    The Display 423
    Correcting Text as You Insert It 424
    Work Buffer 424
    Line Length and File Size 425
    Windows 425
    File Locks 425
    Abnormal Termination of an Editing Session 426
    Recovering Text after a Crash 427
Command Mode: Moving the Cursor 427
    Moving the Cursor by Characters 428
    Moving the Cursor to a Specific Character 429
    Moving the Cursor by Words 429
    Moving the Cursor by Lines 429
    Moving the Cursor by Sentences and Paragraphs 430
    Moving the Cursor within the Screen 431
    Viewing Different Parts of the Work Buffer 431
Input Mode 431
    Inserting Text 431
    Appending Text 432
    Opening a Line for Text 432
    Replacing Text 432
    Quoting Special Characters 433
Command Mode: Deleting and Changing Text 433
    Undoing Changes 433
    Deleting Characters 433
    Deleting Text 434
    Changing Text 436
    Replacing Text 437
    Changing Case 437
Searching and Substituting 438
    Searching for a Character 438
    Searching for a String 438
    Substituting One String for Another 440
Miscellaneous Commands 445
Yank, Put, and Delete Commands 446
    The General-Purpose Buffer 446
Named Buffers 448
Numbered Buffers 448
Reading and Writing Files 449
    Reading Files 449
    Writing Files 449
    Identifying the Current File 450
Setting Parameters 451
    Setting Parameters from within vim 451
    Setting Parameters in a Startup File 451
    The .vimrc Startup File 452
    Parameters 452
Advanced Editing Techniques 455
Using Markers 456
Editing Other Files 456
Macros and Shortcuts 457
    Executing Shell Commands from within vim 458
Units of Measure 460
    Character 460
    Word 460
    Blank-Delimited Word 461
    Line 461
    Sentence 461
    Paragraph 462
    Screen 463
    Repeat Factor 463
Chapter Summary 463
Exercises 469
Advanced Exercises 470

11. The emacs Editor 473

History 473
    Evolution 474
    emacs versus vi 474
Tutorial: Getting Started with emacs 475
    Starting emacs 476
    Stopping emacs 477
    Inserting Text 477
    Deleting Characters 477
    Moving the Cursor 478
    Editing at the Cursor Position 480
    Saving and Retrieving the Buffer 481
Basic Editing Commands 481
    Keys: Notation and Use 482
    Key Sequences and Commands 483
    META-x: Running a Command without a Key Binding 483
    Numeric Arguments 484
    Point and the Cursor 484
    Scrolling through a Buffer 485
    Erasing Text 485
    Searching 485
Online Help 488
Advanced Editing Topics 490
    Undoing Changes 490
    Mark and Region 492
    Cut and Paste: Yanking Killed Text 494
    Inserting Special Characters 495
    Global Buffer Commands 496
    Files 498
    Buffers 500
    Windows 501
    Foreground Shell Commands 503
    Background Shell Commands 504
Language-Sensitive Editing 505
    Selecting a Major Mode 505
    Human-Language Modes 506
    C Mode 509
    Customizing Indention 512
    Comments 513
    Special-Purpose Modes 513
Customizing emacs 515
The .emacs Startup File 516
Remapping Keys 517
A Sample .emacs File 519
emacs and the X Window System 520
    Mouse Commands for Cut and Paste 521
    Mouse-2 Selections 523
    Scrollbars 524
    Manipulating Windows with the Mouse 524
    Frame Management 525
    Menubars 526
Resources for emacs 527
    The emacs Web Ring 527
    Usenet emacs FAQ (Frequently Asked Questions) 527
    Access to emacs 527
Chapter Summary 528
Exercises 536
Advanced Exercises 538

12. The Shell II: The Bourne Again Shell 541

Background 542
Shell Basics 543
    Assignment Statements 543
    Writing a Simple Shell Script 544
Separating and Grouping Commands 547
    ; and NEWLINE Separate Commands 547
    \ Continues a Command 547
    | and & Separate Commands and Do Something Else 547
Multitasking Demonstration 549
( ) Groups Commands 550
Redirecting Standard Error 552
noclobber: Avoids Overwriting Files 554
Job Control 554
    jobs: Lists Jobs 555
    fg: Brings a Job to the Foreground 555
    bg: Sends a Job to the Background 556
Manipulating the Directory Stack 557
    dirs: Displays the Stack 557
    pushd: Pushes a Directory on the Stack 558
    popd: Pops a Directory off the Stack 559
Processes 560
    Process Structure 560
    Process Identification 561
    Executing a Command 562
    Running a Shell Script 563
Parameters and Variables 566
    User-Created Variables 568
    Keyword Variables 576
    Positional Parameters 581
    Special Parameters 586
History 588
Editing the Command Line 591
    fc: Displays, Edits, and Reexecutes Commands 591
    Reexecuting an Event with the C Shell History Mechanism 594
    The Readline Library 598
Alias 602
    Quotation Marks: Single versus Double 603
    Examples 603
Command Line Expansion 606
    Order of Expansion 606
    { } Brace Expansion 607
    ~ Tilde Expansion 609
    $n Parameter Expansion 609
    $VARIABLE Variable Expansion 610
    $(...) Command Substitution 611
    Arithmetic Expansion 611
    Word Splitting 612
    Pathname Expansion 614
Chapter Summary 616
Exercises 620
Advanced Exercises 622

13. Programming the Bourne Again Shell 625

Control Structures 626
if...then 626
if...then...else 630
if...then...elif 632
for...in 640
for 641
while 643
until 647
    break and continue 650
case 650
select 658
    Here Document 659
Expanding Null or Unset Variables 661
    : – Uses a Default Value 662
    := Assigns a Default Value 662
    :? Displays an Error Message 663
String Pattern Matching 664
Filename Generation 664
Builtins 665
    exec: Executes a Command 665
    trap: Catches a Signal 667
    A Partial List of Builtins 670
Functions 672
Chapter Summary 674
Exercises 676
Advanced Exercises 678

14. The TC Shell 681

Shell Scripts 682
Entering and Leaving the TC Shell 683
    Startup Files 684
Features Common to the Bourne Again and TC Shells 685
    History 686
    Alias 689
    Job Control 690
    Filename Substitution 691
    Manipulating the Directory Stack 691
    Command Substitution 691
Redirecting Standard Error 691
Command Line Expansion 693
    Word Completion 693
Editing the Command Line 696
Correcting Spelling 696
    Before You Press RETURN 696
    After You Press RETURN 697
Variables 698
    Variable Substitution 699
    String Variables 699
    Arrays of String Variables 700
    Numeric Variables 701
    Braces 705
    Special Variable Forms 706
    Shell Variables 706
Control Structures 714
if 714
goto 717
    Interrupt Handling 718
if...then...else 718
foreach 720
while 722
    break and continue 722
switch 722
Builtins 724
Chapter Summary 730
Exercises 731
Advanced Exercises 732

15. The Z Shell and Advanced Shell Programming 735

    The Z Shell, Korn Shell, and Pd-ksh 736
Z Shell Basics 736
    Running Scripts 737
    Startup Files 737
    Commands That Are Symbols 739
Variables 741
    Variable Attributes 741
    Locality of Variables 743
    Keyword Variables 745
    Controlling the Prompt 749
Expanding Shell Variables 751
    Filename Generation 754
    Array Variables 758
    Arithmetic 761
Builtins 767
    Control Structures 768
    Option Processing 771
    Input and Output 775
File Descriptors 781
    Functions 784
    Builtin Commands 787
Command Line Editing 791
    The vi Command Line Editor 791
    The emacs Command Line Editor 794
    History 795
Processing a Command 797
History Expansion 799
Alias Substitution 801
Parsing the Command Line 801
Filename Expansion 805
Filename Generation (Globbing) 805
I/O Redirection 806
The Coprocess 806
Spelling Correction 807
Shell Programs 808
    Program Structures 809
    A Programming Problem: makercs 812
    Another Programming Problem: quiz 816
Z Shell Options 824
Chapter Summary 828
Exercises 833
Advanced Exercises 835

16. Programming Tools 837

Programming in C 837
    Checking Your Compiler 838
    A C Programming Example 839
    Compiling and Linking a C Program 843
Using Shared Libraries 846
    Fixing Broken Binaries 848
    Creating Shared Libraries 849
make: Keeps a Set of Programs Current 849
    Implied Dependencies 852
Macros 854
Debugging C Programs 857
    gcc: Compiler Warning Options Find Errors in Programs 859
    Symbolic Debugger 862
Threads 867
System Calls 868
    strace: Traces System Calls 868
    Controlling Processes 868
    Accessing the Filesystem 869
Source Code Management 870
    RCS: Revision Control System 871
    CVS: Concurrent Versions System 879
Chapter Summary 890
Exercises 891
Advanced Exercises 892

17. Red Hat Linux System Administration 895

System Administrator and Superuser 896
    System Administration Tools 899
    Avoiding a Trojan Horse 903
Installing Red Hat Linux (Overview) 905
    Finding the Installation Manual 905
    Downloading, Burning, and Installing a CD-ROM Set 906
    Types of Installations 908
    Hardware 908
    Classes of Installations 909
Kickstart Configurator 910
    Preparing for Installation 911
    Partitioning a Disk 912
    mkbootdisk: Creates a Rescue/Emergency/Boot Floppy Disk 920
    Beginning Installation 921
    redhat-config-xfree86: Sets Up X 922
    Initializing Databases 923
    Setting Up the Default Desktop Manager 923
    redhat-config-securitylevel: Sets up a Firewall 924
Installing and Removing Software 926
    redhat-config-packages: Adds and Removes Software Packages 926
    rpm: Red Hat Package Manager 928
    Installing Non-rpm Software 931
    GNU Configure and Build System 931
Keeping Software Up-to-Date 933
    Bugs 933
    Errata: Security Alerts, Bugfixes, and Enhancements 934
    Red Hat Network 936
System Operation 942
    Booting the System 943
    rc Scripts: Start and Stop System Services 944
    Emergency Mode 948
    Single-User Mode 949
    Going Multiuser 950
    Multiuser Mode 950
    Logging In 951
    Running a Program and Logging Out 952
    Bringing the System Down 952
    Crash 955
File, Directory, and Filesystem 956
Important Files and Directories 956
File Types 968
    Filesystems 972
GUI System Administration Tools 985
    GNOME System Settings Window/Menu 985
    KDE Control Center: System Module 988
    KDE Control Center: Network Module 992
Configuring User and Group Accounts 992
    redhat-config-users: Manages User Accounts 993
    kuser: Manages User Accounts under KDE 995
    useradd: Adds a User Account 996
    userdel: Removes a User Account 996
    groupadd: Adds a Group 997
Backing Up Files 997
    Choosing a Backup Medium 998
    Backup Utilities 999
    Performing a Simple Backup 1001
    dump, restore: Back Up and Restore Filesystems 1002
Printing 1005
    printconf-gui: Configures and Manages LPRng Printers 1006
    CUPS 1010
    Manually Adding a Local Printer 1011
    /etc/printcap: Describes Printers 1012
    KDEPrint: Manages Printers 1014
Configuring Network Services 1015
    sys-unconfig: Reconfigures Network Services 1016
    Proxies 1016
    hosts: Stores a List of Machines 1017
    NFS: Network Filesystem 1018
    NIS: Network Information Service 1021
    DNS: Domain Name Service 1021
    Internet Configuration Wizard 1023
    Samba/swat 1025
    DHCP Client 1028
    OpenSSH: Provides Secure Network Tools 1029
    GnuPG: GNU Privacy Guard 1030
Rebuilding the Linux Kernel 1031
    Preparing Source Code 1032
    Read the Documentation 1033
    Configuring and Compiling the Linux Kernel and Modules 1034
    Compiling the Linux Kernel 1037
    Using Loadable Kernel Modules 1038
    Installing the Kernel and Associated Files 1039
    Changing lilo.conf 1039
    Rebooting 1039
    Boot Loader 1039
PAM 1043
    Configuration File, Module Type, and Control Flag 1045
    Example 1047
    Modifying the PAM Configuration 1048
Administration Utilities 1049
    kudzu: Adds or Removes a Device 1050
    sendmail: Sends and Receives Mail 1050
    Other Utilities 1055
Administration Tasks 1055
    Log Files and Mail for root 1058
    Scheduling Tasks 1059
    System Reports 1060
    Informing Users 1063
    Creating Problems 1064
    Solving Problems 1065
Getting Help 1075
Chapter Summary 1076
Exercises 1077
Advanced Exercises 1078

PART III: The GNU/Linux Utility Programs 1081

sample Very brief description of what the utility does 1087
aspell Checks a file for spelling errors 1089
at Executes a shell script at a time you specify 1093
cal Displays a calendar 1096
cat Joins or displays files 1098
cd Changes to another working directory 1100
chgrp Changes the group associated with a file 1102
chmod Changes the access mode of a file 1103
chown Changes the owner of a file 1108
ci Creates or records changes in an RCS file 1110
cmp Checks whether two files differ 1113
co Retrieves an unencoded revision of an RCS file 1115
comm Compares sorted files 1118
configure Configures source code automatically 1120
cp Copies one or more files 1122
cpio Creates an archive or restores files from an archive 1124
crontab Maintains crontab files 1129
cut Selects characters or fields from input lines 1132
cvs Manages concurrent access to files in a hierarchy 1134
date Displays or sets the time and date 1141
dd Converts and copies a file 1144
df Displays disk space usage 1147
diff Displays the differences between two files 1149
du Displays information on disk usage 1155
echo Displays a message 1157
expr Evaluates an expression 1159
file Displays the classification of a file 1163
find Uses criteria to find files 1165
finger Displays information about users 1171
fmt Formats text very simply 1174
fsck Checks and repairs a filesystem 1176
ftp Transfers files over a network 1180
gawk Searches for and processes patterns in a file 1185
gcc Compiles C and C++ programs 1210
grep Searches for a pattern in files 1215
gzip Compresses or decompresses files 1219
head Displays the beginning of a file 1222
kill Terminates a process 1224
less Displays text files, one screen at a time 1226
ln Makes a link to a file 1230
lpr Prints files 1232
ls Displays information about one or more files 1235
mail Sends and receives electronic mail 1241
make Keeps a set of programs current 1247
man Displays documentation for commands 1252
mkdir Makes a directory 1255
Mtools Uses DOS-style commands on files and directories 1256
mv Moves (renames) a file 1260
nice Changes the priority of a command 1263
nohup Runs a command that keeps running after you log out 1264
od Dumps the contents of a file 1265
paste Joins corresponding lines from files 1270
patch Updates source code 1272
pine Sends and receives electronic mail and news 1278
pr Paginates files for printing 1286
ps Displays process status 1288
rcp Copies one or more files to or from a remote computer 1293
rcs Creates or changes the attributes of an RCS file 1295
rlog Prints a summary of the history of an RCS file 1298
rlogin Logs in on a remote computer 1301
rm Removes a file (deletes a link) 1303
rmdir Removes a directory 1305
rsh Executes commands on a remote computer 1306
scp Securely copies one or more files to or from a remote computer 1308
sed Edits a file (not interactively) 1310
ssh Securely executes commands on a remote computer 1321
sleep Creates a process that sleeps for a specified interval 1324
sort Sorts and/or merges files 1326
stty Displays or sets terminal parameters 1335
tail Displays the last part (tail) of a file 1340
tar Stores or retrieves files to/from an archive file 1343
tee Copies standard input to standard output and one or more files 1348
telnet Connects to a remote computer over a network 1349
test Evaluates an expression 1352
top Dynamically displays process status 1356
touch Updates a file’s modification time 1359
tr Replaces specified characters 1362
tty Displays the terminal pathname 1365
umask Establishes the file-creation permissions mask 1366
uniq Displays lines of a file that are unique 1368
w Displays information on system users 1370
wc Displays the number of lines, words, and bytes in a file 1372
which Shows where in your path a command is located 1373
who Displays names of users 1375
xargs Converts standard output of one command into arguments for another 1377

PART IV: Appendixes 1381 <

A. Regular Expressions 1383

Characters 1383
Delimiters 1384
Simple Strings 1384
Special Characters 1384
    Period 1384
    Brackets 1385
    Asterisk 1386
    Caret and Dollar Sign 1387
    Quoting Special Characters 1387
Rules 1387
    Longest Match Possible 1387
    Empty Regular Expressions 1388
Bracketing Expressions 1388
The Replacement String 1389
    Ampersand 1389
    Quoted Digit 1389
Extended Regular Expressions 1390
Appendix Summary 1392

B. Help 1395

Solving a Problem 1395
Finding GNU/Linux-Related Information 1396
    Documentation 1397
    Useful GNU/Linux Sites 1398
    GNU/Linux Newsgroups 1399
    Mailing Lists 1399
    Words 1400
    Programs 1400
    Office Suites and Word Processors 1401
Specifying Your Terminal 1402

C. Security 1405

Encryption 1406
    Public Key Encryption 1407
    Symmetric Key Encryption 1409
    Encryption Implementation 1410
    GnuPG/PGP 1410
File Security 1411
E-mail Security 1412
    MTAs (Mail Transfer Agents) 1412
    MUAs (Mail User Agents) 1412
Network Security 1412
    Network Security Solutions 1413
    Network Security Guidelines 1414
Host Security 1416
    Login Security 1417
    Remote Access Security 1418
    Viruses and Worms 1419
    Physical Security 1419
Security Resources 1421
Appendix Summary 1425

D. The POSIX Standards 1427

Background 1428
POSIX.1 1428
POSIX.2 1430
    Localization 1430
    The POSIX Shell 1432
    Utilities for Portable Shell Applications 1434
    The User Portability Utilities Option (UPE) 1440
    Software Development Utilities 1441
POSIX.3 1442
POSIX.4 1442
POSIX.5 1443
    Security 1444
    Networks 1445
Profiles and POSIX Standards 1446
Appendix Summary 1446

E. The Free Software Definition 1449

Glossary 1453
Index 1505