SlideShare a Scribd company logo
A Practical Guide To Ubuntu Linux Mark G Sobell
download
https://ebookbell.com/product/a-practical-guide-to-ubuntu-linux-
mark-g-sobell-4096274
Explore and download more ebooks at ebookbell.com
Here are some recommended products that we believe you will be
interested in. You can click the link to download.
A Practical Guide To Ubuntu Linux 3rd Ed Sobell Mark G
https://ebookbell.com/product/a-practical-guide-to-ubuntu-linux-3rd-
ed-sobell-mark-g-22043758
A Practical Guide To Ubuntu Linux 4th Mark G Sobell Author
https://ebookbell.com/product/a-practical-guide-to-ubuntu-linux-4th-
mark-g-sobell-author-7351410
Ubuntu Linux A Practical Guide To Ubuntu Linux Yang
https://ebookbell.com/product/ubuntu-linux-a-practical-guide-to-
ubuntu-linux-yang-11768882
A Practical Guide To Cultivating Therapeutic Presence 1st Edition
Shari Geller Phd
https://ebookbell.com/product/a-practical-guide-to-cultivating-
therapeutic-presence-1st-edition-shari-geller-phd-46076572
A Practical Guide To Dermal Filler Procedures Rebecca Small
https://ebookbell.com/product/a-practical-guide-to-dermal-filler-
procedures-rebecca-small-46091886
A Practical Guide To Point Of Care Ultrasound Pocus 1st Arunangshu
Chakraborty Editor
https://ebookbell.com/product/a-practical-guide-to-point-of-care-
ultrasound-pocus-1st-arunangshu-chakraborty-editor-46123360
A Practical Guide To Veriloga Slobodan Mijalkovi
https://ebookbell.com/product/a-practical-guide-to-veriloga-slobodan-
mijalkovi-46132254
A Practical Guide To World Philosophies Selves Worlds And Ways Of
Knowing Monika Kirloskarsteinbach Leah Kalmanson
https://ebookbell.com/product/a-practical-guide-to-world-philosophies-
selves-worlds-and-ways-of-knowing-monika-kirloskarsteinbach-leah-
kalmanson-46493264
A Practical Guide To Advanced Networking Paperback Jeffrey S Beasley
https://ebookbell.com/product/a-practical-guide-to-advanced-
networking-paperback-jeffrey-s-beasley-46561604
A Practical Guide To Ubuntu Linux Mark G Sobell
A Practical Guide to Ubuntu Linux
Mark G. Sobell
Upper Saddle River, NJ • Boston • Indianapolis • San Francisco
New York • Toronto • Montreal • London • Munich • Paris • Madrid
Capetown • Sydney • Tokyo • Singapore • Mexico City
®
Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where
those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed
with initial capital letters or in all capitals.
Ubuntu is a registered trademark of Canonical Ltd.
The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any
kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in
connection with or arising out of the use of the information or programs contained herein.
The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales, which may
include electronic versions and/or custom covers and content particular to your business, training goals, marketing focus, and
branding interests. For more information, please contact:
U.S. Corporate and Government Sales
(800) 382-3419
corpsales@pearsontechgroup.com
For sales outside the United States, please contact:
International Sales
international@pearsoned.com
Visit us on the Web: www.prenhallprofessional.com
Library of Congress Cataloging-in-Publication Data
Sobell, Mark G.
A practical guide Ubuntu Linux / Mark G. Sobell.
p. cm.
Includes index.
ISBN-13: 978-0-13-236039-5 (pbk. : alk. paper)
1. Linux. 2. Operating systems (Computers) I. Title.
QA76.76.O63S59497 2008
005.4'32—dc22
2007043244
Copyright © 2008 Mark G. Sobell
All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be
obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or
by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, write to:
Pearson Education, Inc.
Rights and Permissions
501 Boylston Street, Suite 900
Boston, MA 02116
Fax (617) 671-3447
ISBN-13: 978-0-13-236039-5
ISBN-10: 0-13-236039-X
Text printed in the United States on recycled paper at Courier in Stoughton, Massachusetts.
First printing, December 2007
For my dad,
Morton Sobell,
who taught me to examine
the world very carefully.
This page intentionally left blank
ix
ix
Brief Contents
Contents xi
Preface xxxv
1 Welcome to Linux 1
PART I Installing Ubuntu Linux 21
2 Installation Overview 23
3 Step-by-Step Installation 45
PART II Getting Started with Ubuntu Linux 85
4 Introduction to Ubuntu Linux 87
5 The Linux Utilities 145
6 The Linux Filesystem 183
7 The Shell 219
PART III Digging into Ubuntu Linux 249
8 Linux GUIs: X and GNOME 251
9 The Bourne Again Shell 275
10 Networking and the Internet 353
11 Programming the Bourne Again Shell 395
x Brief Contents
PART IV System Administration 483
12 System Administration: Core Concepts 485
13 Files, Directories, and Filesystems 553
14 Downloading and Installing Software 583
15 Printing with CUPS 611
16 Building a Linux Kernel 635
17 Administration Tasks 657
18 Configuring a LAN 693
PART V Using Clients and Setting Up Servers 705
19 OpenSSH: Secure Network Communication 707
20 FTP: Transferring Files Across a Network 729
21 exim4: Setting Up Mail Servers, Clients, and More 755
22 NIS: Network Information Service 781
23 NFS: Sharing Filesystems 799
24 Samba: Linux and Windows File and Printer Sharing 823
25 DNS/BIND: Tracking Domain Names and Addresses 845
26 firestarter and iptables: Setting Up a Firewall 885
27 Apache: Setting Up a Web Server 915
PART VI Appendixes 969
A Regular Expressions 971
B Help 981
C Security 991
D The Free Software Definition 1011
E The Linux 2.6 Kernel 1015
Glossary 1021
Index 1071
xi
xi
Contents
Preface xxxvi
Chapter 1: Welcome to Linux 1
The GNU–Linux Connection 2
The History of GNU–Linux 2
The Code Is Free 4
Have Fun! 5
The Linux 2.6 Kernel 5
The Heritage of Linux: UNIX 5
What Is So Good About Linux? 6
Why Linux Is Popular with Hardware Companies and Developers 7
Linux Is Portable 8
Standards 9
The C Programming Language 9
Ubuntu Linux 10
Overview of Linux 10
Linux Has a Kernel Programming Interface 10
Linux Can Support Many Users 11
Linux Can Run Many Tasks 11
Linux Provides a Secure Hierarchical Filesystem 12
The Shell: Command Interpreter and Programming Language 12
A Large Collection of Useful Utilities 14
Interprocess Communication 14
System Administration 15
xii Contents
Additional Features of Linux 15
GUIs: Graphical User Interfaces 15
(Inter)Networking Utilities 16
Software Development 17
Conventions Used in This Book 17
Chapter Summary 20
Exercises 20
PART I Installing Ubuntu Linux 21
Chapter 2: Installation Overview 23
The Live/Install Desktop CD/DVD 24
More Information 24
Planning the Installation 25
Considerations 25
Requirements 25
Processor Architecture 26
Interfaces: Installer and Installed System 27
Ubuntu Releases 28
Ubuntu Editions 28
Installing a Fresh Copy or Upgrading an Existing Ubuntu System? 29
Setting Up the Hard Disk 30
RAID 34
LVM: Logical Volume Manager 35
The Installation Process 36
Downloading and Burning a CD/DVD 37
The Easy Way to Download a CD ISO Image File 37
Other Ways to Download a CD/DVD ISO Image File 37
Verifying an ISO Image File 40
Burning the CD/DVD 40
Gathering Information About the System 41
Chapter Summary 42
Exercises 43
Advanced Exercises 43
Chapter 3: Step-by-Step Installation 45
Basic Installation from the Live/Install Desktop CD/DVD 46
Booting the System 46
Checking the CD/DVD for Defects 47
Live Session 47
Contents xiii
Graphical Partitioners 53
gparted: the GNOME Partition Editor 53
ubiquity: Setting Up Partitions 56
Upgrading to a New Release 59
Installing KDE 60
Setting Up a Dual-Boot System 61
Creating Free Space on a Windows System 61
Installing Ubuntu Linux as the Second Operating System 61
Advanced Installation 62
The Live/Install Desktop CD: The Initial Install Screen 62
The Alternate CD Initial Install Screen Menu 65
The Server CD Initial Install Screen Menu 66
The DVD 67
The Ubuntu Textual Installer 67
The X Window System 74
displayconfig-gtk: Configures the Display 75
The xorg.conf File 77
gdm: Displays a Graphical Login 82
Chapter Summary 83
Exercises 83
Advanced Exercises 84
PART II Getting Started with Ubuntu Linux 85
Chapter 4: Introduction to Ubuntu Linux 87
Curbing Your Power: root Privileges/sudo 88
A Tour of the Ubuntu Linux Desktop 89
Logging In on the System 89
Introduction 90
Launching Programs from the Desktop 91
Switching Workspaces 93
Setting Personal Preferences 94
Mouse Preferences 95
Working with Windows 96
Using Nautilus to Work with Files 96
The Update Notifier 100
Changing Appearances (Themes) 102
Session Management 104
Getting Help 104
Feel Free to Experiment 105
Logging Out 105
xiv Contents
Getting the Most out of the Desktop 105
GNOME Desktop Terminology 105
Opening Files 106
Panels 107
The Main Menu 110
Windows 111
The Object Context Menu 115
Updating, Installing, and Removing Software Packages 119
Software Sources Window 119
Add/Remove Applications 120
Synaptic: Finds, Installs, and Removes Software 121
Where to Find Documentation 124
Ubuntu Help Center 124
man: Displays the System Manual 124
info: Displays Information About Utilities 126
The ––help Option 129
HOWTOs: Finding Out How Things Work 129
Getting Help with the System 130
More About Logging In 132
The Login Screen 132
What to Do if You Cannot Log In 133
Logging In Remotely: Terminal Emulators, ssh, and Dial-Up Connections 133
Logging In from a Terminal (Emulator) 134
Changing Your Password 135
Using Virtual Consoles 136
Working from the Command Line 136
Correcting Mistakes 137
Repeating/Editing Command Lines 139
Controlling Windows: Advanced Operations 139
Changing the Input Focus 139
Changing the Resolution of the Display 140
The Window Manager 141
Chapter Summary 142
Exercises 143
Advanced Exercises 144
Chapter 5: The Linux Utilities 145
Special Characters 146
Basic Utilities 147
ls: Lists the Names of Files 147
cat: Displays a Text File 147
rm: Deletes a File 148
less Is more: Display a Text File One Screen at a Time 148
hostname: Displays the System Name 149
Contents xv
Working with Files 149
cp: Copies a File 149
mv: Changes the Name of a File 150
lpr: Prints a File 151
grep: Searches for a String 151
head: Displays the Beginning of a File 152
tail: Displays the End of a File 152
sort: Displays a File in Order 153
uniq: Removes Duplicate Lines from a File 154
diff: Compares Two Files 154
file: Tests the Contents of a File 155
| (Pipe): Communicates Between Processes 156
Four More Utilities 157
echo: Displays Text 157
date: Displays the Time and Date 157
script: Records a Shell Session 158
unix2dos: Converts Linux and Macintosh Files to Windows Format 159
Compressing and Archiving Files 159
bzip2: Compresses a File 160
bunzip2 and bzcat: Decompress a File 160
gzip: Compresses a File 161
tar: Packs and Unpacks Archives 161
Locating Commands 164
which and whereis: Locate a Utility 164
apropos: Searches for a Keyword 165
slocate: Searches for a File 166
Obtaining User and System Information 166
who: Lists Users on the System 167
finger: Lists Users on the System 167
w: Lists Users on the System 169
Communicating with Other Users 170
write: Sends a Message 170
mesg: Denies or Accepts Messages 171
Email 171
Tutorial: Creating and Editing a File with vim 172
Starting vim 172
Command and Input Modes 174
Entering Text 175
Getting Help 176
Ending the Editing Session 178
The compatible Parameter 179
Chapter Summary 179
Exercises 181
Advanced Exercises 182
xvi Contents
Chapter 6: The Linux Filesystem 183
The Hierarchical Filesystem 184
Directory Files and Ordinary Files 184
Filenames 185
The Working Directory 188
Your Home Directory 188
Pathnames 189
Absolute Pathnames 189
Relative Pathnames 190
Directory Commands 191
mkdir: Creates a Directory 191
Important Standard Directories and Files 194
Working with Directories 196
rmdir: Deletes a Directory 196
Using Pathnames 197
mv, cp: Move or Copy Files 197
mv: Moves a Directory 198
Access Permissions 199
ls –l: Displays Permissions 199
chmod: Changes Access Permissions 200
Setuid and Setgid Permissions 201
Directory Access Permissions 202
ACLs: Access Control Lists 203
Enabling ACLs 204
Working with Access Rules 204
Setting Default Rules for a Directory 207
Links 209
Hard Links 210
Symbolic Links 212
rm: Removes a Link 214
Chapter Summary 214
Exercises 216
Advanced Exercises 218
Chapter 7: The Shell 219
The Command Line 220
Syntax 220
Processing the Command Line 223
Executing the Command Line 225
Editing the Command Line 225
Standard Input and Standard Output 226
The Screen as a File 226
The Keyboard and Screen as Standard Input and Standard Output 227
Redirection 228
Pipes 234
Contents xvii
Running a Program in the Background 237
Filename Generation/Pathname Expansion 239
The ? Special Character 239
The *Special Character 240
The [ ] Special Characters 241
Builtins 243
Chapter Summary 244
Utilities and Builtins Introduced in This Chapter 245
Exercises 245
Advanced Exercises 247
PART III Digging into Ubuntu Linux 249
Chapter 8: Linux GUIs: X and GNOME 251
X Window System 252
Using X 254
Window Managers 259
The Nautilus File Browser Window 260
The View Pane 261
The Side Pane 261
Control Bars 262
Menubar 263
GNOME Utilities 266
Deskbar Applet 266
Font Preferences 267
Pick a Font Window 268
Pick a Color Window 268
Run Application Window 269
Searching for Files 269
GNOME Terminal Emulator/Shell 270
Chapter Summary 271
Exercises 272
Advanced Exercises 272
Chapter 9: The Bourne Again Shell 275
Background 276
Shell Basics 277
Startup Files 277
Commands That Are Symbols 280
Redirecting Standard Error 280
Writing a Simple Shell Script 282
Separating and Grouping Commands 286
Job Control 290
Manipulating the Directory Stack 292
xviii Contents
Parameters and Variables 295
User-Created Variables 296
Variable Attributes 299
Keyword Variables 301
Special Characters 309
Processes 310
Process Structure 310
Process Identification 310
Executing a Command 312
History 312
Variables That Control History 312
Reexecuting and Editing Commands 314
The Readline Library 322
Aliases 328
Single Versus Double Quotation Marks in Aliases 329
Examples of Aliases 330
Functions 331
Controlling bash Features and Options 334
Command Line Options 334
Shell Features 334
Processing the Command Line 338
History Expansion 338
Alias Substitution 338
Parsing and Scanning the Command Line 338
Command Line Expansion 339
Chapter Summary 347
Exercises 349
Advanced Exercises 351
Chapter 10: Networking and the Internet 353
Types of Networks and How They Work 355
Broadcast Networks 356
Point-to-Point Networks 356
Switched Networks 356
LAN: Local Area Network 357
WAN: Wide Area Network 358
Internetworking Through Gateways and Routers 358
Network Protocols 361
Host Address 363
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 371
Mailing List Servers 372
Contents xix
Network Utilities 372
Trusted Hosts 372
OpenSSH Tools 373
telnet: Logs In on a Remote System 373
ftp: Transfers Files Over a Network 375
ping: Tests a Network Connection 375
traceroute: Traces a Route Over the Internet 376
host and dig: Query Internet Nameservers 378
jwhois: Looks Up Information About an Internet Site 378
Distributed Computing 379
The Client/Server Model 380
DNS: Domain Name Service 381
Ports 383
NIS: Network Information Service 383
NFS: Network Filesystem 383
Internet Services 384
Proxy Servers 387
RPC Network Services 387
Usenet 388
WWW: World Wide Web 390
URL: Uniform Resource Locator 391
Browsers 392
Search Engines 392
Chapter Summary 392
Exercises 393
Advanced Exercises 394
Chapter 11: Programming the Bourne Again Shell 395
Control Structures 396
if...then 396
if...then...else 400
if...then...elif 403
for...in 409
for 410
while 412
until 416
break and continue 418
case 419
select 425
Here Document 427
File Descriptors 429
Parameters and Variables 432
Array Variables 432
Locality of Variables 434
Special Parameters 436
Positional Parameters 438
Expanding Null and Unset Variables 443
xx Contents
Builtin Commands 444
type: Displays Information About a Command 445
read: Accepts User Input 445
exec: Executes a Command 448
trap: Catches a Signal 451
kill: Aborts a Process 454
getopts: Parses Options 454
A Partial List of Builtins 457
Expressions 458
Arithmetic Evaluation 458
Logical Evaluation (Conditional Expressions) 459
String Pattern Matching 460
Operators 461
Shell Programs 466
A Recursive Shell Script 467
The quiz Shell Script 470
Chapter Summary 476
Exercises 478
Advanced Exercises 480
PART IV System Administration 483
Chapter 12: System Administration:
Core Concepts 485
Running Commands with root Privileges 487
sudo: Running a Command with root Privileges 490
sudoers: Configuring sudo 494
Unlocking the root Account (Assigning a Password to root) 499
su: Gives You Another User’s Privileges 499
The Upstart Event-Based init Daemon 500
Software Packages 501
Definitions 501
Jobs 503
SysVinit (rc) Scripts: Start and Stop System Services 507
System Operation 510
Runlevels 510
Booting the System 511
Recovery (Single-User) Mode 512
Going to Multiuser Mode 515
Logging In 516
Contents xxi
Logging Out 517
Bringing the System Down 518
Crash 519
Avoiding a Trojan Horse 520
Getting Help 522
Textual System Administration Utilities 522
kill: Sends a Signal to a Process 522
Other Textual Utilities 525
Setting Up a Server 527
Standard Rules in Configuration Files 528
rpcinfo: Displays Information About portmap 530
The inetd and xinetd Superservers 531
Securing a Server 532
DHCP: Configures Network Interfaces 538
nsswitch.conf: Which Service to Look at First 542
How nsswitch.conf Works 542
PAM 545
More Information 546
Configuration Files, Module Types, and Control Flags 546
Example 548
Modifying the PAM Configuration 549
Chapter Summary 550
Exercises 551
Advanced Exercises 551
Chapter 13: Files, Directories, and Filesystems 553
Important Files and Directories 554
File Types 566
Ordinary Files, Directories, Links, and Inodes 566
Special Files 567
Filesystems 570
mount: Mounts a Filesystem 572
umount: Unmounts a Filesystem 575
fstab: Keeps Track of Filesystems 576
fsck: Checks Filesystem Integrity 577
tune2fs: Changes Filesystem Parameters 578
RAID Filesystem 580
Chapter Summary 580
Exercises 580
Advanced Exercises 581
xxii Contents
Chapter 14: Downloading and Installing Software 583
JumpStart: Installing and Removing Packages Using aptitude 585
Finding the Package That Holds a File You Need 587
APT: Keeps the System Up-to-Date 588
Repositories 588
sources.list: Specifies Repositories for APT to Search 589
The APT Local Package Indexes and the APT Cache 590
The apt cron Script and APT Configuration Files 590
aptitude: Works with Packages and the Local Package Index 592
apt-cache: Displays Package Information 596
apt-get source: Downloads Source Files 598
dpkg: The Debian Package Management System 598
deb Files 599
dpkg: The Foundation of the Debian Package Management System 600
BitTorrent 604
Installing Non-dpkg Software 607
The /opt and /usr/local Directories 607
GNU Configure and Build System 607
wget: Downloads Files Noninteractively 609
Chapter Summary 610
Exercises 610
Advanced Exercises 610
Chapter 15: Printing with CUPS 611
Introduction 612
Prerequisites 612
More Information 613
Notes 613
JumpStart I: Configuring a Local Printer 614
system-config-printer: Configuring a Printer 614
Configuration Tabs 614
Setting Up a Remote Printer 616
JumpStart II: Configuring a Remote Printer Using the CUPS Web Interface 618
Traditional UNIX Printing 622
Configuring Printers 624
The CUPS Web Interface 624
CUPS on the Command Line 626
Sharing CUPS Printers 629
Printing from Windows 630
Printing Using CUPS 631
Printing Using Samba 631
Contents xxiii
Printing to Windows 632
Chapter Summary 633
Exercises 633
Advanced Exercises 633
Chapter 16: Building a Linux Kernel 635
Prerequisites 636
Downloading the Kernel Source Code 637
aptitude: Downloading and Installing the Kernel Source Code 637
git: Obtaining the Latest Kernel Source Code 637
Read the Documentation 638
Configuring and Compiling the Linux Kernel 639
.config: Configures the Kernel 639
Customizing a Kernel 640
Cleaning the Source Tree 642
Compiling a Kernel Image File and Loadable Modules 643
Using Loadable Kernel Modules 643
Installing the Kernel, Modules, and Associated Files 646
Rebooting 647
grub: The Linux Boot Loader 647
menu.lst: Configures grub 648
update-grub: Updates the menu.lst file 651
grub-install: Installs the MBR and grub Files 653
dmesg: Displays Kernel Messages 654
Chapter Summary 655
Exercises 656
Advanced Exercises 656
Chapter 17: Administration Tasks 657
Configuring User and Group Accounts 658
users-admin: Manages User Accounts 658
useradd: Adds a User Account 660
userdel: Removes a User Account 661
usermod: Modifies a User Account 661
groupadd: Adds a Group 661
groupdel: Removes a Group 661
Backing Up Files 662
Choosing a Backup Medium 663
Backup Utilities 663
Performing a Simple Backup 665
dump, restore: Back Up and Restore Filesystems 666
xxiv Contents
Scheduling Tasks 668
cron and anacron: Schedule Routine Tasks 668
at: Runs Occasional Tasks 671
System Reports 671
vmstat: Reports Virtual Memory Statistics 671
top: Lists Processes Using the Most Resources 672
parted: Reports on and Partitions a Hard Disk 673
Keeping Users Informed 677
Creating Problems 678
Solving Problems 679
Helping When a User Cannot Log In 679
Speeding Up the System 680
lsof: Finds Open Files 681
Keeping a Machine Log 681
Keeping the System Secure 682
Log Files and Mail for root 683
Monitoring Disk Usage 683
logrotate: Manages Log Files 684
Removing Unused Space from Directories 686
Disk Quota System 687
syslogd: Logs System Messages 688
Chapter Summary 690
Exercises 690
Advanced Exercises 691
Chapter 18: Configuring a LAN 693
Setting Up the Hardware 694
Connecting the Computers 694
Routers 695
NIC: Network Interface Card 695
Tools 695
Configuring the Systems 697
network-admin: Configures Network Connections 698
nm-applet: Configures Network Connections Automatically 700
iwconfig: Configures a Wireless NIC 700
Setting Up Servers 702
More Information 703
Chapter Summary 703
Exercises 704
Advanced Exercises 704
Contents xxv
PART V UsingClientsandSettingUpServers 705
Chapter 19: OpenSSH: Secure Network
Communication 707
Introduction 708
About OpenSSH 708
Files 708
How OpenSSH Works 710
More Information 711
OpenSSH Clients 711
Prerequisites 711
JumpStart: Using ssh and scp 711
Setup 712
ssh: Connects to or Executes Commands on a Remote System 714
scp: Copies Files to and from a Remote System 716
sftp: A Secure FTP Client 718
~/.ssh/config and /etc/ssh/ssh_config Configuration Files 718
sshd: OpenSSH Server 720
Prerequisites 720
Note 720
JumpStart: Starting the sshd Daemon 720
Authorized Keys: Automatic Login 721
Command Line Options 722
/etc/ssh/sshd_config Configuration File 722
Troubleshooting 724
Tunneling/Port Forwarding 725
Chapter Summary 727
Exercises 728
Advanced Exercises 728
Chapter 20: FTP: Transferring Files Across a Network 729
Introduction 730
More Information 731
FTP Client 731
Prerequisites 731
JumpStart I: Downloading Files Using ftp 732
Notes 735
Anonymous FTP 735
Automatic Login 735
Binary Versus ASCII Transfer Mode 736
ftp Specifics 736
xxvi Contents
FTP Server (vsftpd) 740
Prerequisites 740
Notes 740
JumpStart II: Starting a vsftpd Server 741
Testing the Setup 741
vsftpd.conf: The vsftpd Configuration File 742
Chapter Summary 753
Exercises 753
Advanced Exercises 754
Chapter 21: exim4: Setting Up Mail Servers,
Clients, and More 755
Introduction to exim4 756
Prerequisites 757
Notes 757
More Information 758
JumpStart I: Configuring exim4 to Use a Smarthost 758
JumpStart II: Configuring exim4 to Send and Receive Email 760
How exim4 Works 761
Mail Logs 762
Working with Messages 763
Aliases and Forwarding 763
Related Programs 765
Configuring exim4 765
Using a Text Editor to Configure exim4 766
The update-exim4.conf.conf Configuration File 766
dpkg-reconfigure: Configures exim4 768
SpamAssassin 768
Prerequisites 769
How SpamAssassin Works 769
Testing SpamAssassin 770
Configuring SpamAssassin 771
Additional Email Tools 772
Webmail 772
Mailing Lists 774
Setting Up an IMAP or POP3 Server 776
Authenticated Relaying 777
Alternatives to exim4 779
Chapter Summary 779
Exercises 780
Advanced Exercises 780
Contents xxvii
Chapter 22: NIS: Network Information Service 781
Introduction to NIS 782
How NIS Works 782
More Information 784
Setting Up an NIS Client 784
Prerequisites 785
Notes 785
Step-by-Step Setup 786
Testing the Setup 787
yppasswd: Changes NIS Passwords 788
Setting Up an NIS Server 790
Prerequisites 790
Notes 791
Step-by-Step Setup 791
Testing 796
yppasswdd: The NIS Password Update Daemon 797
Chapter Summary 798
Exercises 798
Advanced Exercises 798
Chapter 23: NFS: Sharing Filesystems 799
Introduction 800
More Information 802
Setting Up an NFS Client 802
Prerequisites 802
JumpStart I: Mounting a Remote Directory Hierarchy 803
mount: Mounts a Directory Hierarchy 804
Improving Performance 806
/etc/fstab: Mounts Directory Hierarchies Automatically 807
Setting Up an NFS Server 808
Prerequisites 808
Notes 808
JumpStart II: Configuring an NFS Server Using shares-admin 809
Manually Exporting a Directory Hierarchy 811
Where the System Keeps NFS Mount Information 815
exportfs: Maintains the List of Exported Directory Hierarchies 817
Testing the Server Setup 818
automount: Mounts Directory Hierarchies on Demand 818
Chapter Summary 821
Exercises 822
Advanced Exercises 822
xxviii Contents
Chapter 24: Samba: Linux and Windows File
and Printer Sharing 823
Introduction 824
About Samba 825
Prerequisites 825
More Information 825
Notes 825
Samba Users, User Maps, and Passwords 826
JumpStart: Configuring a Samba Server Using shares-admin 826
swat: Configures a Samba Server 828
smb.conf: Manually Configuring a Samba Server 832
Parameters in the smbd.conf File 832
The [homes] Share: Sharing Users’ Home Directories 838
Accessing Linux Shares from Windows 838
Browsing Shares 838
Mapping a Share 839
Accessing Windows Shares from Linux 839
smbtree: Displays Windows Shares 839
smbclient: Connects to Windows Shares 840
Browsing Windows Networks 840
Mounting Windows Shares 841
Troubleshooting 841
Chapter Summary 844
Exercises 844
Advanced Exercises 844
Chapter 25: DNS/BIND: Tracking Domain Names
and Addresses 845
Introduction to DNS 846
Nodes, Domains, and Subdomains 846
Zones 848
Queries 849
Servers 850
Resource Records 851
DNS Query and Response 854
Reverse Name Resolution 855
About DNS 857
How DNS Works 857
Prerequisites 857
More Information 858
Notes 858
Contents xxix
JumpStart I: Setting Up a DNS Cache 858
Setting Up BIND 860
named.conf: The named Configuration File 860
Zone Files 863
A DNS Cache 864
DNS Glue Records 868
TSIGs: Transaction Signatures 868
Running BIND in a chroot Jail 870
Troubleshooting 872
A Full-Functioned Nameserver 873
A Slave Server 877
A Split Horizon Server 878
Chapter Summary 883
Exercises 883
Advanced Exercises 884
Chapter 26: firestarter and iptables: Setting
Up a Firewall 885
About firestarter 886
Prerequisites 886
Notes 887
More Information 888
JumpStart: Building a Firewall Using the firestarter Firewall Wizard 888
firestarter: Maintains a Firewall 890
The Status Tab 890
The Events Tab 892
The Policy Tab 894
How iptables Works 896
About iptables 899
More Information 899
Prerequisites 899
Notes 899
Anatomy of an iptables Command 900
Building a Set of Rules 901
Commands 901
Packet Match Criteria 903
Display Criteria 903
Match Extensions 903
Targets 906
Copying Rules to and from the Kernel 907
xxx Contents
Sharing an Internet Connection Using NAT 908
Connecting Several Clients to a Single Internet Connection 910
Connecting Several Servers to a Single Internet Connection 912
Chapter Summary 912
Exercises 913
Advanced Exercises 913
Chapter 27: Apache: Setting Up a Web Server 915
Introduction 916
About Apache 917
Prerequisites 917
More Information 918
Notes 918
JumpStart: Getting Apache Up and Running 919
Modifying the Configuration Files 919
Testing Apache 920
Putting Your Content in Place 920
Configuring Apache 921
Configuration Tools 921
Include Directives 922
Filesystem Layout 923
Configuration Directives 925
Directives I: Directives You May Want to Modify as You Get Started 926
Contexts and Containers 931
Directives II: Advanced Directives 935
The Ubuntu apache2.conf File 948
The Ubuntu default Configuration File 950
Redirects 951
Content Negotiation 951
Type Maps 951
MultiViews 952
Server-Generated Directory Listings (Indexing) 953
Virtual Hosts 953
Setting Up a Virtual Host 954
Types of Virtual Hosts 954
The default Virtual Host 954
Examples 954
Troubleshooting 956
Modules 957
mod_cgi and CGI Scripts 958
mod_ssl 959
Authentication Modules and .htaccess 961
Scripting Modules 962
Multiprocessing Modules (MPMs) 963
Contents xxxi
webalizer: Analyzes Web Traffic 964
MRTG: Monitors Traffic Loads 964
Error Codes 964
Chapter Summary 965
Exercises 966
Advanced Exercises 966
PART VI Appendixes 969
Appendix A: Regular Expressions 971
Characters 972
Delimiters 972
Simple Strings 972
Special Characters 972
Periods 973
Brackets 973
Asterisks 974
Carets and Dollar Signs 974
Quoting Special Characters 975
Rules 975
Longest Match Possible 975
Empty Regular Expressions 976
Bracketing Expressions 976
The Replacement String 976
Ampersand 977
Quoted Digit 977
Extended Regular Expressions 977
Appendix Summary 979
Appendix B: Help 981
Solving a Problem 982
Finding Linux-Related Information 983
Documentation 983
Useful Linux Sites 984
Linux Newsgroups 985
Mailing Lists 985
Words 986
Software 986
Office Suites and Word Processors 988
Specifying a Terminal 988
xxxii Contents
Appendix C: Security 991
Encryption 992
Public Key Encryption 993
Symmetric Key Encryption 994
Encryption Implementation 995
GnuPG/PGP 995
File Security 997
Email Security 997
MTAs (Mail Transfer Agents) 997
MUAs (Mail User Agents) 998
Network Security 998
Network Security Solutions 999
Network Security Guidelines 999
Host Security 1001
Login Security 1002
Remote Access Security 1003
Viruses and Worms 1004
Physical Security 1004
Security Resources 1006
Appendix Summary 1009
Appendix D: The Free Software Definition 1011
Appendix E: The Linux 2.6 Kernel 1015
Native Posix Thread Library (NPTL) 1016
IPSecurity (IPSec) 1016
Asynchronous I/O (AIO) 1016
O(1) Scheduler 1017
OProfile 1017
kksymoops 1017
Reverse Map Virtual Memory (rmap VM) 1017
HugeTLBFS: Translation Look-Aside Buffer Filesystem 1018
remap_file_pages 1018
2.6 Network Stack Features (IGMPv3, IPv6, and Others) 1018
Internet Protocol Virtual Server (IPVS) 1019
Access Control Lists (ACLs) 1019
4GB-4GB Memory Split: Physical Address Extension (PAE) 1019
Scheduler Support for HyperThreaded CPUs 1019
Contents xxxiii
Block I/O (BIO) Block Layer 1019
Support for Filesystems Larger Than 2 Terabytes 1020
New I/O Elevators 1020
Interactive Scheduler Response Tuning 1020
Glossary 1021
Index 1071
This page intentionally left blank
xxxv
xxxv
M Preface
Preface
The book Whether you are an end user, a system administrator, or a little of both, this book
explains with step-by-step examples how to get the most out of an Ubuntu Linux
system. In 27 chapters, this book takes you from installing an Ubuntu system
through understanding its inner workings to setting up secure servers that run on
the system.
The audience This book is designed for a wide range of readers. It does not require you to have
programming experience, although having some experience using a general-purpose
computer, such as a Windows, Macintosh, UNIX, or another Linux system is cer-
tainly helpful. This book is appropriate for
• Students who are taking a class in which they use Linux
• Home users who want to set up and/or run Linux
• Professionals who use Linux at work
• System administrators who need an understanding of Linux and the tools
that are available to them
• Computer science students who are studying the Linux operating system
• Technical executives who want to get a grounding in Linux
Benefits A Practical Guide to Ubuntu Linux®
gives you a broad understanding of many fac-
ets of Linux, from installing Ubuntu Linux through using and customizing it. No
matter what your background, this book provides the knowledge you need to get
on with your work. You will come away from this book understanding how to use
Linux, and this book will remain a valuable reference for years to come.
xxxvi Preface
Overlap If you read A Practical Guide to Linux®
Commands, Editors, and Shell Program-
ming, you will notice some overlap between that book and the one you are reading
now. The first chapter, the chapters on the utilities and the filesystem, and the
appendix on regular expressions are very similar in the two books, as are the three
chapters on the Bourne Again Shell (bash). Chapters that appear in this book but do
not appear in A Practical Guide to Linux®
Commands, Editors, and Shell Program-
ming include Chapters 2 and 3 (installation), Chapters 4 and 8 (Ubuntu Linux and
the GUI), Chapter 10 (networking), all of the chapters in Part IV (system adminis-
tration) and Part V (servers), and Appendix C (security).
Differences While this book explains how to use Linux from a graphical interface and from the
command line (a textual interface), A Practical Guide to Linux®
Commands, Edi-
tors, and Shell Programming works exclusively with the command line. It includes
full chapters on the vi and emacs editors, as well as chapters on the gawk pattern
processing language and the sed stream editor. In addition, it has a command refer-
ence section that provides extensive examples of the use of more than 80 of the
most important Linux utilities. You can use these utilities to solve problems without
resorting to programming in C.
This Book Includes Ubuntu Gutsy Gibbon (7.10)
on a Live/Install DVD
This book includes a live/install DVD that holds the Gutsy Gibbon (7.10) release of
Ubuntu Linux. You can use this DVD to run a live Ubuntu session that displays the
GNOME desktop without making any changes to your computer: Boot from the
DVD, run an Ubuntu live session, and log off. Your system remains untouched:
When you reboot, it is exactly as it was before you ran the Ubuntu live session.
Alternatively, you can install Ubuntu from the live session. Chapter 2 helps you get
ready to install Ubuntu. Chapter 3 provides step-by-step instructions for installing
Ubuntu from this DVD. This book guides you through learning about, using, and
administrating an Ubuntu Linux session.
DVD features The included DVD incorporates all the features of the live/install Desktop CD as
well as the Alternate and Server CDs. It also includes all software packages sup-
ported by Ubuntu. You can use it to perform a graphical or textual (command line)
installation of either a graphical or a textual Ubuntu system. If you do not have an
Internet connection, you can use the DVD as a software repository and install any
supported software packages from it.
Features of This Book
This book is designed and organized so you can get the most out of it in the shortest
amount of time. You do not have to read this book straight through in page order.
Instead, once you are comfortable using Linux, you can use this book as a reference:
Features of This Book xxxvii
Look up a topic of interest in the table of contents or index and read about it. Or
think of the book as a catalog of Linux topics: Flip through the pages until a topic
catches your eye. The book includes many pointers to Web sites where you can get
additional information: Consider the Internet an extension of this book.
A Practical Guide to Ubuntu Linux®
is structured with the following features:
• Optional sections enable you to read the book at different levels, returning
to more difficult material when you are ready to delve into it.
• Caution boxes highlight procedures that can easily go wrong, giving you
guidance before you run into trouble.
• Tip boxes highlight ways you can save time by doing something differently
or situations when it may be useful or just interesting to have additional
information.
• Security boxes point out places where you can make a system more secure.
The security appendix presents a quick background in system security
issues.
• Concepts are illustrated by practical examples throughout the book.
• Chapter summaries review the important points covered in each chapter.
• Review exercises are included at the end of each chapter for readers who
want to further hone their skills. Answers to even-numbered exercises are
available at www.sobell.com.
• The glossary defines more than 500 common terms.
• The chapters that cover servers include JumpStart sections that get you off
to a quick start using clients and setting up servers. Once a server is up and
running, you can test and modify its configuration as explained in the rest
of the chapter.
• This book provides resources for finding software on the Internet. It also
explains how to download and install software using Synaptic, aptitude,
the GNOME Add/Remove Applications window, and BitTorrent. It details
controlling automatic updates using the Update Notifier and the Update
Manager window.
• This book describes in detail many important GNU tools, including the
GNOME desktop, the Nautilus File Browser, the parted and gparted parti-
tion editors, the gzip compression utility, and many command line utilities
that come from the GNU project.
• Pointers throughout the text provide help in obtaining online documenta-
tion from many sources, including the local system, the Ubuntu Web site,
and other locations on the Internet.
• Many useful URLs point to Web sites where you can obtain software,
security programs and information, and more.
• The comprehensive index helps you locate topics quickly and easily.
xxxviii Preface
Key Topics Covered in This Book
This book contains a lot of information. This section distills and summarizes its
contents. In addition, “Details” (starting on page xli) describes what each chapter
covers. Finally, the table of contents provides more detail. This book:
Installation • Describes how to download Ubuntu Linux ISO images from the Internet
and burn the Ubuntu live/install Desktop CD, the DVD, or the Ubuntu
Alternate or Server installation CD.
• Helps you plan the layout of the system’s hard disk. It includes a discus-
sion of partitions, partition tables, and mount points, and assists you in
using the ubiquity or gparted graphical partitioner or the Ubuntu textual
partitioner to partition the hard disk.
• Explains how to set up a dual-boot system so you can install Ubuntu
Linux on a Windows system and boot either operating system.
• Describes in detail how to install Ubuntu Linux from a live/install Desktop
CD or the live/install DVD using the ubiquity graphical installer. It also
explains how to use the textual installer found on the Alternate CD, the
Server CD, and the DVD. The graphical installer is fast and easy to use.
The textual installer gives you more options and works on systems with
less RAM (system memory).
• Covers testing an Ubuntu CD/DVD for defects, setting boot command line
parameters (boot options), and creating a RAID array.
• Covers the details of installing and customizing the X.org version of the
X Window System either graphically using the Screen and Graphics
Preferences window or manually with a text editor.
Working with
Ubuntu Linux
• Introduces the GNOME desktop (GUI) and explains how to use desktop
tools, including the Top and Bottom panels, panel objects, the Main menu,
object context menus, the Workspace Switcher, the Nautilus File Browser,
and the GNOME Terminal emulator.
• Explains how to use the Appearance Preferences window to add and mod-
ify themes to customize your desktop to please your senses and help you
work more efficiently.
• Details how to set up 3D desktop visual effects that take advantage of
Compiz Fusion.
• Covers the Bourne Again Shell (bash) in three chapters, including an entire
chapter on shell programming that includes many sample shell scripts.
These chapters provide clear explanations and extensive examples of how
bash works both from the command line in day-to-day work and as a pro-
gramming language to write shell scripts.
Key Topics Covered in This Book xxxix
• Explains the textual (command line) interface and introduces more than
30 command line utilities.
• Presents a tutorial on the vim textual editor.
• Covers types of networks, network protocols, and network utilities.
• Explains hostnames, IP addresses, and subnets, and explores how to use
host and dig to look up domain names and IP addresses on the Internet.
• Covers distributed computing and the client/server model.
• Explains how to use ACLs (Access Control Lists) to fine-tune user access
permissions.
System
administration
• Explains how to use the Ubuntu graphical and textual (command line)
tools to configure the display, DNS, NFS, Samba, Apache, a firewall, a
network interface, and more. You can also use these tools to add users and
manage local and remote printers.
• Goes into detail about using sudo to allow specific users to work with root
privileges (become Superuser) and customizing the way sudo works by
editing the sudoers configuration file. It also explains how you can unlock
the root account if necessary.
• Describes how to use the following tools to download and install software
to keep a system up-to-date and to install new software:
◆ The Software Sources window controls which Ubuntu and third-party
software repositories Ubuntu downloads software packages from and
whether Ubuntu downloads updates automatically. You can also use
this window to cause Ubuntu to download and install security updates
automatically.
◆ If you do not have an Internet connection, you can use the Software
Sources window to set up the DVD included with this book as a soft-
ware repository. You can then install any software packages that
Ubuntu supports from this repository.
◆ Based on how you set up updates in the Software Sources window, the
Update Notifier pops up on the desktop to let you know when soft-
ware updates are available. Click the Update Notifier to open the
Update Manager window, from which you can download and install
updates.
◆ The Add/Remove Applications window provides an easy way to
select, download, and install a wide range of software packages.
◆ Synaptic allows you to search for, install, and remove software pack-
ages. It gives you more ways to search for packages than does the
Add/Remove Applications window.
xl Preface
◆ APT downloads and installs software packages from the Internet (or
the included DVD), keeping a system up-to-date and resolving
dependencies as it processes the packages. You can use APT from a
graphical interface (Synaptic) or from several textual interfaces (e.g.,
aptitude and apt-get).
◆ BitTorrent is a good choice for distributing large amounts of data such
as the Ubuntu installation DVD and CDs. The more people who use
BitTorrent to download a file, the faster it works.
• Covers graphical system administration tools, including the many tools
available from the GNOME Main menu.
• Explains system operation, including the boot process, init scripts, recov-
ery (single-user) and multiuser modes, and steps to take if the system
crashes.
• Describes how to use and program the new Upstart init daemon, which
replaces the System V init daemon.
• Describes files, directories, and filesystems, including types of files and file-
systems, fstab (the filesystem table), and automatically mounted filesystems,
and explains how to fine-tune and check the integrity of filesystems.
• Covers backup utilities, including tar, cpio, dump, and restore.
• Describes compression/archive utilities, including gzip, bzip2, compress,
and zip.
• Explains how to customize and build a Linux kernel.
Security • Helps you manage basic system security issues using ssh (secure shell),
vsftpd (secure FTP server), Apache (Web server), iptables (firewalls), and
more.
• Covers using firestarter to share an Internet connection over a LAN, run a
DHCP server, and set up a basic firewall to protect the system.
• Provides instructions on using iptables to share an Internet connection over
a LAN and to build advanced firewalls.
• Describes how to set up a chroot jail to help protect a server system.
• Explains how to use TCP wrappers to control who can access a server.
Clients and servers • Explains how to set up and use the most popular Linux servers, providing a
chapter on each: Apache, Samba, OpenSSH, exim4, DNS, NFS, FTP, firestarter
and iptables, and NIS (all of which are supported by Ubuntu Linux).
• Describes how to set up a CUPS printer server.
• Describes how to set up and use a DHCP server either by itself or from firestarter.
Programming • Provides a full chapter covering shell programming using bash, including
many examples.
Key Topics Covered in This Book xli
Details
Chapter 1 Chapter 1 presents a brief history of Linux and explains some of the features that
make it a cutting-edge operating system. The “Conventions Used in This Book”
(page 17) section details the typefaces and terminology this book uses.
Part I Part I, “Installing Ubuntu Linux,” discusses how to install Ubuntu Linux. Chapter 2
presents an overview of the process of installing Ubuntu Linux, including hardware
requirements, downloading and burning a CD or DVD, and planning the layout of
the hard disk. Chapter 3 is a step-by-step guide to installing Ubuntu Linux from a
CD or DVD, using the graphical or textual installer. It also shows how to set up the
X Window System and customize your desktop (GUI).
Part II Part II, “Getting Started with Ubuntu Linux,” familiarizes you with Ubuntu Linux,
covering logging in, the GUI, utilities, the filesystem, and the shell. Chapter 4 intro-
duces desktop features, including the Top and Bottom panels and the Main menu;
explains how to use the Nautilus File Browser to manage files, run programs, and
connect to FTP and HTTP servers; covers finding documentation, dealing with login
problems, and using the window manager; and presents some suggestions on where
to find documentation, including manuals, tutorials, software notes, and HOWTOs.
Chapter 5 introduces the shell command line interface, describes more than 30 use-
ful utilities, and presents a tutorial on the vim text editor. Chapter 6 discusses the
Linux hierarchical filesystem, covering files, filenames, pathnames, working with
directories, access permissions, and hard and symbolic links. Chapter 7 introduces
the Bourne Again Shell (bash) and discusses command line arguments and options,
redirecting input to and output from commands, running programs in the back-
ground, and using the shell to generate and expand filenames.
Part III Part III, “Digging into Ubuntu Linux,” goes into more detail about working with the
system. Chapter 8 discusses the GUI (desktop) and includes a section on how to run
a graphical program on a remote system and have the display appear locally. The
section on GNOME describes several GNOME utilities, including the new Deskbar
applet, and goes into more depth about the Nautilus File Browser. Chapter 9 extends
the bash coverage from Chapter 7, explaining how to redirect error output, avoid
overwriting files, and work with job control, processes, startup files, important shell
builtin commands, parameters, shell variables, and aliases. Chapter 10 explains net-
works, network security, and the Internet and discusses types of networks, subnets,
protocols, addresses, hostnames, and various network utilities. The section on dis-
tributed computing describes the client/server model and some of the servers you can
use on a network. Chapter 11 goes into greater depth about shell programming
Experienced users may want to skim Part II
tip If you have used a UNIX or Linux system before, you may want to skim or skip some or all of the
chapters in Part II. Part I has two sections that all readers should take a look at: “Conventions Used
in This Book” (page 17), which explains the typographic and layout conventions used in this book,
and “Where to Find Documentation” (page 124), which points out both local and remote sources
of Linux and Ubuntu documentation.
xlii Preface
using bash, with the discussion enhanced by extensive examples. Details of setting up
and using clients and servers are reserved until Part V.
Part IV Part IV covers system administration. Chapter 12 discusses core concepts such as
the use of sudo, working with root privileges, system operation, chroot jails, TCP
wrappers, general information about how to set up a server, DHCP, and PAM.
Chapter 13 explains the Linux filesystem, going into detail about types of files,
including special and device files; the use of fsck to verify the integrity of and repair
filesystems; and the use of tune2fs to change filesystem parameters. Chapter 14
explains how to keep a system up-to-date by downloading software from the Inter-
net and installing it, including examples of using APT programs such as aptitude,
apt-get, and apt-cache. It also covers the dpkg software packaging system and the
use of some dpkg utilities. Finally, it explains how to use BitTorrent from the com-
mand line to download files. Chapter 15 explains how to set up the CUPS printing
system so you can print on both local and remote systems. Chapter 16 details cus-
tomizing and building a Linux kernel. Chapter 17 covers additional administration
tasks, including setting up user accounts, backing up files, scheduling automated
tasks, tracking disk usage, and solving general problems. Chapter 18 explains how
to set up a local area network (LAN), including both hardware (including wireless)
and software configuration.
Part V Part V goes into detail about setting up and running servers and connecting to them
with clients. Where appropriate, these chapters include JumpStart sections that get
you off to a quick start in using clients and setting up servers. The chapters in Part V
cover the following clients/servers:
• OpenSSH Set up an OpenSSH server and use ssh, scp, and sftp to com-
municate securely over the Internet.
• FTP Set up a vsftpd secure FTP server and use any of several FTP clients
to exchange files with the server.
• Mail Configure exim4 and use Webmail, POP3, or IMAP to retrieve
email; use SpamAssassin to combat spam.
• NIS Set up NIS to facilitate system administration of a LAN.
• NFS Share filesystems between systems on a network.
• Samba Share filesystems and printers between Windows and Linux systems.
• DNS/BIND Set up a domain nameserver to let other systems on the
Internet know the names and IP addresses of local systems they may need
to contact.
• firestarter and iptables Share a single Internet connection between systems
on a LAN, run a DHCP server, and set up a firewall to protect local systems.
• Apache Set up an HTTP server that serves Web pages that browsers can
display. This chapter includes many suggestions for increasing Apache
security.
Thanks xliii
Part VI Part VI includes appendixes on regular expressions, helpful Web sites, system secu-
rity, and free software. This part also includes an extensive glossary with more than
500 entries plus a comprehensive index.
Supplements
The author’s home page (www.sobell.com) contains downloadable listings of the
longer programs from this book as well as pointers to many interesting and useful
Linux sites on the World Wide Web, a list of corrections to the book, answers to even-
numbered exercises, and a solicitation for corrections, comments, and suggestions.
Thanks
First and foremost, I want to thank Mark L. Taub, Editor-in-Chief, Prentice Hall,
who provided encouragement and support through the hard parts of this project.
Mark is unique in my 25 years of book writing experience: an editor who works
with the tools I write about. Because Mark runs Ubuntu on his home computer, we
shared experiences as I wrote this book. Mark, your comments and direction are
invaluable; this book would not exist without your help. Thank you, Mark T.
Molly Sharp of ContentWorks worked with me day-by-day during production of
this book providing help, listening to my rants, and keeping everything on track.
Thanks to Jill Hobbs, Copyeditor, who made the book readable, understandable,
and consistent; and Linda Seifert, Proofreader, who made each page sparkle.
Thanks also to the folks at Prentice Hall who helped bring this book to life, espe-
cially Julie Nahil, Full-Service Production Manager, who oversaw production of
the book; John Fuller, Managing Editor, who kept the large view in check; Marie
McKinley, Marketing Manager; Noreen Regina, Editorial Assistant, who attended
to the many details involved in publishing this book, including keeping the review
team on schedule (no small task); Heather Fox, Publicist; Dan Scherf, Media
Developer; Sandra Schroeder, Design Manager; Chuti Prasertsith, Cover Designer;
and everyone else who worked behind the scenes to make this book come into
being.
I am also indebted to Denis Howe, Editor of The Free On-line Dictionary of Com-
puting (FOLDOC). Denis has graciously permitted me to use entries from his
compilation. Be sure to look at this dictionary (www.foldoc.org).
A big “thank you” to the folks who read through the drafts of the book and
made comments that caused me to refocus parts of the book where things were
not clear or were left out altogether: David Chisnall, Swansea University; Scott
Mann, Aztek Networks; Matthew Miller, Senior Systems Analyst/Administrator,
BU Linux Project, Boston University Office of Information Technology; George
xliv Preface
Vish II, Senior Education Consultant, Hewlett-Packard; Thomas Achtemichuk,
Mansueto Ventures; John Dong, Ubuntu Forum Council Member/Backports
Team Leader; Scott James Remnant, Ubuntu Development Manager and Desktop
Team Leader; Daniel R. Arfsten, Pro/Engineer Drafter/Designer; Chris Cooper,
Senior Education Consultant, Hewlett-Packard Education Services; Sameer
Verma, Associate Professor of Information Systems, San Francisco State Univer-
sity; Valerie Chau, Palomar College and Programmers Guild; James Kratzer; Sean
McAllister; Nathan Eckenrode, New York Ubuntu Local Community Team;
Christer Edwards; Nicolas Merline; and Michael Price.
Thanks also to the following people who helped with my previous Linux books,
which provided a foundation for this book: Chris Karr, Northwestern University;
Jesse Keating, Fedora Project; Carsten Pfeiffer, Software Engineer and KDE Devel-
oper; Aaron Weber, Ximian; Cristof Falk, Software Developer at CritterDesign;
Steve Elgersma, Computer Science Department, Princeton University; Scott Dier,
University of Minnesota; Robert Haskins, Computer Net Works; Lars Kellogg-
Stedman, Harvard University; Jim A. Lola, Principal Systems Consultant, Priva-
teer Systems; Eric S. Raymond, Cofounder, Open Source Initiative; Scott Mann;
Randall Lechlitner, Independent Computer Consultant; Jason Wertz, Computer
Science Instructor, Montgomery County Community College; Justin Howell, Solano
Community College; Ed Sawicki, The Accelerated Learning Center; David Mercer;
Jeffrey Bianchine, Advocate, Author, Journalist; John Kennedy; and Jim Dennis,
Starshine Technical Services.
Thanks also to Dustin Puryear, Puryear Information Technology; Gabor Liptak,
Independent Consultant; Bart Schaefer, Chief Technical Officer, iPost; Michael J.
Jordan, Web Developer, Linux Online; Steven Gibson, Owner, SuperAnt.com; John
Viega, Founder and Chief Scientist, Secure Software; K. Rachael Treu, Internet
Security Analyst, Global Crossing; Kara Pritchard, K & S Pritchard Enterprises;
Glen Wiley, Capital One Finances; Karel Baloun, Senior Software Engineer, Look-
smart; Matthew Whitworth; Dameon D. Welch-Abernathy, Nokia Systems; Josh
Simon, Consultant; Stan Isaacs; and Dr. Eric H. Herrin II, Vice President, Herrin
Software Development. And thanks to Doug Hughes, long-time system designer
and administrator, who gave me a big hand with the sections on system administra-
tion, networks, the Internet, and programming.
More thanks go to consultants Lorraine Callahan and Steve Wampler; Ronald
Hiller, Graburn Technology; Charles A. Plater, Wayne State University; Bob
Palowoda; Tom Bialaski, Sun Microsystems; Roger Hartmuller, TIS Labs at Net-
work Associates; Kaowen Liu; Andy Spitzer; Rik Schneider; Jesse St. Laurent; Steve
Bellenot; Ray W. Hiltbrand; Jennifer Witham; Gert-Jan Hagenaars; and Casper Dik.
A Practical Guide to Ubuntu Linux®
is based in part on two of my previous UNIX
books: UNIX System V: A Practical Guide and A Practical Guide to the UNIX Sys-
tem. Many people helped me with those books, and thanks here go to Pat Parseghian;
Dr. Kathleen Hemenway; Brian LaRose; Byron A. Jeff, Clark Atlanta University;
Charles Stross; Jeff Gitlin, Lucent Technologies; Kurt Hockenbury; Maury Bach, Intel
Thanks xlv
Israel; Peter H. Salus; Rahul Dave, University of Pennsylvania; Sean Walton, Intelligent
Algorithmic Solutions; Tim Segall, Computer Sciences Corporation; Behrouz Forouzan,
DeAnza College; Mike Keenan, Virginia Polytechnic Institute and State University;
Mike Johnson, Oregon State University; Jandelyn Plane, University of Maryland;
Arnold Robbins and Sathis Menon, Georgia Institute of Technology; Cliff Shaffer, Vir-
ginia Polytechnic Institute and State University; and Steven Stepanek, California State
University, Northridge, for reviewing the book.
I continue to be grateful to the many people who helped with the early editions of
my UNIX books. Special thanks are due to Roger Sippl, Laura King, and Roy
Harrington for introducing me to the UNIX system. My mother, Dr. Helen Sobell,
provided invaluable comments on the original manuscript at several junctures. Also,
thanks go to Isaac Rabinovitch, Professor Raphael Finkel, Professor Randolph
Bentson, Bob Greenberg, Professor Udo Pooch, Judy Ross, Dr. Robert Veroff,
Dr. Mike Denny, Joe DiMartino, Dr. John Mashey, Diane Schulz, Robert Jung, Charles
Whitaker, Don Cragun, Brian Dougherty, Dr. Robert Fish, Guy Harris, Ping Liao,
Gary Lindgren, Dr. Jarrett Rosenberg, Dr. Peter Smith, Bill Weber, Mike Bianchi,
Scooter Morris, Clarke Echols, Oliver Grillmeyer, Dr. David Korn, Dr. Scott
Weikart, and Dr. Richard Curtis.
Finally, thanks to Peter and his family for providing nourishment and a very com-
fortable place to work. I spent many hours reading the manuscript at JumpStart,
Peter’s neighborhood coffee and sandwich shop. If you are in the neighborhood
(24th & Guerrero in San Francisco), stop by and say “Hi.”
I take responsibility for any errors and omissions in this book. If you find one or
just have a comment, let me know (mgs@sobell.com) and I will fix it in the next
printing. My home page (www.sobell.com) contains a list of errors and credits those
who found them. It also offers copies of the longer scripts from the book and point-
ers to interesting Linux pages on the Internet.
Mark G. Sobell
San Francisco, California
This page intentionally left blank
1
1
1
Chapter1
The Linux kernel was developed by Finnish undergraduate
student Linus Torvalds, who used the Internet to make the
source code immediately available to others for free. Torvalds
released Linux version 0.01 in September 1991.
The new operating system came together through a lot of hard
work. Programmers around the world were quick to extend the
kernel and develop other tools, adding functionality to match
that already found in both BSD UNIX and System V UNIX
(SVR4) as well as new functionality.
The Linux operating system, which was developed through
the cooperation of many, many people around the world, is a
product of the Internet and is a free operating system. In other
words, all the source code is free. You are free to study it,
redistribute it, and modify it. As a result, the code is available
free of cost—no charge for the software, source, documenta-
tion, or support (via newsgroups, mailing lists, and other
In This Chapter
The GNU–Linux Connection . . . . . . . 2
The Linux 2.6 Kernel . . . . . . . . . . . . . 5
The Heritage of Linux: UNIX . . . . . . . 5
What Is So Good About Linux?. . . . . 6
Overview of Linux . . . . . . . . . . . . . . 10
Additional Features of Linux. . . . . . 15
Conventions Used in This Book . . . 17
1
Welcome to Linux
2 Chapter 1 Welcome to Linux
Internet resources). As the GNU Free Software Definition (reproduced in Appendix D)
puts it:
Free beer “Free software” is a matter of liberty, not price. To understand the
concept, you should think of “free” as in “free speech,” not as in
“free beer.”
The GNU–Linux Connection
An operating system is the low-level software that schedules tasks, allocates storage,
and handles the interfaces to peripheral hardware, such as printers, disk drives, the
screen, keyboard, and mouse. An operating system has two main parts: the kernel
and the system programs. The kernel allocates machine resources—including mem-
ory, disk space, and CPU (page 1031) cycles—to all other programs that run on the
computer. The system programs perform higher-level housekeeping tasks, often act-
ing as servers in a client/server relationship. Linux is the name of the kernel that
Linus Torvalds presented to the world in 1991 and that many others have worked
on since then to enhance, stabilize, expand, and make more secure.
The History of GNU–Linux
This section presents some background on the relationship between GNU and Linux.
Fade to 1983
Richard Stallman (www.stallman.org) announced1
the GNU Project for creating an
operating system, both kernel and system programs, and presented the GNU Mani-
festo,2
which begins as follows:
GNU, which stands for Gnu’s Not UNIX, is the name for the com-
plete UNIX-compatible software system which I am writing so that
I can give it away free to everyone who can use it.
Some years later, Stallman added a footnote to the preceding sentence when he realized
that it was creating confusion:
The wording here was careless. The intention was that nobody
would have to pay for *permission* to use the GNU system. But
the words don’t make this clear, and people often interpret them as
saying that copies of GNU should always be distributed at little or
no charge. That was never the intent; later on, the manifesto men-
tions the possibility of companies providing the service of distribu-
tion for a profit. Subsequently I have learned to distinguish
1. www.gnu.org/gnu/initial-announcement.html
2. www.gnu.org/gnu/manifesto.html
The GNU–Linux Connection 3
carefully between “free” in the sense of freedom and “free” in the
sense of price. Free software is software that users have the free-
dom to distribute and change. Some users may obtain copies at no
charge, while others pay to obtain copies—and if the funds help
support improving the software, so much the better. The important
thing is that everyone who has a copy has the freedom to cooperate
with others in using it.
In the manifesto, after explaining a little about the project and what has been
accomplished so far, Stallman continues:
Why I Must Write GNU
I consider that the golden rule requires that if I like a program I
must share it with other people who like it. Software sellers want
to divide the users and conquer them, making each user agree not
to share with others. I refuse to break solidarity with other users in
this way. I cannot in good conscience sign a nondisclosure agree-
ment or a software license agreement. For years I worked within
the Artificial Intelligence Lab to resist such tendencies and other
inhospitalities, but eventually they had gone too far: I could not
remain in an institution where such things are done for me against
my will.
So that I can continue to use computers without dishonor, I have
decided to put together a sufficient body of free software so that I
will be able to get along without any software that is not free. I
have resigned from the AI Lab to deny MIT any legal excuse to
prevent me from giving GNU away.
Next Scene, 1991
The GNU Project has moved well along toward its goal. Much of the GNU operat-
ing system, except for the kernel, is complete. Richard Stallman later writes:
By the early ’90s we had put together the whole system aside from
the kernel (and we were also working on a kernel, the GNU Hurd,3
which runs on top of Mach4
). Developing this kernel has been a lot
harder than we expected, and we are still working on finishing it.5
...[M]any believe that once Linus Torvalds finished writing the ker-
nel, his friends looked around for other free software, and for no
particular reason most everything necessary to make a UNIX-like
system was already available.
3. www.gnu.org/software/hurd/hurd.html
4. www.gnu.org/software/hurd/gnumach.html
5. www.gnu.org/software/hurd/hurd-and-linux.html
4 Chapter 1 Welcome to Linux
What they found was no accident—it was the GNU system. The
available free software6
added up to a complete system because the
GNU Project had been working since 1984 to make one. The GNU
Manifesto had set forth the goal of developing a free UNIX-like
system, called GNU. The Initial Announcement of the GNU
Project also outlines some of the original plans for the GNU sys-
tem. By the time Linux was written, the [GNU] system was almost
finished.7
Today the GNU “operating system” runs on top of the FreeBSD (www.freebsd.org)
and NetBSD (www.netbsd.org) kernels with complete Linux binary compatibility
and on top of Hurd pre-releases and Darwin (developer.apple.com/opensource)
without this compatibility.
The Code Is Free
The tradition of free software dates back to the days when UNIX was released to
universities at nominal cost, which contributed to its portability and success. This
tradition died as UNIX was commercialized and manufacturers regarded the source
code as proprietary, making it effectively unavailable. Another problem with the
commercial versions of UNIX related to their complexity. As each manufacturer
tuned UNIX for a specific architecture, it became less portable and too unwieldy for
teaching and experimentation.
MINIX Two professors created their own stripped-down UNIX look-alikes for educational
purposes: Doug Comer created XINU and Andrew Tanenbaum created MINIX.
Linus Torvalds created Linux to counteract the shortcomings in MINIX. Every time
there was a choice between code simplicity and efficiency/features, Tanenbaum
chose simplicity (to make it easy to teach with MINIX), which meant this system
lacked many features people wanted. Linux goes in the opposite direction.
You can obtain Linux at no cost over the Internet (page 37). You can also obtain
the GNU code via the U.S. mail at a modest cost for materials and shipping. You
can support the Free Software Foundation (www.fsf.org) by buying the same
(GNU) code in higher-priced packages, and you can buy commercial packaged
releases of Linux (called distributions), such as Ubuntu Linux, that include installa-
tion instructions, software, and support.
GPL Linux and GNU software are distributed under the terms of the GNU General Pub-
lic License (GPL, www.gnu.org/licenses/licenses.html). The GPL says you have the
right to copy, modify, and redistribute the code covered by the agreement. When
you redistribute the code, however, you must also distribute the same license with
the code, thereby making the code and the license inseparable. If you get source
code off the Internet for an accounting program that is under the GPL and then
6. See Appendix D or www.gnu.org/philosophy/free-sw.html.
7. www.gnu.org/gnu/linux-and-gnu.html
The Heritage of Linux: UNIX 5
modify that code and redistribute an executable version of the program, you must
also distribute the modified source code and the GPL agreement with it. Because
this arrangement is the reverse of the way a normal copyright works (it gives rights
instead of limiting them), it has been termed a copyleft. (This paragraph is not a
legal interpretation of the GPL; it is intended merely to give you an idea of how it
works. Refer to the GPL itself when you want to make use of it.)
Have Fun!
Two key words for Linux are “Have Fun!” These words pop up in prompts and doc-
umentation. The UNIX—now Linux—culture is steeped in humor that can be seen
throughout the system. For example, less is more—GNU has replaced the UNIX
paging utility named more with an improved utility named less. The utility to view
PostScript documents is named ghostscript, and one of several replacements for the vi
editor is named elvis. While machines with Intel processors have “Intel Inside” logos
on their outside, some Linux machines sport “Linux Inside” logos. And Torvalds
himself has been seen wearing a T-shirt bearing a “Linus Inside” logo.
The Linux 2.6 Kernel
The Linux 2.6 kernel was released on December 17, 2003. This kernel has many
features that offer increased security and speed. Some of these features benefit end
users directly; others help developers produce better code and find problems more
quickly. See Appendix E for a description of the features introduced in the Linux
2.6 kernel.
The Heritage of Linux: UNIX
The UNIX system was developed by researchers who needed a set of modern com-
puting tools to help them with their projects. The system allowed a group of people
working together on a project to share selected data and programs while keeping
other information private.
Universities and colleges played a major role in furthering the popularity of the
UNIX operating system through the “four-year effect.” When the UNIX operating
system became widely available in 1975, Bell Labs offered it to educational institu-
tions at nominal cost. The schools, in turn, used it in their computer science pro-
grams, ensuring that computer science students became familiar with it. Because
UNIX was such an advanced development system, the students became acclimated
to a sophisticated programming environment. As these students graduated and went
into industry, they expected to work in a similarly advanced environment. As more
of them worked their way up the ladder in the commercial world, the UNIX operat-
ing system found its way into industry.
6 Chapter 1 Welcome to Linux
In addition to introducing students to the UNIX operating system, the Computer
Systems Research Group (CSRG) at the University of California at Berkeley made
significant additions and changes to it. In fact, it made so many popular changes
that one version of the system is called the Berkeley Software Distribution (BSD) of
the UNIX system (or just Berkeley UNIX). The other major version is UNIX System
V (SVR4), which descended from versions developed and maintained by AT&T and
UNIX System Laboratories.
What Is So Good About Linux?
In recent years Linux has emerged as a powerful and innovative UNIX work-alike.
Its popularity is surpassing that of its UNIX predecessors. Although it mimics UNIX
in many ways, the Linux operating system departs from UNIX in several significant
ways: The Linux kernel is implemented independently of both BSD and System V,
the continuing development of Linux is taking place through the combined efforts of
many capable individuals throughout the world, and Linux puts the power of UNIX
within easy reach of both business and personal computer users. Using the Internet,
today’s skilled programmers submit additions and improvements to the operating
system to Linus Torvalds, GNU, or one of the other authors of Linux.
Applications A rich selection of applications is available for Linux—both free and commercial—
as well as a wide variety of tools: graphical, word processing, networking, security,
administration, Web server, and many others. Large software companies have
recently seen the benefit in supporting Linux and now have on-staff programmers
whose job it is to design and code the Linux kernel, GNU, KDE, or other software
that runs on Linux. For example, IBM (www.ibm.com/linux) is a major Linux sup-
porter. Linux conforms increasingly more closely to POSIX standards, and some
distributions and parts of others meet this standard. (See “Standards” on page 9.)
These developments indicate that Linux is becoming more mainstream and is
respected as an attractive alternative to other popular operating systems.
Peripherals Another aspect of Linux that appeals to users is the amazing range of peripherals that is
supported and the speed with which support for new peripherals emerges. Linux often
supports a peripheral or interface card before any company does. Unfortunately
some types of peripherals—particularly proprietary graphics cards—lag in their
support because the manufacturers do not release specifications or source code for
drivers in a timely manner, if at all.
Software Also important to users is the amount of software that is available—not just source
code (which needs to be compiled) but also prebuilt binaries that are easy to install
and ready to run. These include more than free software. Netscape, for example,
has been available for Linux from the start and included Java support before it was
available from many commercial vendors. Now its sibling Mozilla/Thunderbird/
Firefox is also a viable browser, mail client, and newsreader, performing many other
functions as well.
What Is So Good About Linux? 7
Platforms Linux is not just for Intel-based platforms: It has been ported to and runs on the Power
PC—including Apple computers (ppclinux), Compaq’s (née Digital Equipment Corpo-
ration) Alpha-based machines, MIPS-based machines, Motorola’s 68K-based machines,
various 64-bit systems, and IBM’s S/390. Nor is Linux just for single-processor
machines: As of version 2.0, it runs on multiple-processor machines (SMPs). It also
includes an O(1) scheduler, which dramatically increases scalability on SMP systems.
Emulators Linux supports programs, called emulators, that run code intended for other operat-
ing systems. By using emulators you can run some DOS, Windows, and Macintosh
programs under Linux. For example, Wine (www.winehq.com) is an open-source
implementation of the Windows API on top of the X Window System and
UNIX/Linux; QEMU (fabrice.bellard.free.fr/qemu) is a CPU-only emulator that
executes x86 Linux binaries on non-x86 Linux systems.
Xen Xen, which was created at the University of Cambridge and is now being developed
in the open-source community, is an open-source virtual machine monitor (VMM). A
VMM enables several virtual machines (VMs), each running an instance of a separate
operating system, to run on a single computer. Xen isolates the VMs so that if one
crashes it does not affect the others. In addition, Xen introduces minimal performance
overhead when compared with running each of the operating systems natively.
Using VMs, you can experiment with cutting-edge releases of operating systems and
applications without concern for the base (stable) system, all on a single machine.
You can also set up and test networks of systems on a single machine. Xen presents
a sandbox, an area (system) that you can work in without regard for the results of
your work or for the need to clean up.
The Gutsy release of Ubuntu supports Xen 3.1. This book does not cover the
installation or use of Xen. See help.ubuntu.com/community/Xen for information
on running Xen under Ubuntu.
For more information on Xen, refer to the wiki at wiki.xensource.com/xenwiki and
the Xen home page at www.cl.cam.ac.uk/research/srg/netos/xen.
KVM and VirtualBox If you want to run a virtual instance of Windows, you may want to investigate
KVM (Kernel Virtual Machine, help.ubuntu.com/community/KVM) and VirtualBox
(www.virtualbox.org).
Why Linux Is Popular with Hardware Companies
and Developers
Two trends in the computer industry set the stage for the growing popularity of
UNIX and Linux. First, advances in hardware technology created the need for an
operating system that could take advantage of available hardware power. In the
mid-1970s, minicomputers began challenging the large mainframe computers
because, in many applications, minicomputers could perform the same functions
less expensively. More recently, powerful 64-bit processor chips, plentiful and inex-
pensive memory, and lower-priced hard disk storage have allowed hardware com-
panies to install multiuser operating systems on desktop computers.
8 Chapter 1 Welcome to Linux
Proprietary
operating systems
Second, with the cost of hardware continually dropping, hardware manufacturers
could no longer afford to develop and support proprietary operating systems. A
proprietary operating system is one that is written and owned by the manufacturer
of the hardware (for example, DEC/Compaq owns VMS). Today’s manufacturers
need a generic operating system that they can easily adapt to their machines.
Generic operating
systems
A generic operating system is written outside of the company manufacturing the
hardware and is sold (UNIX, Windows) or given (Linux) to the manufacturer.
Linux is a generic operating system because it runs on different types of hardware
produced by different manufacturers. Of course, if manufacturers can pay only for
development and avoid per-unit costs (as they have to pay to Microsoft for each
copy of Windows they sell), manufacturers are much better off. In turn, software
developers need to keep the prices of their products down; they cannot afford to
convert their products to run under many different proprietary operating systems.
Like hardware manufacturers, software developers need a generic operating system.
Although the UNIX system once met the needs of hardware companies and
researchers for a generic operating system, over time it has become more propri-
etary as manufacturers added support for their own specialized features and intro-
duced new software libraries and utilities.
Linux emerged to serve both needs: It is a generic operating system that takes
advantage of available hardware power.
Linux Is Portable
A portable operating system is one that can run on many different machines. More
than 95 percent of the Linux operating system is written in the C programming lan-
guage, and C is portable because it is written in a higher-level, machine-independent
language. (The C compiler is written in C.)
Because Linux is portable, it can be adapted (ported) to different machines and can
meet special requirements. For example, Linux is used in embedded computers,
such as the ones found in cellphones, PDAs, and the cable boxes on top of many
TVs. The file structure takes full advantage of large, fast hard disks. Equally impor-
tant, Linux was originally designed as a multiuser operating system—it was not
modified to serve several users as an afterthought. Sharing the computer’s power
among many users and giving them the ability to share data and programs are cen-
tral features of the system.
Because it is adaptable and takes advantage of available hardware, Linux runs on
many different microprocessor-based systems as well as mainframes. The popularity
of the microprocessor-based hardware drives Linux; these microcomputers are get-
ting faster all the time, at about the same price point. Linux on a fast microcom-
puter has become good enough to displace workstations on many desktops. Linux
benefits both users, who do not like having to learn a new operating system for each
vendor’s hardware, and system administrators, who like having a consistent soft-
ware environment.
Another Random Scribd Document
with Unrelated Content
rolls and coffee, remained untouched. He suddenly stood up and
said:
"Aunt Seréna!"
"What is it, my boy?"
"I want to go!"
Aunt Seréna threw back her head, that she might give him a good
look through her spectacles. Her face took on a very grieved
expression.
At last, after a long pause, she asked, in her gentle voice, "What do
you mean?"
"I want to go away. I cannot stand it. I want to be with my friend."
"Do you think he will take better care of you than I do, Johannes?"
"I do not believe that, Aunt Seréna, but he is being treated unfairly.
He is in the right."
"I will not take it upon myself...." said Aunt Seréna, hesitating, "to
say that he is wrong. I am not clever enough for that. I am only an
old woman, and have not studied much, although I have thought
and experienced a great deal. I will readily admit that perhaps I was
at fault without knowing it. I did my best, to the best of my belief.
But how many there are, better than I am, Johannes, who think
your friend in the wrong!"
"Are they also better than he is?" asked Johannes.
"Who can say? How long have you known this friend—and whom of
the people have you known besides? But although your friend were
right, how would it help me, and what would it matter to me? Must
I, in my sixty-fourth year, give away all that I have, and go out
house-cleaning? Do you mean that I ought to do that, Johannes?"
Johannes was perplexed. "I do not say that, dear Aunt Seréna."
"But, what do you say, then? And what do you want of me?"
Johannes was silent.
"You see, Johannes...." continued Aunt Seréna, with a break in her
voice—not looking at him now, but staring hard at her coffee-tray
—"I never have had any children, and all the people whom I have
been very fond of are either dead or gone away. My friends do,
indeed, show me much cordiality. On my birthday I had forty-four
calls, two hundred and eleven cards and notes, and about fifty
presents; but that, however, is not for me true life. The life of the old
is so barren if no young are growing near. I have not complained
about it, and have submitted to God's will. But since ... for a few
months ... you ... I thought it a blessing—a dispensation from
God...."
Aunt Seréna's voice grew so broken and hoarse that she stopped
speaking, and began to rummage in her work-basket.
Johannes felt very tenderly toward her, but it seemed to him as if, in
two seconds, he had become much older and wiser; yes, as if he
had even grown, visibly, and was taller than a moment before. Never
yet had he spoken with such dignity.
"My dear Aunt, I really am not ungrateful. I think you are good.
More than almost any other you have been kind to me. But yet I
must go. My conscience tells me so. I would be willing to stay, you
see; but still I am going because it is best. If you say, 'You must
not,' then I cannot help it; I think, though, that I will quietly run
away. I am truly sorry to cause you sadness, but you will soon hear
of an—another boy, or a girl, who will make you happier. I must find
my friend—my conscience tells me so. Are you going to say, Aunt
Seréna, that I must not?"
Aunt Seréna had taken out her worsted work, and appeared to be
comparing colors. Then, very slowly, she replied:
"No, I shall not say that, my dear boy; at least, if you have thought
it all over well."
"I have, Aunt Seréna," said Johannes.
Being deeply anxious, he wished to go instantly to learn where
Markus had been taken. After that he would return to "Vrede-best."
He mounted the stone steps of the police station with dread and
distaste. The officers, who were sitting outside on chairs, received
him, according to their wont, with scant courtesy. The chief eyed
Johannes, after the latter's bashful inquiry, with a scornful
expression, which seemed to say: "What business is it of yours, and
where have I seen you before?"
Johannes learned, however, that "the prisoner" had been set free.
What use he had made of his freedom Johannes must find out for
himself.
As he could give no other reason for his interest in the prisoner than
that he was his friend, and as this reason was not enough to exalt
him in the esteem of police authority, none of the functionaries felt
called upon to put him on the track. They supposed that the
scissors-grinder had very likely gone back to the Fair. That was all
the help they gave.
Johannes returned to his aunt's baffled and in dismay. There,
happily, he found relief; for the good aunt had already discovered
that Markus had been led out of the town, and that, with his cart, he
had taken the road to Utrecht. Already, lying in plain sight, he saw a
large, old-fashioned satchel of hairy leather (a sort of bag which
could be hung about one), full of neatly packed sandwiches and
hard-boiled eggs. And in the inside of a waistcoat Aunt Seréna had
sewed a small pocket. Within that pocket was a purse containing five
little gold-pieces.
"I do not give you more, Johannes, for by the time this is gone you
will surely know if you really wish to stay away for good or to come
back again. Do not be ashamed to return. I will not say anything to
you about it."
"I will be honest, and give it back to you when I have earned it,"
said Johannes. He spoke in sober earnest; but he had, no more than
had his aunt, any clear expectation that it would be possible.
Johannes took just a run into the garden to say good-by to his
favorite places—his paths and his flowers. Swiftly and shyly, so as
not to be seen, he ran past the kitchen where Daatje, loudly singing
hymns the while, stood chopping spinach. After that, he embraced
Aunt Seréna in the vestibule for the first and for the last time.
"Cuckoo! Cuckoo!" came insultingly and triumphantly from the little
trap-door, as the clock struck two. Then the stately green front door
closed between him and Aunt Seréna.
That was a painful moment; yet there quickly followed in Johannes'
heart a delightful glow—a feeling of freedom such as he had never
yet known. He almost felt himself a man. He had extricated himself
from soft and perilous ways; he was going out into the wide world;
he would find his beloved brother again; he had a bagful of rolls,
and in his waistcoat were five gold-pieces. These last were only lent
to him; he would earn as much, and give them back again.
It was a still, humid, August day, and Johannes, full of gladness, saw
his beautiful native land lying in white light under a canopy of
delicate grey. He saw thickly wooded dikes, black and white cattle,
and brown boats in water without a ripple. He walked briskly,
inquiring everywhere for Markus the scissors-grinder. In front of an
inn, not far from the city, sat three little gentlemen. They were
apparently government or post-office clerks, who had taken their
midday stroll and their glass of bitters.
Johannes asked information of the waiter who brought drinks, but
received no answer.
One of the little dandies, who had heard his question, said to his
companions:
"Jerusalem! but did you chaps hear that kicker? The fellow went into
the new church yesterday morning, and talked back at the dominie."
"What fellow?" asked the others.
"Good Lord! Don't you know him? That half-luny fellow with the
black curly-pate? He does that now and then."
"Gee! That's rich. And what did the dominie say?"
"Well, he found it no joke, for the fellow knew all about it—as
darned well as he did himself. But the gypsy had his trouble for his
pains; for that time the dominie wouldn't have anything to do with
such a dirty competitor!"
And the three friends laughed at the top of their voices.
"How did it end?"
"He had him walked clean out of the church, by the sexton and two
cops."
"That's confounded silly. 'Twould have been better to see who could
crow the loudest. It's the loudest cock that wins."
"The idea! You'd have me believe you mean it? Suppose they gave
the prize to the wrong fellow?"
"Whether you are cheated by a fool of a preacher, or by a scissors-
grinder, what's the difference?"
Johannes reflected a moment and wondered if it would not be
commendable to do what he ached to do—fly at these people and
rain blows upon their heads. But he controlled himself and passed
on, convinced that in doing so he was escaping some hard work.
For five hours he walked on without being much the wiser for his
inquiries. Some people thought they had seen Markus; others knew
positively nothing about him.
Johannes began to fear he had passed him; for by this time he
ought to have overtaken him.
It began to grow dark, and before him lay a wide river which he
must cross by means of a ferry-boat. On the farther side were hills
covered with an underwood of oak, and tall, purple-flowered
heather.
The ferryman was positive that he had not that day taken over a
scissors-grinder; but in yonder town, an hour's distance from the
river, a Fair was to begin in the morning. Very likely Markus also
would be there.
Johannes sat down by the roadside in the midst of the dark broom,
with its millions of small purple flowers. The setting sun cast a
glorious coloring over land and mist, and over the lustrous, flowing
water. He was tired but not depressed, and he ate his bread
contentedly, certain that he should find Markus. The road had
become quiet and lonely. It was fun to be so free—so alone and
independent—at home in the open country. Rather than anywhere
else he should like to sleep out-of-doors—in the underwood.
But just as he was about to lay himself down, he saw the figure of a
man with his hands in his pockets, and his cap pushed back.
Johannes sat up, and waited until he came closer. Then he
recognized him.
"Good evening, Director!" said Johannes.
"Good evening to you, my friend!" returned the other. "What are you
doing here? Are you lost?"
"No; I am looking for friends. Is Markus with you?"
The man was the director of a Flea-Theatre; a little fellow, with a
husky voice, and eyes inflamed by his fine work.
"Markus? I'm not sure. But come along—there's no knowing but he
might be there."
"Are you looking for new apprentices?" asked Johannes.
"Do you happen to have any? They're worth a pretty penny, you
know!"
They walked together to the camp of gypsy wagons, near the town.
Johannes found there all the old acquaintances. There was the fat
lady, who could rest a plate upon her bosom and thus eat out of it.
Now, however, she was eating simply from a box, like the others,
because there were no spectators. There were the mother and
daughter who represented the living mermaid, taking turns because
one could not hold out very long. There was the exhibitor of the
collection of curiosities —a poor, humpbacked knave whose entire
possessions consisted of a stuffed alligator, a walrus-tooth, and a
seven-months baby preserved in alcohol. There were the two wild
men, who, growling horribly, could eat grass and live rabbits, and
who might come out of the wagon only at night, when the street
boys were away; but who, far from savage now, were sitting in the
light of a flickering lantern, "shaving" one another with exceedingly
dirty cards.
The flea-tamer brought Johannes at last to Marjon's wagon.
"Bless me!" cried Lorum, who seemed to be in a good humor as he
sat by the road smoking his pipe. "Here is our runaway young
gentleman again! Now the girls will be glad!"
From behind the wagon came the soft tones of a voice, singing to a
zither accompaniment. Johannes could hear the song distinctly, in
the dreamlike stillness of the hour. It was sung in a whining,
melancholy, street-organ style, but with unusual emotion:
"They have broken my heart—
Ah, the tears I have shed!
They have torn us apart—
His dear voice is now dead.
Alas! Alas!
How could you forsake me?
Alas! Alas!
How you have deceived me!"
It was a ditty that Johannes thought he had often heard the nurse-
maids sing. But, because he recognized that dear voice, and perhaps
even because he was worried over the applicability to himself, he
was greatly touched by it.
"Hey, there!" cried Lorum to one behind him. "The kid has come
back! Stop your squalling!"
Then Marjon appeared from behind the wagon, and ran up to
Johannes. Also, the door of the wagon flew back, and Johannes saw
Marjon's sister standing in the bright opening. Her fat arms were
bare, and she was in her night-gown.
XI
Since that first night in the dunes with Windekind, Johannes had
slept many a time in the open air, and he did not see why he should
not now do so. He would lie down under the wagon, upon some hay.
He was tired, and so would sleep well.
But sleep did not come to him very promptly. Adventures in the
world of people proved to be even more exciting than those in
Windekind's land of elves. He was full of the important and unusual
situation in which he was placed; the strange human life that
surrounded him claimed his attention. Above him, feet were shuffling
over the wagon floor, and he could see the people crawling around
one another inside the warm, dirty wagons. He was obliged to listen
to the talking, singing, laughing and quarreling that frequently broke
out here and there. A solitary ocarina continued to whistle awhile;
then all was still.
It grew cold. He had with him only a thin cloak of Aunt Seréna's;
and, as a horse-blanket could not be spared, he found a couple of
empty oat-bags; but they were too short.
When all were asleep, and he was still lying awake, shivering, his
spirits already inclined to droop, he heard the door of the wagon
open. A voice called him, in a whisper. Johannes scrambled out into
sight, and recognized Marjon's dark sister.
"Why don't you come in here, Kiddie?" she asked.
The truth was that Johannes, above all else, feared the closeness
and the fleas. But he would not offer these insulting reasons, so he
replied—intending to be very courteous and praiseworthy: "But that
would not do for me—to be with you!"
Now, formality is not a very strong point in a house-wagon. In the
very stateliest, a curtain does indeed sometimes define two sleeping-
rooms at night, thus denoting regard for the proprieties. But in most
cases the custom is to do as do the birds which change their suits
but once a year, and not too much, at that; and as do the mice
which also have no separate bedrooms.
"Aw! Come, Boy! You're silly. Just come on! It's all right."
And when Johannes, perplexed and very bashful, hesitated, he felt a
fat, heavy arm around his neck, and a soft, broad, cold mouth upon
his cheek.
"Come on, Youngster! Don't be afraid. Surely you are not so green!
Hey? It's time for me to make you wiser."
Now there was nothing Johannes had learned more to value than
wisdom, and he never willingly neglected a chance of becoming
wiser. But this time there came to him a very clear idea of the
existence of an undesirable wisdom.
He had no time to deliberate over this wonderful discovery; for,
happily, there came to the help of his immature thoughts a very
strong feeling of aversion, so that for once he knew betimes what he
ought to do.
He said loudly, and firmly: "I will not! I rest better here." And he
crept back under the wagon. The swarthy jade appeared not to like
that, for she uttered an oath as she turned away, and said: "Clear
out, then!" Johannes did not take it greatly to heart, although it did
appear to him unfair. He slept, however, no more than before; and
the sensation of the recent touches, and the wretched odor of poor
perfumery which the woman had brought with her, remained with
him, to his distress.
As soon as it began to grow light, the door of the wagon was again
opened. Johannes, surprised, looked up. Marjon came softly out in
her bare feet, with an old purple shawl thrown over her thin little
shoulders. She went up to Johannes and sat down on the ground
beside him.
"What did she do?" she asked, in a whisper.
"Who?" asked Johannes, in return. But that was from
embarrassment, for he well knew whom she meant.
"Now, you know well enough. Did you think I was sleeping? Did she
give you a kiss?"
Johannes nodded.
"Where? On your mouth?"
"No. On my cheek."
"Thank God!" said Marjon. "You will not let her do it again? She is a
common thing!"
"I could not help it," said Johannes.
Marjon looked at him thoughtfully a few moments, with her clear,
light grey eyes.
"Do you dare steal?" she asked then, abruptly.
"No," said Johannes. "I dare to, but it's wrong."
"Indeed it isn't!" said Marjon, very emphatically. "Indeed, it is not!
It's only a question of who from. Stealing from one another is mean,
but from the public is allowable. I must not steal from that woman
any more than from Lorum. But you may steal from the huzzy, if you
only dared."
"Then can you steal from me, too?" asked Johannes. Marjon looked
at him in sudden surprise, and gave a pretty laugh, showing her
white, even teeth.
"A while ago I could, but not now. Now you belong to me. But that
woman has a lot of money and you have not."
"I have some money, too—fifty guldens. Aunt Seréna gave it to me."
Marjon drew in the air with her lips as if sipping something delicious.
Her pale face shone with pleasure.
"Five little golden Teners! Is it truly so? But, Johannes, then we are
well off! We'll have a good time with them. Shan't we?"
"To be sure," assented Johannes, recovering himself. "But I want to
find Markus."
"That's good," said Marjon. "That's the best thing to do. We'll both
go looking for him."
"Right away?" asked Johannes.
"No, you stupid! We should be nabbed in no time. We'll start in the
evening. Then, during the night, we can get a good way off. I'll give
you the signal."
It was morning—clear and cool, yet growing warmer with the early
August sunshine. Everywhere over the dark heather the dew-
covered cobwebs were shining like clusters of sparkling stars. The
fires of the foregoing evening were still smouldering in the camp;
and there was a smell of wood coals and of honey.
Johannes was well pleased. There was a glowing little flame also
within himself. He felt that it was good to be alive, and a joy to
strive. It was a long, strange day, but he was patient and happy in
the thought of fleeing with Marjon. The dark woman was friendly
toward him again. He was helping her in the circus the entire day,
and had no chance to speak with Marjon. But now and then they
gave each other a look full of complete understanding. That was
delightful! Never before in his every-day life had Johannes
experienced anything so delightful.
That evening there was an exhibition, and Marjon performed her
tricks. Johannes felt very proud and important because he belonged
to the troupe, and was looked upon by the public as an athlete or an
equestrian. He might stand, in topboots and with a whip, at the
entrance to the stall, but he must not perform a single trick, nor
once crack his whip.
When it was good and dark, and everybody was asleep again,
Marjon came to summon him. He could scarcely distinguish her
figure; but he knew by a soft, grunting sound, that she carried Kees,
her monkey, on her arm. She thrust her guitar into Johannes' hand,
and said in a low tone: "Move on, now!"
They set out hastily and in silence, Marjon taking the lead. First they
went by the highway; then they took a footpath along the river; and
then, at a ferry, they softly unfastened a small boat, and pushed out
into the current.
"Keep your wits about you, Jo, and be on the lookout!"
"We shall be overtaken," said Johannes, not quite at his ease.
"Are you afraid?"
"No, not afraid," said Johannes, although the truth was that he was
trying not to be; "but where are we going to bring up? And how can
we keep out of the way if a boat should come along? We have no
oars!"
"I wish a boat would come. Then we'd go on with it."
"Where do you want to go, Marjon?"
"Well, over the frontier, of course. Otherwise they'll catch us.
"But Markus!"
"We'll find him, by and by—only come on now."
In silence the two children drifted out over the still, black water,
which here and there bubbled past a floating log, or a barrel.
Everything was mysterious. It was pitch dark, and there was no
wind. The reeds, even, scarcely sighed. Keesje whined,
complainingly, not liking the cold.
"But who is Markus, Marjon? Do you know?"
"You must not ask that, Jo. You must trust him. I do."
Then they heard a dull, fitfully throbbing sound that slowly drew
nearer from the distance, and Johannes saw red and white lanterns
ahead of them.
"A steamboat!" he cried. "What are we going to do now?"
"Sing!" said Marjon, without a moment's hesitation.
The boat came very gradually, and Johannes saw in the rear of her a
long file of little lights, like a train of twinkling stars. It was a steam-
tug with a heavy draught of Rhine-boats. It seemed to be panting
and toiling with its burden, against the powerful current.
They stayed a boat's length away from the tug, but its long,
unwieldy train—swinging out in a great curve at the rear—came
nearer and nearer.
Marjon took her guitar and began to sing, and suddenly, with the
sound of lapping water and throbbing engines, the music was
ringing out in the still night—exquisite and clear. She sang a well-
known German air, but with the following words:
"Tho' on dark depths of waters
I fear not and am strong,
For I know who will guard me
And guide me all life long."
"Are you tipsy, there, or tired of life? What do you put yourself
across the channel for—and without a light?" rang out over the
water from one of the vessels.
"Help! Throw a line!" cried Marjon.
"Help! help!" cried Johannes, after her.
Then a rope came wabbling across their oarless craft. By good luck
Johannes caught it, and pulled himself, hand over hand, up to the
vessel. The helmsman, standing beside the great, high-arched
rudder, looked overboard, with a lantern in his hand.
"What wedding do you hail from?"
Johannes and Marjon climbed into the boat and Marjon pushed off
their own little shallop.
"Two boys!" exclaimed the helmsman.
"And a monkey!" subjoined Marjon.
Johannes looked round at her. By the light of the lantern he saw a
little figure that he hardly recognized—a slip of a boy wearing a cap
on his closely cropped head. She had sacrificed for the flight her
silky blonde hair. Keesje's head was sticking up out of her jacket,
and he was blinking briskly in the glare of the lantern.
"Oh, that's it! Fair-folk!" grumbled the skipper. "What's to become of
that boat?"
"It knows the way home!" said Marjon.
XII
I will simply tell you, without delay, in order that you may be able to
read what follows in peace of mind, that Johannes and Marjon
became husband and wife ere the ending of the story. But at the
time the old skipper pointed out to them a comfortable sleeping-
corner in the deck-house of the long Rhine-boat, they had not the
least idea of it. Being very tired, they were soon lying, like two
brothers, in deep sleep, with Keesje, now warm and contented,
between them.
When it grew light, the whole world seemed to have vanished.
Johannes had been wakened by the rattling of the anchor-chains,
and when he looked out, he saw on all sides nothing but white,
foggy light; no sky, no shore—only, just under the little windows, the
yellow river current. But he heard the striking of the town clocks,
and even the crowing of cocks. Therefore the world was still there,
as fine as ever, only hidden away under a thick white veil.
The boats lay still, for they could not be navigated. So long as the
waters of the Rhine could not be seen frothing about the anchor-
chains, so long must they wait for a chance to know the points of
the compass. Thus they remained for hours in the still, thick white
light, listening to the muffled sounds of the town coming from the
shore.
The two children ran back and forth over the long, long vessel, and
had a fine time. They had already become good friends of the
skipper, especially since he had learned that they could pay for their
passage. They ate their bread and sausage, peering into the fog in
suspense, for fear that Lorum and the dark woman might be coming
in a boat to overtake them. They knew that they could not yet be
very far away from their last camping-place.
At last the mists grew thinner and thinner, and fled from before the
shining face of the sun; and, although the earth still remained
hidden beneath swirling white, up above began to appear the
glorious blue.
And this was the beginning of a fine day for Johannes.
Sighing and groaning, as if with great reluctance, the tugboat began
again its toilful course up the stream. The still, summer day was
warm, the wide expanse of water sparkled in the sun, and on both
sides the shores were gliding gently by—their grey-green reeds, and
willows and poplars, all fresh and dewy, peeping through the fog.
Johannes lay on the deck, gazing at land and water, while Marjon sat
beside him. Keesje amused himself with the tackle rope, chuckling
with satisfaction every now and then, as he sprang back and forth,
with a serious look, after a flitting bird or insect.
"Marjon," said Johannes, "how did you know so certainly yesterday
that there was nothing to be afraid of?"
"Some one watches over me," said Marjon.
"Who?" asked Johannes.
"Father."
Johannes looked at her, and asked, softly:
"Do you mean your own father?"
But Marjon made a slight movement of her head toward the green
earth, the flowing water, the blue sky and the sunshine, and said,
with peculiar significance, as if now it was quite clear to her:
"No! I mean The Father."
"The Father Markus speaks about?"
"Yes. Of course," said Marjon.
Johannes was silent a while, gazing at the rapid flow of the water,
and the slower and slower course of things according to their
distance in the rear. His head was full of ideas, each one eager for
utterance. But it is delightful to lie thus and view a passing country
spread out under the clear light—letting the thoughts come very
calmly, and selecting carefully those worthy of being clad in speech.
Many are too tender and sensitive to be accorded that honor, but yet
they may not be meanest ones.
Johannes first selected a stray thought.
"Is that your own idea?" he asked. Marjon was not quick with an
answer, herself, this time.
"My own? No. Markus told me it. But I knew it myself, though. I
knew it, but he said it. He drew it out of me. I remember everything
he says—everything—even although I don't catch on."
"Is there any good in that?" asked Johannes, thoughtlessly.
Marjon looked at him disdainfully, and said:
"Jimminy! You're just like Kees. He doesn't know either that he can
do more with a quarter than with a cent. When I got my first
quarter, I didn't catch on, either, but then I noticed that I could get a
lot more candy with it than with a cent. Then I knew better what to
do. So now I treasure the things Markus has said—all of them."
"Do you think as much of him as I do?" asked Johannes.
"More," said Marjon.
"That cannot be."
Then there was another long pause. The boat was not in a hurry,
neither was the sun, and the broad stream made even less haste.
And so the children, as well, took plenty of time in their talking.
"Yes, but you see," Johannes began again, "when people speak of
our Father, they mean God, and God is...."
What was it again, that Windekind had said about God? The thought
came to him, and clothed in the old terms. But Johannes hesitated.
The terms were surely not attractive.
"What is God, now?" asked Marjon.
The old jargon must be used. There was nothing better.
"... An oil-lamp, where the flies stick fast."
Marjon whistled—a shrill whistle of authority—a circus-command.
Keesje, who was sitting on the foremast, thoughtfully inspecting his
outstretched hind foot, started up at once, and came sliding down
the steel cable, in dutiful haste.
"Here, Kees! Attention!"
Kees grumbled assent, and was instantly on the alert, for he was
well drilled. His sharp little brown eyes scarcely strayed for one
second away from the face of his mistress.
"The young gentleman here says he knows what God is. Do you
know?"
Keesje shook his head quickly, showing all his sharp little white teeth
in a grin. One would have said he was laughing, but his small eyes
peered as seriously as ever from Marjon's mouth to her hand. There
was nothing to laugh at. He must pay attention. That was clear.
Goodies were bound to follow—or blows.
But Marjon laughed loudly.
"Here, Kees! Good Kees!"
And then he had the dainties, and soon was up on the mast,
smacking aloud as he feasted.
The result of this affront was quite unexpected to Marjon. Johannes,
who had been lying prone on the deck, with his chin in his hands,
gazed sadly for a while at the horizon, and then hid his face in his
folded arms, his body shaking with sobs.
"Stop now, Jo; you're silly! Cry for that!" said Marjon, half
frightened, trying to pull his arms away from his face. But Johannes
shook his head.
"Hush! Let me think," said he.
Marjon gave him about a quarter of an hour, and then she spoke,
gently and kindly, as if to comfort him:
"I know what you wanted to say, dear Jo. That's the reason, too,
why I always speak of The Father. I understand that the best;
because, you see, I never knew my earthly father, but he must have
been much better than other fathers."
"Why?" asked Johannes.
"Because I am much better than all those people round about me,
and better than that common, dark woman who had another father."
Marjon said this quite simply, thinking it to be so. She said it in a
modest manner, while feeling that it was something which ought to
be spoken.
"Not that I have been so very good. Oh, no! But yet I have been
better than the others, and that was because of the father; for my
mother, too, was only a member of a troupe. And now it is so lovely
that I can say 'Father' just as Markus does!"
Johannes looked at her, with the sadness still in his eyes.
"Yes, but all the meanness, the ugliness, and the sorrow that our
Father permits! First, He launches us into the world, helpless and
ignorant, without telling us anything. And then, when we do wrong
because we know no better, we are punished, Is that fatherly?"
But Marjon said:
"Did you fancy it was not? Kees gets punished, too, so he will learn.
And now that he is clever and well taught he gets hardly any blows
—only tid-bits. Isn't that so, Kees?"
"But, Marjon, did you not tell me how you found Kees—shy, thin,
and mangy—his coat all spoiled with hunger and beatings; and how
he has remained timid ever since, because a couple of rascally boys
had mistreated him?"
Marjon nodded, and said:
"There are rascals, and deucedly wicked boys, and very likely there
is a Devil, also; but I am my Father's child and not afraid of Him, nor
what He may do with me."
"But if He makes you ill, and lets you be ill-treated? If He lets you do
wrong, and then leaves you to cry about it? And if He makes you
foolish?"
Keesje was coming down from the mast, very softly and deliberately.
With his black, dirty little hands he cautiously and hesitatingly
touched the boy's clothes that Marjon was wearing. He wanted to go
to sleep, and had been used to a soft lap. But his mistress took him
up, and hid him in her jacket. Then he yawned contentedly, like a
little old man, and closed his pale eyelids in sleep—his little face
looking very pious with its eyebrows raised in a saintly arch. Marjon
said:
"If I should go and ill-treat Keesje, he would make a great fuss
about it, but still he would stay with me."
"Yes; but he would do the same with a common tramp," said
Johannes.
Marjon shook her head, doubtfully.
"Kees is rather stupid—much more so than you or I, but yet not
altogether stupid. He well knows who means to treat him rightly. He
knows well that I do not ill-treat him for my own pleasure. And you
see, Jo, I know certainly, ever so certainly—that my Father will not
ill-treat me without a reason."
Johannes pressed her hand, and asked passionately:
"How do you know that? How do you know?"
Marjon smiled, and gave him a gentle look.
"Exactly as I know you to be a good boy—one who does not lie. I
can tell that about you in various ways I could not explain—by one
thing and another. So, too, I can see that my Father means well by
me. By the flowers, the clouds, the sparkling water. Sometimes it
makes me cry—it is so plain."
Then Johannes remembered how he had once been taught to pray,
and his troubled thoughts grew calmer. Yet he could not refrain from
asking—because he had been so much with Pluizer:
"Why might not that be a cheat?"
Suddenly Keesje waked up and looked behind him at Johannes, in a
frightened way.
"Ah, there you are!" exclaimed Marjon, impatiently. "That's exactly
as if you asked why the summer might not perchance be the winter.
You can ask that, any time. I know my Father just for the very
reason that He does not deceive. If Markus was only here he would
give it to you!"
"Yes, if he was only here!" repeated Johannes, not appearing to be
afraid of what Markus might do to him.
Then in a milder way, Marjon proceeded:
"Do you know what Markus says, Jo? When the Devil stands before
God, his heart is pierced by genuine trust."
"Should I trust the Devil, then?" asked Johannes.
"Well, no! How could that be? Nobody can do that. You must trust
the Father alone. But even if you are so unlucky as to see the Devil
before you see the Father, that makes no difference, for he has no
chance against sincere trust. That upsets his plans, and at the same
time pleases the Father."
"Oh, Marjon! Marjon!" said Johannes, clasping his hands together in
his deep emotion. She smiled brightly and said:
"Now you see that was a quarter out of my savings-box!"
Really, it was a very happy day for Johannes. He saw great, white,
piled-up clouds, tall trees in the light of the rising sun, still houses on
the river-banks, and the rushing stream—with violet and gold
sparkling in the broad bends—ever flowing through a fruitful,
verdant country; and over all, the deep, deep blue—and he
whispered: "Father—Father!" In an instant, he suddenly
comprehended all the things he saw as splendid, glorious Thoughts
of the Father, which had always been his to observe, but only now to
be wholly understood. The Father said all this to him, as a solemn
admonition that He it was—pure and true, eternally guarding, ever
waiting and accessible, behind the unlovely and the deceitful.
"Will you always stay with me, Marjon?" he asked earnestly.
"Yes, Jo, that I will. And you with me?"
Then Little Johannes intrepidly gave his promise, as if he really knew
what the future held for him, and as if he had power over his entire
unknown existence.
"Yes, dear Marjon, I will never leave you again. I promise you. We
remain together, but as friends. Do you agree? No foolishness!"
"Very well, Jo. As you like," said Marjon. After that they were very
still.
XIII
It was evening, and they were nearing Germany. The dwellings on
the river-banks no longer looked fresh and bright colored, but faded
and dirty. Then they came to a poor, shabby-looking town, with rusty
walls, and grey houses inscribed with flourishing black letters.
The boats went up the stream to lie at anchor, and the custom-
house officers came. Then Marjon, rousing up from the brown study
into which Johannes' last question had plunged her, said:
"We must sing something, Jo. Only think! Your Aunt's money will
soon be gone. We must earn some more."
"Can we do it?" asked Johannes.
"Easy. You just furnish the words and I'll take care of the music. If it
isn't so fine at first, that doesn't matter. You'll see how the money
rains down, even if they don't understand a thing."
Marjon knew her public. It came out as she said it would. When they
began to sing, the brusque customs collectors, the old skipper, and
other ships' folk in the boats lying next them, all listened; and the
stokers of the little tugboat stuck their soot-begrimed faces out of
the machine-room hatch, and they, also, listened. For those two
young voices floated softly and harmoniously out over the calmly
flowing current, and there was something very winning in the two
slender brothers—something fine and striking. They were quite
unlike the usual circus-people. There was something about them
which instantly made itself felt, even upon a rude audience,
although no one there could tell in what it consisted, nor understand
what they were singing about, nor even the words.
At first they sang their old songs—The Song of the Butterfly, and the
melancholy song that Marjon had made alone, and which Johannes,
rather disdainfully, had named The Nurse-Maid's Song, and also the
one Marjon had composed in the evening, in the boat. But when
Marjon said, "You must make something new," Johannes looked very
serious, and said:
"You cannot make verses—they are born as much as children are."
Marjon blushed; and, laughing in her confusion, she replied: "What
silly things you do say, Jo. It's well that the dark woman doesn't
hear you. She might take you in hand."
After a moment of silence, she resumed: "I believe you talk trash,
Jo. When I make songs the music does come of itself; but I have to
finish it off, though. I must make—compose, you know. It's exactly,"
she continued, after a pause, "as if a troop of children came in, all
unexpected—wild and in disorder, and as if, like a school-teacher, I
made them pass in a procession—two by two—and stroked their
clothing smooth, and put flowers in their hands, and then set them
marching. That's the way I make songs, and so must you make
verses. Try now!"
"Exactly," said Johannes;'"but yet the children must first come of
themselves."
"But are they not all there, Jo?"
Gazing up into the great dome of the evening sky, where the pale
stars were just beginning to sparkle, Johannes thought it over. He
thought of the fine day he had had, and also of what he had felt
coming into his head.
"Really," said Marjon, rather drily, "you'll just have to, whether you
want to or not—to keep from starving."
Then, as if desperately alarmed, Johannes went in search of pencil
and paper; and truly, in came the disorderly children, and he
arranged them in file, prinked them up, and dealt them out flowers.
He first wrote this:
"Tell me what means the bright sunshine,
The great and restless river Rhine,
This teeming land of flocks and herds—
The high, wide blue of summer sky,
Where fleecy clouds in quiet lie.
To catch the lilt of happy birds.
"The Father thinks, and spreads his dream
As sun and heaven, field and stream.
I feast on his creation—
And when that thought is understood,
Then shall my soul confess Him good,
And kneel in adoration."
Marjon read it, and slowly remarked, as she nodded: "Very well, Jo,
but I'm afraid I can't make a song of it. At least, not now. I must
have something with more life and movement in it. This is too sober
—I must have something that dances. Can't you say something
about the stars? I just love them so! Or about the river, or the sun,
or about the autumn?"
"I will try to," said Johannes, looking up at the twinkling dots
sprinkled over the dark night-sky.
Then he composed the following song, for which Marjon quickly
furnished a melody, and soon they were both singing:
"One by one from their sable fold
Came the silent stars with twinkling eyes,
And their tiny feet illumed like gold
The adamantine skies.
"And when they'd climbed the domed height—
So happy and full of glee,
There sang those stars with all their might
A song of jubilee."
It was a success. Their fresh young voices were floating and gliding
and intertwining like two bright garlands, or two supple fishes
sporting in clear water, or two butterflies fluttering about each other
in the sunshine. The brown old skipper grinned, and the grimy-faced
stokers looked at them approvingly. They did not understand it, but
felt sure it must be a merry love-song. Three times—four times
through—the children sang the song. Then, little by little, the night
fell. But Johannes had still more to say. The sun, and the splendid
summer day that had now taken its leave, had left behind a sweet,
sad longing, and this he wanted to put upon paper. Lying stretched
out on the deck, he wrote the following, by the light of the lantern:
"Oh, golden sun—oh, summer light,
I would that I might see thee bright
Thro' long, drear, winter days!
Thy brightest rays have all been shed—
Full soon thy glory will have fled,
And cold winds blow;
While all dear, verdant ways
Lie deep in snow."
As he read the last line aloud, his voice was full of emotion.
"That's fine, Jo!" said Marjon. "I'll soon have it ready."
And after a half-hour of trying and testing, she found for the verses
a sweet air, full of yearning.
And they sang it, in the dusk, and repeated the former one, until a
troupe of street musicians of the sort called "footers" came
boisterously out of a beer-house on the shore, and drowned their
tender voices with a flood of loud, dissonant, and brazen tones.
"Mum, now," said Marjon, "we can't do anything against that
braying. But never mind. We have two of them now—The Star Song
and The Autumn Song. At this rate we shall get rich. And I'll make
something yet out of The Father Song; but in the morning, I think—
not to-night. We've earned at least our day's wages, and we can go
on a lark with contented minds. Will you go, Jo?"
"Marjon," said Johannes, musingly, hesitating an instant before he
consented, "do you know who Pluizer is?"
"No!" said Marjon, bluntly.
"Do you know what he would say?"
"Well?" asked Marjon, with indifference.
"That you are altogether impossible."
"Impossible? Why?"
Welcome to our website – the perfect destination for book lovers and
knowledge seekers. We believe that every book holds a new world,
offering opportunities for learning, discovery, and personal growth.
That’s why we are dedicated to bringing you a diverse collection of
books, ranging from classic literature and specialized publications to
self-development guides and children's books.
More than just a book-buying platform, we strive to be a bridge
connecting you with timeless cultural and intellectual values. With an
elegant, user-friendly interface and a smart search system, you can
quickly find the books that best suit your interests. Additionally,
our special promotions and home delivery services help you save time
and fully enjoy the joy of reading.
Join us on a journey of knowledge exploration, passion nurturing, and
personal growth every day!
ebookbell.com

More Related Content

PDF
Ubuntu 2304 Essentials A Guide To Ubuntu 2304 Desktop And Server Editions Nei...
PDF
Ubuntu 2304 Essentials A Guide To Ubuntu 2304 Desktop And Server Editions Nei...
PDF
Ubuntu Linux Unleashed 2021 Edition Helmke
PDF
Beginning Ubuntu Linux 3rd Ed ~Tqw~ Darksiderg
PDF
Instant download Ubuntu Linux Unleashed 2021 Edition Helmke pdf all chapter
DOC
Ubuntupocketguide v1-1
PDF
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
PDF
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
Ubuntu 2304 Essentials A Guide To Ubuntu 2304 Desktop And Server Editions Nei...
Ubuntu 2304 Essentials A Guide To Ubuntu 2304 Desktop And Server Editions Nei...
Ubuntu Linux Unleashed 2021 Edition Helmke
Beginning Ubuntu Linux 3rd Ed ~Tqw~ Darksiderg
Instant download Ubuntu Linux Unleashed 2021 Edition Helmke pdf all chapter
Ubuntupocketguide v1-1
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka

Similar to A Practical Guide To Ubuntu Linux Mark G Sobell (20)

PDF
Linux install
PDF
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
PDF
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
PDF
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
PDF
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
PDF
Buy ebook Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka c...
PDF
1 the linux-guide
PDF
Iniciación a linux
PDF
The linux-guide
PPTX
CMCC_CPT201_Linux_Chapter1.pptx
PPTX
Linux installation.pptx
PDF
LinuxIdentity magazine - Ubuntu 10.10 Maverick Meerkat
PDF
Linux Presentation_SSD.pdf
PDF
Ubuntuguide
PPTX
Linux workshop
PDF
Linux Beginner Guide 2014
PDF
Ubuntu – Linux Useful Commands
PDF
Linux Desktop: From OS Install through Running the Applications
PDF
QE-SSP - Lecture 2: Productivity tools: Linux & JupyterLab
Linux install
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka
Buy ebook Linux Administration: A Beginner's Guide 8th Edition Wale Soyinka c...
1 the linux-guide
Iniciación a linux
The linux-guide
CMCC_CPT201_Linux_Chapter1.pptx
Linux installation.pptx
LinuxIdentity magazine - Ubuntu 10.10 Maverick Meerkat
Linux Presentation_SSD.pdf
Ubuntuguide
Linux workshop
Linux Beginner Guide 2014
Ubuntu – Linux Useful Commands
Linux Desktop: From OS Install through Running the Applications
QE-SSP - Lecture 2: Productivity tools: Linux & JupyterLab
Ad

Recently uploaded (20)

PPTX
Institutional Correction lecture only . . .
PDF
Abdominal Access Techniques with Prof. Dr. R K Mishra
PDF
Basic Mud Logging Guide for educational purpose
PPTX
GDM (1) (1).pptx small presentation for students
PDF
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
PDF
RMMM.pdf make it easy to upload and study
PDF
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
PPTX
Cell Structure & Organelles in detailed.
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PPTX
Lesson notes of climatology university.
PDF
TR - Agricultural Crops Production NC III.pdf
PDF
Computing-Curriculum for Schools in Ghana
PDF
Sports Quiz easy sports quiz sports quiz
PPTX
PPH.pptx obstetrics and gynecology in nursing
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
PDF
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
PPTX
Pharma ospi slides which help in ospi learning
Institutional Correction lecture only . . .
Abdominal Access Techniques with Prof. Dr. R K Mishra
Basic Mud Logging Guide for educational purpose
GDM (1) (1).pptx small presentation for students
Chapter 2 Heredity, Prenatal Development, and Birth.pdf
RMMM.pdf make it easy to upload and study
Saundersa Comprehensive Review for the NCLEX-RN Examination.pdf
Cell Structure & Organelles in detailed.
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
Supply Chain Operations Speaking Notes -ICLT Program
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
Lesson notes of climatology university.
TR - Agricultural Crops Production NC III.pdf
Computing-Curriculum for Schools in Ghana
Sports Quiz easy sports quiz sports quiz
PPH.pptx obstetrics and gynecology in nursing
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
BÀI TẬP BỔ TRỢ 4 KỸ NĂNG TIẾNG ANH 9 GLOBAL SUCCESS - CẢ NĂM - BÁM SÁT FORM Đ...
Physiotherapy_for_Respiratory_and_Cardiac_Problems WEBBER.pdf
Pharma ospi slides which help in ospi learning
Ad

A Practical Guide To Ubuntu Linux Mark G Sobell

  • 1. A Practical Guide To Ubuntu Linux Mark G Sobell download https://ebookbell.com/product/a-practical-guide-to-ubuntu-linux- mark-g-sobell-4096274 Explore and download more ebooks at ebookbell.com
  • 2. Here are some recommended products that we believe you will be interested in. You can click the link to download. A Practical Guide To Ubuntu Linux 3rd Ed Sobell Mark G https://ebookbell.com/product/a-practical-guide-to-ubuntu-linux-3rd- ed-sobell-mark-g-22043758 A Practical Guide To Ubuntu Linux 4th Mark G Sobell Author https://ebookbell.com/product/a-practical-guide-to-ubuntu-linux-4th- mark-g-sobell-author-7351410 Ubuntu Linux A Practical Guide To Ubuntu Linux Yang https://ebookbell.com/product/ubuntu-linux-a-practical-guide-to- ubuntu-linux-yang-11768882 A Practical Guide To Cultivating Therapeutic Presence 1st Edition Shari Geller Phd https://ebookbell.com/product/a-practical-guide-to-cultivating- therapeutic-presence-1st-edition-shari-geller-phd-46076572
  • 3. A Practical Guide To Dermal Filler Procedures Rebecca Small https://ebookbell.com/product/a-practical-guide-to-dermal-filler- procedures-rebecca-small-46091886 A Practical Guide To Point Of Care Ultrasound Pocus 1st Arunangshu Chakraborty Editor https://ebookbell.com/product/a-practical-guide-to-point-of-care- ultrasound-pocus-1st-arunangshu-chakraborty-editor-46123360 A Practical Guide To Veriloga Slobodan Mijalkovi https://ebookbell.com/product/a-practical-guide-to-veriloga-slobodan- mijalkovi-46132254 A Practical Guide To World Philosophies Selves Worlds And Ways Of Knowing Monika Kirloskarsteinbach Leah Kalmanson https://ebookbell.com/product/a-practical-guide-to-world-philosophies- selves-worlds-and-ways-of-knowing-monika-kirloskarsteinbach-leah- kalmanson-46493264 A Practical Guide To Advanced Networking Paperback Jeffrey S Beasley https://ebookbell.com/product/a-practical-guide-to-advanced- networking-paperback-jeffrey-s-beasley-46561604
  • 5. A Practical Guide to Ubuntu Linux Mark G. Sobell Upper Saddle River, NJ • Boston • Indianapolis • San Francisco New York • Toronto • Montreal • London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City ®
  • 6. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and the publisher was aware of a trademark claim, the designations have been printed with initial capital letters or in all capitals. Ubuntu is a registered trademark of Canonical Ltd. The author and publisher have taken care in the preparation of this book, but make no expressed or implied warranty of any kind and assume no responsibility for errors or omissions. No liability is assumed for incidental or consequential damages in connection with or arising out of the use of the information or programs contained herein. The publisher offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales, which may include electronic versions and/or custom covers and content particular to your business, training goals, marketing focus, and branding interests. For more information, please contact: U.S. Corporate and Government Sales (800) 382-3419 corpsales@pearsontechgroup.com For sales outside the United States, please contact: International Sales international@pearsoned.com Visit us on the Web: www.prenhallprofessional.com Library of Congress Cataloging-in-Publication Data Sobell, Mark G. A practical guide Ubuntu Linux / Mark G. Sobell. p. cm. Includes index. ISBN-13: 978-0-13-236039-5 (pbk. : alk. paper) 1. Linux. 2. Operating systems (Computers) I. Title. QA76.76.O63S59497 2008 005.4'32—dc22 2007043244 Copyright © 2008 Mark G. Sobell All rights reserved. Printed in the United States of America. This publication is protected by copyright, and permission must be obtained from the publisher prior to any prohibited reproduction, storage in a retrieval system, or transmission in any form or by any means, electronic, mechanical, photocopying, recording, or likewise. For information regarding permissions, write to: Pearson Education, Inc. Rights and Permissions 501 Boylston Street, Suite 900 Boston, MA 02116 Fax (617) 671-3447 ISBN-13: 978-0-13-236039-5 ISBN-10: 0-13-236039-X Text printed in the United States on recycled paper at Courier in Stoughton, Massachusetts. First printing, December 2007
  • 7. For my dad, Morton Sobell, who taught me to examine the world very carefully.
  • 9. ix ix Brief Contents Contents xi Preface xxxv 1 Welcome to Linux 1 PART I Installing Ubuntu Linux 21 2 Installation Overview 23 3 Step-by-Step Installation 45 PART II Getting Started with Ubuntu Linux 85 4 Introduction to Ubuntu Linux 87 5 The Linux Utilities 145 6 The Linux Filesystem 183 7 The Shell 219 PART III Digging into Ubuntu Linux 249 8 Linux GUIs: X and GNOME 251 9 The Bourne Again Shell 275 10 Networking and the Internet 353 11 Programming the Bourne Again Shell 395
  • 10. x Brief Contents PART IV System Administration 483 12 System Administration: Core Concepts 485 13 Files, Directories, and Filesystems 553 14 Downloading and Installing Software 583 15 Printing with CUPS 611 16 Building a Linux Kernel 635 17 Administration Tasks 657 18 Configuring a LAN 693 PART V Using Clients and Setting Up Servers 705 19 OpenSSH: Secure Network Communication 707 20 FTP: Transferring Files Across a Network 729 21 exim4: Setting Up Mail Servers, Clients, and More 755 22 NIS: Network Information Service 781 23 NFS: Sharing Filesystems 799 24 Samba: Linux and Windows File and Printer Sharing 823 25 DNS/BIND: Tracking Domain Names and Addresses 845 26 firestarter and iptables: Setting Up a Firewall 885 27 Apache: Setting Up a Web Server 915 PART VI Appendixes 969 A Regular Expressions 971 B Help 981 C Security 991 D The Free Software Definition 1011 E The Linux 2.6 Kernel 1015 Glossary 1021 Index 1071
  • 11. xi xi Contents Preface xxxvi Chapter 1: Welcome to Linux 1 The GNU–Linux Connection 2 The History of GNU–Linux 2 The Code Is Free 4 Have Fun! 5 The Linux 2.6 Kernel 5 The Heritage of Linux: UNIX 5 What Is So Good About Linux? 6 Why Linux Is Popular with Hardware Companies and Developers 7 Linux Is Portable 8 Standards 9 The C Programming Language 9 Ubuntu Linux 10 Overview of Linux 10 Linux Has a Kernel Programming Interface 10 Linux Can Support Many Users 11 Linux Can Run Many Tasks 11 Linux Provides a Secure Hierarchical Filesystem 12 The Shell: Command Interpreter and Programming Language 12 A Large Collection of Useful Utilities 14 Interprocess Communication 14 System Administration 15
  • 12. xii Contents Additional Features of Linux 15 GUIs: Graphical User Interfaces 15 (Inter)Networking Utilities 16 Software Development 17 Conventions Used in This Book 17 Chapter Summary 20 Exercises 20 PART I Installing Ubuntu Linux 21 Chapter 2: Installation Overview 23 The Live/Install Desktop CD/DVD 24 More Information 24 Planning the Installation 25 Considerations 25 Requirements 25 Processor Architecture 26 Interfaces: Installer and Installed System 27 Ubuntu Releases 28 Ubuntu Editions 28 Installing a Fresh Copy or Upgrading an Existing Ubuntu System? 29 Setting Up the Hard Disk 30 RAID 34 LVM: Logical Volume Manager 35 The Installation Process 36 Downloading and Burning a CD/DVD 37 The Easy Way to Download a CD ISO Image File 37 Other Ways to Download a CD/DVD ISO Image File 37 Verifying an ISO Image File 40 Burning the CD/DVD 40 Gathering Information About the System 41 Chapter Summary 42 Exercises 43 Advanced Exercises 43 Chapter 3: Step-by-Step Installation 45 Basic Installation from the Live/Install Desktop CD/DVD 46 Booting the System 46 Checking the CD/DVD for Defects 47 Live Session 47
  • 13. Contents xiii Graphical Partitioners 53 gparted: the GNOME Partition Editor 53 ubiquity: Setting Up Partitions 56 Upgrading to a New Release 59 Installing KDE 60 Setting Up a Dual-Boot System 61 Creating Free Space on a Windows System 61 Installing Ubuntu Linux as the Second Operating System 61 Advanced Installation 62 The Live/Install Desktop CD: The Initial Install Screen 62 The Alternate CD Initial Install Screen Menu 65 The Server CD Initial Install Screen Menu 66 The DVD 67 The Ubuntu Textual Installer 67 The X Window System 74 displayconfig-gtk: Configures the Display 75 The xorg.conf File 77 gdm: Displays a Graphical Login 82 Chapter Summary 83 Exercises 83 Advanced Exercises 84 PART II Getting Started with Ubuntu Linux 85 Chapter 4: Introduction to Ubuntu Linux 87 Curbing Your Power: root Privileges/sudo 88 A Tour of the Ubuntu Linux Desktop 89 Logging In on the System 89 Introduction 90 Launching Programs from the Desktop 91 Switching Workspaces 93 Setting Personal Preferences 94 Mouse Preferences 95 Working with Windows 96 Using Nautilus to Work with Files 96 The Update Notifier 100 Changing Appearances (Themes) 102 Session Management 104 Getting Help 104 Feel Free to Experiment 105 Logging Out 105
  • 14. xiv Contents Getting the Most out of the Desktop 105 GNOME Desktop Terminology 105 Opening Files 106 Panels 107 The Main Menu 110 Windows 111 The Object Context Menu 115 Updating, Installing, and Removing Software Packages 119 Software Sources Window 119 Add/Remove Applications 120 Synaptic: Finds, Installs, and Removes Software 121 Where to Find Documentation 124 Ubuntu Help Center 124 man: Displays the System Manual 124 info: Displays Information About Utilities 126 The ––help Option 129 HOWTOs: Finding Out How Things Work 129 Getting Help with the System 130 More About Logging In 132 The Login Screen 132 What to Do if You Cannot Log In 133 Logging In Remotely: Terminal Emulators, ssh, and Dial-Up Connections 133 Logging In from a Terminal (Emulator) 134 Changing Your Password 135 Using Virtual Consoles 136 Working from the Command Line 136 Correcting Mistakes 137 Repeating/Editing Command Lines 139 Controlling Windows: Advanced Operations 139 Changing the Input Focus 139 Changing the Resolution of the Display 140 The Window Manager 141 Chapter Summary 142 Exercises 143 Advanced Exercises 144 Chapter 5: The Linux Utilities 145 Special Characters 146 Basic Utilities 147 ls: Lists the Names of Files 147 cat: Displays a Text File 147 rm: Deletes a File 148 less Is more: Display a Text File One Screen at a Time 148 hostname: Displays the System Name 149
  • 15. Contents xv Working with Files 149 cp: Copies a File 149 mv: Changes the Name of a File 150 lpr: Prints a File 151 grep: Searches for a String 151 head: Displays the Beginning of a File 152 tail: Displays the End of a File 152 sort: Displays a File in Order 153 uniq: Removes Duplicate Lines from a File 154 diff: Compares Two Files 154 file: Tests the Contents of a File 155 | (Pipe): Communicates Between Processes 156 Four More Utilities 157 echo: Displays Text 157 date: Displays the Time and Date 157 script: Records a Shell Session 158 unix2dos: Converts Linux and Macintosh Files to Windows Format 159 Compressing and Archiving Files 159 bzip2: Compresses a File 160 bunzip2 and bzcat: Decompress a File 160 gzip: Compresses a File 161 tar: Packs and Unpacks Archives 161 Locating Commands 164 which and whereis: Locate a Utility 164 apropos: Searches for a Keyword 165 slocate: Searches for a File 166 Obtaining User and System Information 166 who: Lists Users on the System 167 finger: Lists Users on the System 167 w: Lists Users on the System 169 Communicating with Other Users 170 write: Sends a Message 170 mesg: Denies or Accepts Messages 171 Email 171 Tutorial: Creating and Editing a File with vim 172 Starting vim 172 Command and Input Modes 174 Entering Text 175 Getting Help 176 Ending the Editing Session 178 The compatible Parameter 179 Chapter Summary 179 Exercises 181 Advanced Exercises 182
  • 16. xvi Contents Chapter 6: The Linux Filesystem 183 The Hierarchical Filesystem 184 Directory Files and Ordinary Files 184 Filenames 185 The Working Directory 188 Your Home Directory 188 Pathnames 189 Absolute Pathnames 189 Relative Pathnames 190 Directory Commands 191 mkdir: Creates a Directory 191 Important Standard Directories and Files 194 Working with Directories 196 rmdir: Deletes a Directory 196 Using Pathnames 197 mv, cp: Move or Copy Files 197 mv: Moves a Directory 198 Access Permissions 199 ls –l: Displays Permissions 199 chmod: Changes Access Permissions 200 Setuid and Setgid Permissions 201 Directory Access Permissions 202 ACLs: Access Control Lists 203 Enabling ACLs 204 Working with Access Rules 204 Setting Default Rules for a Directory 207 Links 209 Hard Links 210 Symbolic Links 212 rm: Removes a Link 214 Chapter Summary 214 Exercises 216 Advanced Exercises 218 Chapter 7: The Shell 219 The Command Line 220 Syntax 220 Processing the Command Line 223 Executing the Command Line 225 Editing the Command Line 225 Standard Input and Standard Output 226 The Screen as a File 226 The Keyboard and Screen as Standard Input and Standard Output 227 Redirection 228 Pipes 234
  • 17. Contents xvii Running a Program in the Background 237 Filename Generation/Pathname Expansion 239 The ? Special Character 239 The *Special Character 240 The [ ] Special Characters 241 Builtins 243 Chapter Summary 244 Utilities and Builtins Introduced in This Chapter 245 Exercises 245 Advanced Exercises 247 PART III Digging into Ubuntu Linux 249 Chapter 8: Linux GUIs: X and GNOME 251 X Window System 252 Using X 254 Window Managers 259 The Nautilus File Browser Window 260 The View Pane 261 The Side Pane 261 Control Bars 262 Menubar 263 GNOME Utilities 266 Deskbar Applet 266 Font Preferences 267 Pick a Font Window 268 Pick a Color Window 268 Run Application Window 269 Searching for Files 269 GNOME Terminal Emulator/Shell 270 Chapter Summary 271 Exercises 272 Advanced Exercises 272 Chapter 9: The Bourne Again Shell 275 Background 276 Shell Basics 277 Startup Files 277 Commands That Are Symbols 280 Redirecting Standard Error 280 Writing a Simple Shell Script 282 Separating and Grouping Commands 286 Job Control 290 Manipulating the Directory Stack 292
  • 18. xviii Contents Parameters and Variables 295 User-Created Variables 296 Variable Attributes 299 Keyword Variables 301 Special Characters 309 Processes 310 Process Structure 310 Process Identification 310 Executing a Command 312 History 312 Variables That Control History 312 Reexecuting and Editing Commands 314 The Readline Library 322 Aliases 328 Single Versus Double Quotation Marks in Aliases 329 Examples of Aliases 330 Functions 331 Controlling bash Features and Options 334 Command Line Options 334 Shell Features 334 Processing the Command Line 338 History Expansion 338 Alias Substitution 338 Parsing and Scanning the Command Line 338 Command Line Expansion 339 Chapter Summary 347 Exercises 349 Advanced Exercises 351 Chapter 10: Networking and the Internet 353 Types of Networks and How They Work 355 Broadcast Networks 356 Point-to-Point Networks 356 Switched Networks 356 LAN: Local Area Network 357 WAN: Wide Area Network 358 Internetworking Through Gateways and Routers 358 Network Protocols 361 Host Address 363 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 371 Mailing List Servers 372
  • 19. Contents xix Network Utilities 372 Trusted Hosts 372 OpenSSH Tools 373 telnet: Logs In on a Remote System 373 ftp: Transfers Files Over a Network 375 ping: Tests a Network Connection 375 traceroute: Traces a Route Over the Internet 376 host and dig: Query Internet Nameservers 378 jwhois: Looks Up Information About an Internet Site 378 Distributed Computing 379 The Client/Server Model 380 DNS: Domain Name Service 381 Ports 383 NIS: Network Information Service 383 NFS: Network Filesystem 383 Internet Services 384 Proxy Servers 387 RPC Network Services 387 Usenet 388 WWW: World Wide Web 390 URL: Uniform Resource Locator 391 Browsers 392 Search Engines 392 Chapter Summary 392 Exercises 393 Advanced Exercises 394 Chapter 11: Programming the Bourne Again Shell 395 Control Structures 396 if...then 396 if...then...else 400 if...then...elif 403 for...in 409 for 410 while 412 until 416 break and continue 418 case 419 select 425 Here Document 427 File Descriptors 429 Parameters and Variables 432 Array Variables 432 Locality of Variables 434 Special Parameters 436 Positional Parameters 438 Expanding Null and Unset Variables 443
  • 20. xx Contents Builtin Commands 444 type: Displays Information About a Command 445 read: Accepts User Input 445 exec: Executes a Command 448 trap: Catches a Signal 451 kill: Aborts a Process 454 getopts: Parses Options 454 A Partial List of Builtins 457 Expressions 458 Arithmetic Evaluation 458 Logical Evaluation (Conditional Expressions) 459 String Pattern Matching 460 Operators 461 Shell Programs 466 A Recursive Shell Script 467 The quiz Shell Script 470 Chapter Summary 476 Exercises 478 Advanced Exercises 480 PART IV System Administration 483 Chapter 12: System Administration: Core Concepts 485 Running Commands with root Privileges 487 sudo: Running a Command with root Privileges 490 sudoers: Configuring sudo 494 Unlocking the root Account (Assigning a Password to root) 499 su: Gives You Another User’s Privileges 499 The Upstart Event-Based init Daemon 500 Software Packages 501 Definitions 501 Jobs 503 SysVinit (rc) Scripts: Start and Stop System Services 507 System Operation 510 Runlevels 510 Booting the System 511 Recovery (Single-User) Mode 512 Going to Multiuser Mode 515 Logging In 516
  • 21. Contents xxi Logging Out 517 Bringing the System Down 518 Crash 519 Avoiding a Trojan Horse 520 Getting Help 522 Textual System Administration Utilities 522 kill: Sends a Signal to a Process 522 Other Textual Utilities 525 Setting Up a Server 527 Standard Rules in Configuration Files 528 rpcinfo: Displays Information About portmap 530 The inetd and xinetd Superservers 531 Securing a Server 532 DHCP: Configures Network Interfaces 538 nsswitch.conf: Which Service to Look at First 542 How nsswitch.conf Works 542 PAM 545 More Information 546 Configuration Files, Module Types, and Control Flags 546 Example 548 Modifying the PAM Configuration 549 Chapter Summary 550 Exercises 551 Advanced Exercises 551 Chapter 13: Files, Directories, and Filesystems 553 Important Files and Directories 554 File Types 566 Ordinary Files, Directories, Links, and Inodes 566 Special Files 567 Filesystems 570 mount: Mounts a Filesystem 572 umount: Unmounts a Filesystem 575 fstab: Keeps Track of Filesystems 576 fsck: Checks Filesystem Integrity 577 tune2fs: Changes Filesystem Parameters 578 RAID Filesystem 580 Chapter Summary 580 Exercises 580 Advanced Exercises 581
  • 22. xxii Contents Chapter 14: Downloading and Installing Software 583 JumpStart: Installing and Removing Packages Using aptitude 585 Finding the Package That Holds a File You Need 587 APT: Keeps the System Up-to-Date 588 Repositories 588 sources.list: Specifies Repositories for APT to Search 589 The APT Local Package Indexes and the APT Cache 590 The apt cron Script and APT Configuration Files 590 aptitude: Works with Packages and the Local Package Index 592 apt-cache: Displays Package Information 596 apt-get source: Downloads Source Files 598 dpkg: The Debian Package Management System 598 deb Files 599 dpkg: The Foundation of the Debian Package Management System 600 BitTorrent 604 Installing Non-dpkg Software 607 The /opt and /usr/local Directories 607 GNU Configure and Build System 607 wget: Downloads Files Noninteractively 609 Chapter Summary 610 Exercises 610 Advanced Exercises 610 Chapter 15: Printing with CUPS 611 Introduction 612 Prerequisites 612 More Information 613 Notes 613 JumpStart I: Configuring a Local Printer 614 system-config-printer: Configuring a Printer 614 Configuration Tabs 614 Setting Up a Remote Printer 616 JumpStart II: Configuring a Remote Printer Using the CUPS Web Interface 618 Traditional UNIX Printing 622 Configuring Printers 624 The CUPS Web Interface 624 CUPS on the Command Line 626 Sharing CUPS Printers 629 Printing from Windows 630 Printing Using CUPS 631 Printing Using Samba 631
  • 23. Contents xxiii Printing to Windows 632 Chapter Summary 633 Exercises 633 Advanced Exercises 633 Chapter 16: Building a Linux Kernel 635 Prerequisites 636 Downloading the Kernel Source Code 637 aptitude: Downloading and Installing the Kernel Source Code 637 git: Obtaining the Latest Kernel Source Code 637 Read the Documentation 638 Configuring and Compiling the Linux Kernel 639 .config: Configures the Kernel 639 Customizing a Kernel 640 Cleaning the Source Tree 642 Compiling a Kernel Image File and Loadable Modules 643 Using Loadable Kernel Modules 643 Installing the Kernel, Modules, and Associated Files 646 Rebooting 647 grub: The Linux Boot Loader 647 menu.lst: Configures grub 648 update-grub: Updates the menu.lst file 651 grub-install: Installs the MBR and grub Files 653 dmesg: Displays Kernel Messages 654 Chapter Summary 655 Exercises 656 Advanced Exercises 656 Chapter 17: Administration Tasks 657 Configuring User and Group Accounts 658 users-admin: Manages User Accounts 658 useradd: Adds a User Account 660 userdel: Removes a User Account 661 usermod: Modifies a User Account 661 groupadd: Adds a Group 661 groupdel: Removes a Group 661 Backing Up Files 662 Choosing a Backup Medium 663 Backup Utilities 663 Performing a Simple Backup 665 dump, restore: Back Up and Restore Filesystems 666
  • 24. xxiv Contents Scheduling Tasks 668 cron and anacron: Schedule Routine Tasks 668 at: Runs Occasional Tasks 671 System Reports 671 vmstat: Reports Virtual Memory Statistics 671 top: Lists Processes Using the Most Resources 672 parted: Reports on and Partitions a Hard Disk 673 Keeping Users Informed 677 Creating Problems 678 Solving Problems 679 Helping When a User Cannot Log In 679 Speeding Up the System 680 lsof: Finds Open Files 681 Keeping a Machine Log 681 Keeping the System Secure 682 Log Files and Mail for root 683 Monitoring Disk Usage 683 logrotate: Manages Log Files 684 Removing Unused Space from Directories 686 Disk Quota System 687 syslogd: Logs System Messages 688 Chapter Summary 690 Exercises 690 Advanced Exercises 691 Chapter 18: Configuring a LAN 693 Setting Up the Hardware 694 Connecting the Computers 694 Routers 695 NIC: Network Interface Card 695 Tools 695 Configuring the Systems 697 network-admin: Configures Network Connections 698 nm-applet: Configures Network Connections Automatically 700 iwconfig: Configures a Wireless NIC 700 Setting Up Servers 702 More Information 703 Chapter Summary 703 Exercises 704 Advanced Exercises 704
  • 25. Contents xxv PART V UsingClientsandSettingUpServers 705 Chapter 19: OpenSSH: Secure Network Communication 707 Introduction 708 About OpenSSH 708 Files 708 How OpenSSH Works 710 More Information 711 OpenSSH Clients 711 Prerequisites 711 JumpStart: Using ssh and scp 711 Setup 712 ssh: Connects to or Executes Commands on a Remote System 714 scp: Copies Files to and from a Remote System 716 sftp: A Secure FTP Client 718 ~/.ssh/config and /etc/ssh/ssh_config Configuration Files 718 sshd: OpenSSH Server 720 Prerequisites 720 Note 720 JumpStart: Starting the sshd Daemon 720 Authorized Keys: Automatic Login 721 Command Line Options 722 /etc/ssh/sshd_config Configuration File 722 Troubleshooting 724 Tunneling/Port Forwarding 725 Chapter Summary 727 Exercises 728 Advanced Exercises 728 Chapter 20: FTP: Transferring Files Across a Network 729 Introduction 730 More Information 731 FTP Client 731 Prerequisites 731 JumpStart I: Downloading Files Using ftp 732 Notes 735 Anonymous FTP 735 Automatic Login 735 Binary Versus ASCII Transfer Mode 736 ftp Specifics 736
  • 26. xxvi Contents FTP Server (vsftpd) 740 Prerequisites 740 Notes 740 JumpStart II: Starting a vsftpd Server 741 Testing the Setup 741 vsftpd.conf: The vsftpd Configuration File 742 Chapter Summary 753 Exercises 753 Advanced Exercises 754 Chapter 21: exim4: Setting Up Mail Servers, Clients, and More 755 Introduction to exim4 756 Prerequisites 757 Notes 757 More Information 758 JumpStart I: Configuring exim4 to Use a Smarthost 758 JumpStart II: Configuring exim4 to Send and Receive Email 760 How exim4 Works 761 Mail Logs 762 Working with Messages 763 Aliases and Forwarding 763 Related Programs 765 Configuring exim4 765 Using a Text Editor to Configure exim4 766 The update-exim4.conf.conf Configuration File 766 dpkg-reconfigure: Configures exim4 768 SpamAssassin 768 Prerequisites 769 How SpamAssassin Works 769 Testing SpamAssassin 770 Configuring SpamAssassin 771 Additional Email Tools 772 Webmail 772 Mailing Lists 774 Setting Up an IMAP or POP3 Server 776 Authenticated Relaying 777 Alternatives to exim4 779 Chapter Summary 779 Exercises 780 Advanced Exercises 780
  • 27. Contents xxvii Chapter 22: NIS: Network Information Service 781 Introduction to NIS 782 How NIS Works 782 More Information 784 Setting Up an NIS Client 784 Prerequisites 785 Notes 785 Step-by-Step Setup 786 Testing the Setup 787 yppasswd: Changes NIS Passwords 788 Setting Up an NIS Server 790 Prerequisites 790 Notes 791 Step-by-Step Setup 791 Testing 796 yppasswdd: The NIS Password Update Daemon 797 Chapter Summary 798 Exercises 798 Advanced Exercises 798 Chapter 23: NFS: Sharing Filesystems 799 Introduction 800 More Information 802 Setting Up an NFS Client 802 Prerequisites 802 JumpStart I: Mounting a Remote Directory Hierarchy 803 mount: Mounts a Directory Hierarchy 804 Improving Performance 806 /etc/fstab: Mounts Directory Hierarchies Automatically 807 Setting Up an NFS Server 808 Prerequisites 808 Notes 808 JumpStart II: Configuring an NFS Server Using shares-admin 809 Manually Exporting a Directory Hierarchy 811 Where the System Keeps NFS Mount Information 815 exportfs: Maintains the List of Exported Directory Hierarchies 817 Testing the Server Setup 818 automount: Mounts Directory Hierarchies on Demand 818 Chapter Summary 821 Exercises 822 Advanced Exercises 822
  • 28. xxviii Contents Chapter 24: Samba: Linux and Windows File and Printer Sharing 823 Introduction 824 About Samba 825 Prerequisites 825 More Information 825 Notes 825 Samba Users, User Maps, and Passwords 826 JumpStart: Configuring a Samba Server Using shares-admin 826 swat: Configures a Samba Server 828 smb.conf: Manually Configuring a Samba Server 832 Parameters in the smbd.conf File 832 The [homes] Share: Sharing Users’ Home Directories 838 Accessing Linux Shares from Windows 838 Browsing Shares 838 Mapping a Share 839 Accessing Windows Shares from Linux 839 smbtree: Displays Windows Shares 839 smbclient: Connects to Windows Shares 840 Browsing Windows Networks 840 Mounting Windows Shares 841 Troubleshooting 841 Chapter Summary 844 Exercises 844 Advanced Exercises 844 Chapter 25: DNS/BIND: Tracking Domain Names and Addresses 845 Introduction to DNS 846 Nodes, Domains, and Subdomains 846 Zones 848 Queries 849 Servers 850 Resource Records 851 DNS Query and Response 854 Reverse Name Resolution 855 About DNS 857 How DNS Works 857 Prerequisites 857 More Information 858 Notes 858
  • 29. Contents xxix JumpStart I: Setting Up a DNS Cache 858 Setting Up BIND 860 named.conf: The named Configuration File 860 Zone Files 863 A DNS Cache 864 DNS Glue Records 868 TSIGs: Transaction Signatures 868 Running BIND in a chroot Jail 870 Troubleshooting 872 A Full-Functioned Nameserver 873 A Slave Server 877 A Split Horizon Server 878 Chapter Summary 883 Exercises 883 Advanced Exercises 884 Chapter 26: firestarter and iptables: Setting Up a Firewall 885 About firestarter 886 Prerequisites 886 Notes 887 More Information 888 JumpStart: Building a Firewall Using the firestarter Firewall Wizard 888 firestarter: Maintains a Firewall 890 The Status Tab 890 The Events Tab 892 The Policy Tab 894 How iptables Works 896 About iptables 899 More Information 899 Prerequisites 899 Notes 899 Anatomy of an iptables Command 900 Building a Set of Rules 901 Commands 901 Packet Match Criteria 903 Display Criteria 903 Match Extensions 903 Targets 906 Copying Rules to and from the Kernel 907
  • 30. xxx Contents Sharing an Internet Connection Using NAT 908 Connecting Several Clients to a Single Internet Connection 910 Connecting Several Servers to a Single Internet Connection 912 Chapter Summary 912 Exercises 913 Advanced Exercises 913 Chapter 27: Apache: Setting Up a Web Server 915 Introduction 916 About Apache 917 Prerequisites 917 More Information 918 Notes 918 JumpStart: Getting Apache Up and Running 919 Modifying the Configuration Files 919 Testing Apache 920 Putting Your Content in Place 920 Configuring Apache 921 Configuration Tools 921 Include Directives 922 Filesystem Layout 923 Configuration Directives 925 Directives I: Directives You May Want to Modify as You Get Started 926 Contexts and Containers 931 Directives II: Advanced Directives 935 The Ubuntu apache2.conf File 948 The Ubuntu default Configuration File 950 Redirects 951 Content Negotiation 951 Type Maps 951 MultiViews 952 Server-Generated Directory Listings (Indexing) 953 Virtual Hosts 953 Setting Up a Virtual Host 954 Types of Virtual Hosts 954 The default Virtual Host 954 Examples 954 Troubleshooting 956 Modules 957 mod_cgi and CGI Scripts 958 mod_ssl 959 Authentication Modules and .htaccess 961 Scripting Modules 962 Multiprocessing Modules (MPMs) 963
  • 31. Contents xxxi webalizer: Analyzes Web Traffic 964 MRTG: Monitors Traffic Loads 964 Error Codes 964 Chapter Summary 965 Exercises 966 Advanced Exercises 966 PART VI Appendixes 969 Appendix A: Regular Expressions 971 Characters 972 Delimiters 972 Simple Strings 972 Special Characters 972 Periods 973 Brackets 973 Asterisks 974 Carets and Dollar Signs 974 Quoting Special Characters 975 Rules 975 Longest Match Possible 975 Empty Regular Expressions 976 Bracketing Expressions 976 The Replacement String 976 Ampersand 977 Quoted Digit 977 Extended Regular Expressions 977 Appendix Summary 979 Appendix B: Help 981 Solving a Problem 982 Finding Linux-Related Information 983 Documentation 983 Useful Linux Sites 984 Linux Newsgroups 985 Mailing Lists 985 Words 986 Software 986 Office Suites and Word Processors 988 Specifying a Terminal 988
  • 32. xxxii Contents Appendix C: Security 991 Encryption 992 Public Key Encryption 993 Symmetric Key Encryption 994 Encryption Implementation 995 GnuPG/PGP 995 File Security 997 Email Security 997 MTAs (Mail Transfer Agents) 997 MUAs (Mail User Agents) 998 Network Security 998 Network Security Solutions 999 Network Security Guidelines 999 Host Security 1001 Login Security 1002 Remote Access Security 1003 Viruses and Worms 1004 Physical Security 1004 Security Resources 1006 Appendix Summary 1009 Appendix D: The Free Software Definition 1011 Appendix E: The Linux 2.6 Kernel 1015 Native Posix Thread Library (NPTL) 1016 IPSecurity (IPSec) 1016 Asynchronous I/O (AIO) 1016 O(1) Scheduler 1017 OProfile 1017 kksymoops 1017 Reverse Map Virtual Memory (rmap VM) 1017 HugeTLBFS: Translation Look-Aside Buffer Filesystem 1018 remap_file_pages 1018 2.6 Network Stack Features (IGMPv3, IPv6, and Others) 1018 Internet Protocol Virtual Server (IPVS) 1019 Access Control Lists (ACLs) 1019 4GB-4GB Memory Split: Physical Address Extension (PAE) 1019 Scheduler Support for HyperThreaded CPUs 1019
  • 33. Contents xxxiii Block I/O (BIO) Block Layer 1019 Support for Filesystems Larger Than 2 Terabytes 1020 New I/O Elevators 1020 Interactive Scheduler Response Tuning 1020 Glossary 1021 Index 1071
  • 35. xxxv xxxv M Preface Preface The book Whether you are an end user, a system administrator, or a little of both, this book explains with step-by-step examples how to get the most out of an Ubuntu Linux system. In 27 chapters, this book takes you from installing an Ubuntu system through understanding its inner workings to setting up secure servers that run on the system. The audience This book is designed for a wide range of readers. It does not require you to have programming experience, although having some experience using a general-purpose computer, such as a Windows, Macintosh, UNIX, or another Linux system is cer- tainly helpful. This book is appropriate for • Students who are taking a class in which they use Linux • Home users who want to set up and/or run Linux • Professionals who use Linux at work • System administrators who need an understanding of Linux and the tools that are available to them • Computer science students who are studying the Linux operating system • Technical executives who want to get a grounding in Linux Benefits A Practical Guide to Ubuntu Linux® gives you a broad understanding of many fac- ets of Linux, from installing Ubuntu Linux through using and customizing it. No matter what your background, this book provides the knowledge you need to get on with your work. You will come away from this book understanding how to use Linux, and this book will remain a valuable reference for years to come.
  • 36. xxxvi Preface Overlap If you read A Practical Guide to Linux® Commands, Editors, and Shell Program- ming, you will notice some overlap between that book and the one you are reading now. The first chapter, the chapters on the utilities and the filesystem, and the appendix on regular expressions are very similar in the two books, as are the three chapters on the Bourne Again Shell (bash). Chapters that appear in this book but do not appear in A Practical Guide to Linux® Commands, Editors, and Shell Program- ming include Chapters 2 and 3 (installation), Chapters 4 and 8 (Ubuntu Linux and the GUI), Chapter 10 (networking), all of the chapters in Part IV (system adminis- tration) and Part V (servers), and Appendix C (security). Differences While this book explains how to use Linux from a graphical interface and from the command line (a textual interface), A Practical Guide to Linux® Commands, Edi- tors, and Shell Programming works exclusively with the command line. It includes full chapters on the vi and emacs editors, as well as chapters on the gawk pattern processing language and the sed stream editor. In addition, it has a command refer- ence section that provides extensive examples of the use of more than 80 of the most important Linux utilities. You can use these utilities to solve problems without resorting to programming in C. This Book Includes Ubuntu Gutsy Gibbon (7.10) on a Live/Install DVD This book includes a live/install DVD that holds the Gutsy Gibbon (7.10) release of Ubuntu Linux. You can use this DVD to run a live Ubuntu session that displays the GNOME desktop without making any changes to your computer: Boot from the DVD, run an Ubuntu live session, and log off. Your system remains untouched: When you reboot, it is exactly as it was before you ran the Ubuntu live session. Alternatively, you can install Ubuntu from the live session. Chapter 2 helps you get ready to install Ubuntu. Chapter 3 provides step-by-step instructions for installing Ubuntu from this DVD. This book guides you through learning about, using, and administrating an Ubuntu Linux session. DVD features The included DVD incorporates all the features of the live/install Desktop CD as well as the Alternate and Server CDs. It also includes all software packages sup- ported by Ubuntu. You can use it to perform a graphical or textual (command line) installation of either a graphical or a textual Ubuntu system. If you do not have an Internet connection, you can use the DVD as a software repository and install any supported software packages from it. Features of This Book This book is designed and organized so you can get the most out of it in the shortest amount of time. You do not have to read this book straight through in page order. Instead, once you are comfortable using Linux, you can use this book as a reference:
  • 37. Features of This Book xxxvii Look up a topic of interest in the table of contents or index and read about it. Or think of the book as a catalog of Linux topics: Flip through the pages until a topic catches your eye. The book includes many pointers to Web sites where you can get additional information: Consider the Internet an extension of this book. A Practical Guide to Ubuntu Linux® is structured with the following features: • Optional sections enable you to read the book at different levels, returning to more difficult material when you are ready to delve into it. • Caution boxes highlight procedures that can easily go wrong, giving you guidance before you run into trouble. • Tip boxes highlight ways you can save time by doing something differently or situations when it may be useful or just interesting to have additional information. • Security boxes point out places where you can make a system more secure. The security appendix presents a quick background in system security issues. • Concepts are illustrated by practical examples throughout the book. • Chapter summaries review the important points covered in each chapter. • Review exercises are included at the end of each chapter for readers who want to further hone their skills. Answers to even-numbered exercises are available at www.sobell.com. • The glossary defines more than 500 common terms. • The chapters that cover servers include JumpStart sections that get you off to a quick start using clients and setting up servers. Once a server is up and running, you can test and modify its configuration as explained in the rest of the chapter. • This book provides resources for finding software on the Internet. It also explains how to download and install software using Synaptic, aptitude, the GNOME Add/Remove Applications window, and BitTorrent. It details controlling automatic updates using the Update Notifier and the Update Manager window. • This book describes in detail many important GNU tools, including the GNOME desktop, the Nautilus File Browser, the parted and gparted parti- tion editors, the gzip compression utility, and many command line utilities that come from the GNU project. • Pointers throughout the text provide help in obtaining online documenta- tion from many sources, including the local system, the Ubuntu Web site, and other locations on the Internet. • Many useful URLs point to Web sites where you can obtain software, security programs and information, and more. • The comprehensive index helps you locate topics quickly and easily.
  • 38. xxxviii Preface Key Topics Covered in This Book This book contains a lot of information. This section distills and summarizes its contents. In addition, “Details” (starting on page xli) describes what each chapter covers. Finally, the table of contents provides more detail. This book: Installation • Describes how to download Ubuntu Linux ISO images from the Internet and burn the Ubuntu live/install Desktop CD, the DVD, or the Ubuntu Alternate or Server installation CD. • Helps you plan the layout of the system’s hard disk. It includes a discus- sion of partitions, partition tables, and mount points, and assists you in using the ubiquity or gparted graphical partitioner or the Ubuntu textual partitioner to partition the hard disk. • Explains how to set up a dual-boot system so you can install Ubuntu Linux on a Windows system and boot either operating system. • Describes in detail how to install Ubuntu Linux from a live/install Desktop CD or the live/install DVD using the ubiquity graphical installer. It also explains how to use the textual installer found on the Alternate CD, the Server CD, and the DVD. The graphical installer is fast and easy to use. The textual installer gives you more options and works on systems with less RAM (system memory). • Covers testing an Ubuntu CD/DVD for defects, setting boot command line parameters (boot options), and creating a RAID array. • Covers the details of installing and customizing the X.org version of the X Window System either graphically using the Screen and Graphics Preferences window or manually with a text editor. Working with Ubuntu Linux • Introduces the GNOME desktop (GUI) and explains how to use desktop tools, including the Top and Bottom panels, panel objects, the Main menu, object context menus, the Workspace Switcher, the Nautilus File Browser, and the GNOME Terminal emulator. • Explains how to use the Appearance Preferences window to add and mod- ify themes to customize your desktop to please your senses and help you work more efficiently. • Details how to set up 3D desktop visual effects that take advantage of Compiz Fusion. • Covers the Bourne Again Shell (bash) in three chapters, including an entire chapter on shell programming that includes many sample shell scripts. These chapters provide clear explanations and extensive examples of how bash works both from the command line in day-to-day work and as a pro- gramming language to write shell scripts.
  • 39. Key Topics Covered in This Book xxxix • Explains the textual (command line) interface and introduces more than 30 command line utilities. • Presents a tutorial on the vim textual editor. • Covers types of networks, network protocols, and network utilities. • Explains hostnames, IP addresses, and subnets, and explores how to use host and dig to look up domain names and IP addresses on the Internet. • Covers distributed computing and the client/server model. • Explains how to use ACLs (Access Control Lists) to fine-tune user access permissions. System administration • Explains how to use the Ubuntu graphical and textual (command line) tools to configure the display, DNS, NFS, Samba, Apache, a firewall, a network interface, and more. You can also use these tools to add users and manage local and remote printers. • Goes into detail about using sudo to allow specific users to work with root privileges (become Superuser) and customizing the way sudo works by editing the sudoers configuration file. It also explains how you can unlock the root account if necessary. • Describes how to use the following tools to download and install software to keep a system up-to-date and to install new software: ◆ The Software Sources window controls which Ubuntu and third-party software repositories Ubuntu downloads software packages from and whether Ubuntu downloads updates automatically. You can also use this window to cause Ubuntu to download and install security updates automatically. ◆ If you do not have an Internet connection, you can use the Software Sources window to set up the DVD included with this book as a soft- ware repository. You can then install any software packages that Ubuntu supports from this repository. ◆ Based on how you set up updates in the Software Sources window, the Update Notifier pops up on the desktop to let you know when soft- ware updates are available. Click the Update Notifier to open the Update Manager window, from which you can download and install updates. ◆ The Add/Remove Applications window provides an easy way to select, download, and install a wide range of software packages. ◆ Synaptic allows you to search for, install, and remove software pack- ages. It gives you more ways to search for packages than does the Add/Remove Applications window.
  • 40. xl Preface ◆ APT downloads and installs software packages from the Internet (or the included DVD), keeping a system up-to-date and resolving dependencies as it processes the packages. You can use APT from a graphical interface (Synaptic) or from several textual interfaces (e.g., aptitude and apt-get). ◆ BitTorrent is a good choice for distributing large amounts of data such as the Ubuntu installation DVD and CDs. The more people who use BitTorrent to download a file, the faster it works. • Covers graphical system administration tools, including the many tools available from the GNOME Main menu. • Explains system operation, including the boot process, init scripts, recov- ery (single-user) and multiuser modes, and steps to take if the system crashes. • Describes how to use and program the new Upstart init daemon, which replaces the System V init daemon. • Describes files, directories, and filesystems, including types of files and file- systems, fstab (the filesystem table), and automatically mounted filesystems, and explains how to fine-tune and check the integrity of filesystems. • Covers backup utilities, including tar, cpio, dump, and restore. • Describes compression/archive utilities, including gzip, bzip2, compress, and zip. • Explains how to customize and build a Linux kernel. Security • Helps you manage basic system security issues using ssh (secure shell), vsftpd (secure FTP server), Apache (Web server), iptables (firewalls), and more. • Covers using firestarter to share an Internet connection over a LAN, run a DHCP server, and set up a basic firewall to protect the system. • Provides instructions on using iptables to share an Internet connection over a LAN and to build advanced firewalls. • Describes how to set up a chroot jail to help protect a server system. • Explains how to use TCP wrappers to control who can access a server. Clients and servers • Explains how to set up and use the most popular Linux servers, providing a chapter on each: Apache, Samba, OpenSSH, exim4, DNS, NFS, FTP, firestarter and iptables, and NIS (all of which are supported by Ubuntu Linux). • Describes how to set up a CUPS printer server. • Describes how to set up and use a DHCP server either by itself or from firestarter. Programming • Provides a full chapter covering shell programming using bash, including many examples.
  • 41. Key Topics Covered in This Book xli Details Chapter 1 Chapter 1 presents a brief history of Linux and explains some of the features that make it a cutting-edge operating system. The “Conventions Used in This Book” (page 17) section details the typefaces and terminology this book uses. Part I Part I, “Installing Ubuntu Linux,” discusses how to install Ubuntu Linux. Chapter 2 presents an overview of the process of installing Ubuntu Linux, including hardware requirements, downloading and burning a CD or DVD, and planning the layout of the hard disk. Chapter 3 is a step-by-step guide to installing Ubuntu Linux from a CD or DVD, using the graphical or textual installer. It also shows how to set up the X Window System and customize your desktop (GUI). Part II Part II, “Getting Started with Ubuntu Linux,” familiarizes you with Ubuntu Linux, covering logging in, the GUI, utilities, the filesystem, and the shell. Chapter 4 intro- duces desktop features, including the Top and Bottom panels and the Main menu; explains how to use the Nautilus File Browser to manage files, run programs, and connect to FTP and HTTP servers; covers finding documentation, dealing with login problems, and using the window manager; and presents some suggestions on where to find documentation, including manuals, tutorials, software notes, and HOWTOs. Chapter 5 introduces the shell command line interface, describes more than 30 use- ful utilities, and presents a tutorial on the vim text editor. Chapter 6 discusses the Linux hierarchical filesystem, covering files, filenames, pathnames, working with directories, access permissions, and hard and symbolic links. Chapter 7 introduces the Bourne Again Shell (bash) and discusses command line arguments and options, redirecting input to and output from commands, running programs in the back- ground, and using the shell to generate and expand filenames. Part III Part III, “Digging into Ubuntu Linux,” goes into more detail about working with the system. Chapter 8 discusses the GUI (desktop) and includes a section on how to run a graphical program on a remote system and have the display appear locally. The section on GNOME describes several GNOME utilities, including the new Deskbar applet, and goes into more depth about the Nautilus File Browser. Chapter 9 extends the bash coverage from Chapter 7, explaining how to redirect error output, avoid overwriting files, and work with job control, processes, startup files, important shell builtin commands, parameters, shell variables, and aliases. Chapter 10 explains net- works, network security, and the Internet and discusses types of networks, subnets, protocols, addresses, hostnames, and various network utilities. The section on dis- tributed computing describes the client/server model and some of the servers you can use on a network. Chapter 11 goes into greater depth about shell programming Experienced users may want to skim Part II tip If you have used a UNIX or Linux system before, you may want to skim or skip some or all of the chapters in Part II. Part I has two sections that all readers should take a look at: “Conventions Used in This Book” (page 17), which explains the typographic and layout conventions used in this book, and “Where to Find Documentation” (page 124), which points out both local and remote sources of Linux and Ubuntu documentation.
  • 42. xlii Preface using bash, with the discussion enhanced by extensive examples. Details of setting up and using clients and servers are reserved until Part V. Part IV Part IV covers system administration. Chapter 12 discusses core concepts such as the use of sudo, working with root privileges, system operation, chroot jails, TCP wrappers, general information about how to set up a server, DHCP, and PAM. Chapter 13 explains the Linux filesystem, going into detail about types of files, including special and device files; the use of fsck to verify the integrity of and repair filesystems; and the use of tune2fs to change filesystem parameters. Chapter 14 explains how to keep a system up-to-date by downloading software from the Inter- net and installing it, including examples of using APT programs such as aptitude, apt-get, and apt-cache. It also covers the dpkg software packaging system and the use of some dpkg utilities. Finally, it explains how to use BitTorrent from the com- mand line to download files. Chapter 15 explains how to set up the CUPS printing system so you can print on both local and remote systems. Chapter 16 details cus- tomizing and building a Linux kernel. Chapter 17 covers additional administration tasks, including setting up user accounts, backing up files, scheduling automated tasks, tracking disk usage, and solving general problems. Chapter 18 explains how to set up a local area network (LAN), including both hardware (including wireless) and software configuration. Part V Part V goes into detail about setting up and running servers and connecting to them with clients. Where appropriate, these chapters include JumpStart sections that get you off to a quick start in using clients and setting up servers. The chapters in Part V cover the following clients/servers: • OpenSSH Set up an OpenSSH server and use ssh, scp, and sftp to com- municate securely over the Internet. • FTP Set up a vsftpd secure FTP server and use any of several FTP clients to exchange files with the server. • Mail Configure exim4 and use Webmail, POP3, or IMAP to retrieve email; use SpamAssassin to combat spam. • NIS Set up NIS to facilitate system administration of a LAN. • NFS Share filesystems between systems on a network. • Samba Share filesystems and printers between Windows and Linux systems. • DNS/BIND Set up a domain nameserver to let other systems on the Internet know the names and IP addresses of local systems they may need to contact. • firestarter and iptables Share a single Internet connection between systems on a LAN, run a DHCP server, and set up a firewall to protect local systems. • Apache Set up an HTTP server that serves Web pages that browsers can display. This chapter includes many suggestions for increasing Apache security.
  • 43. Thanks xliii Part VI Part VI includes appendixes on regular expressions, helpful Web sites, system secu- rity, and free software. This part also includes an extensive glossary with more than 500 entries plus a comprehensive index. Supplements The author’s home page (www.sobell.com) contains downloadable listings of the longer programs from this book as well as pointers to many interesting and useful Linux sites on the World Wide Web, a list of corrections to the book, answers to even- numbered exercises, and a solicitation for corrections, comments, and suggestions. Thanks First and foremost, I want to thank Mark L. Taub, Editor-in-Chief, Prentice Hall, who provided encouragement and support through the hard parts of this project. Mark is unique in my 25 years of book writing experience: an editor who works with the tools I write about. Because Mark runs Ubuntu on his home computer, we shared experiences as I wrote this book. Mark, your comments and direction are invaluable; this book would not exist without your help. Thank you, Mark T. Molly Sharp of ContentWorks worked with me day-by-day during production of this book providing help, listening to my rants, and keeping everything on track. Thanks to Jill Hobbs, Copyeditor, who made the book readable, understandable, and consistent; and Linda Seifert, Proofreader, who made each page sparkle. Thanks also to the folks at Prentice Hall who helped bring this book to life, espe- cially Julie Nahil, Full-Service Production Manager, who oversaw production of the book; John Fuller, Managing Editor, who kept the large view in check; Marie McKinley, Marketing Manager; Noreen Regina, Editorial Assistant, who attended to the many details involved in publishing this book, including keeping the review team on schedule (no small task); Heather Fox, Publicist; Dan Scherf, Media Developer; Sandra Schroeder, Design Manager; Chuti Prasertsith, Cover Designer; and everyone else who worked behind the scenes to make this book come into being. I am also indebted to Denis Howe, Editor of The Free On-line Dictionary of Com- puting (FOLDOC). Denis has graciously permitted me to use entries from his compilation. Be sure to look at this dictionary (www.foldoc.org). A big “thank you” to the folks who read through the drafts of the book and made comments that caused me to refocus parts of the book where things were not clear or were left out altogether: David Chisnall, Swansea University; Scott Mann, Aztek Networks; Matthew Miller, Senior Systems Analyst/Administrator, BU Linux Project, Boston University Office of Information Technology; George
  • 44. xliv Preface Vish II, Senior Education Consultant, Hewlett-Packard; Thomas Achtemichuk, Mansueto Ventures; John Dong, Ubuntu Forum Council Member/Backports Team Leader; Scott James Remnant, Ubuntu Development Manager and Desktop Team Leader; Daniel R. Arfsten, Pro/Engineer Drafter/Designer; Chris Cooper, Senior Education Consultant, Hewlett-Packard Education Services; Sameer Verma, Associate Professor of Information Systems, San Francisco State Univer- sity; Valerie Chau, Palomar College and Programmers Guild; James Kratzer; Sean McAllister; Nathan Eckenrode, New York Ubuntu Local Community Team; Christer Edwards; Nicolas Merline; and Michael Price. Thanks also to the following people who helped with my previous Linux books, which provided a foundation for this book: Chris Karr, Northwestern University; Jesse Keating, Fedora Project; Carsten Pfeiffer, Software Engineer and KDE Devel- oper; Aaron Weber, Ximian; Cristof Falk, Software Developer at CritterDesign; Steve Elgersma, Computer Science Department, Princeton University; Scott Dier, University of Minnesota; Robert Haskins, Computer Net Works; Lars Kellogg- Stedman, Harvard University; Jim A. Lola, Principal Systems Consultant, Priva- teer Systems; Eric S. Raymond, Cofounder, Open Source Initiative; Scott Mann; Randall Lechlitner, Independent Computer Consultant; Jason Wertz, Computer Science Instructor, Montgomery County Community College; Justin Howell, Solano Community College; Ed Sawicki, The Accelerated Learning Center; David Mercer; Jeffrey Bianchine, Advocate, Author, Journalist; John Kennedy; and Jim Dennis, Starshine Technical Services. Thanks also to Dustin Puryear, Puryear Information Technology; Gabor Liptak, Independent Consultant; Bart Schaefer, Chief Technical Officer, iPost; Michael J. Jordan, Web Developer, Linux Online; Steven Gibson, Owner, SuperAnt.com; John Viega, Founder and Chief Scientist, Secure Software; K. Rachael Treu, Internet Security Analyst, Global Crossing; Kara Pritchard, K & S Pritchard Enterprises; Glen Wiley, Capital One Finances; Karel Baloun, Senior Software Engineer, Look- smart; Matthew Whitworth; Dameon D. Welch-Abernathy, Nokia Systems; Josh Simon, Consultant; Stan Isaacs; and Dr. Eric H. Herrin II, Vice President, Herrin Software Development. And thanks to Doug Hughes, long-time system designer and administrator, who gave me a big hand with the sections on system administra- tion, networks, the Internet, and programming. More thanks go to consultants Lorraine Callahan and Steve Wampler; Ronald Hiller, Graburn Technology; Charles A. Plater, Wayne State University; Bob Palowoda; Tom Bialaski, Sun Microsystems; Roger Hartmuller, TIS Labs at Net- work Associates; Kaowen Liu; Andy Spitzer; Rik Schneider; Jesse St. Laurent; Steve Bellenot; Ray W. Hiltbrand; Jennifer Witham; Gert-Jan Hagenaars; and Casper Dik. A Practical Guide to Ubuntu Linux® is based in part on two of my previous UNIX books: UNIX System V: A Practical Guide and A Practical Guide to the UNIX Sys- tem. Many people helped me with those books, and thanks here go to Pat Parseghian; Dr. Kathleen Hemenway; Brian LaRose; Byron A. Jeff, Clark Atlanta University; Charles Stross; Jeff Gitlin, Lucent Technologies; Kurt Hockenbury; Maury Bach, Intel
  • 45. Thanks xlv Israel; Peter H. Salus; Rahul Dave, University of Pennsylvania; Sean Walton, Intelligent Algorithmic Solutions; Tim Segall, Computer Sciences Corporation; Behrouz Forouzan, DeAnza College; Mike Keenan, Virginia Polytechnic Institute and State University; Mike Johnson, Oregon State University; Jandelyn Plane, University of Maryland; Arnold Robbins and Sathis Menon, Georgia Institute of Technology; Cliff Shaffer, Vir- ginia Polytechnic Institute and State University; and Steven Stepanek, California State University, Northridge, for reviewing the book. I continue to be grateful to the many people who helped with the early editions of my UNIX books. Special thanks are due to Roger Sippl, Laura King, and Roy Harrington for introducing me to the UNIX system. My mother, Dr. Helen Sobell, provided invaluable comments on the original manuscript at several junctures. Also, thanks go to Isaac Rabinovitch, Professor Raphael Finkel, Professor Randolph Bentson, Bob Greenberg, Professor Udo Pooch, Judy Ross, Dr. Robert Veroff, Dr. Mike Denny, Joe DiMartino, Dr. John Mashey, Diane Schulz, Robert Jung, Charles Whitaker, Don Cragun, Brian Dougherty, Dr. Robert Fish, Guy Harris, Ping Liao, Gary Lindgren, Dr. Jarrett Rosenberg, Dr. Peter Smith, Bill Weber, Mike Bianchi, Scooter Morris, Clarke Echols, Oliver Grillmeyer, Dr. David Korn, Dr. Scott Weikart, and Dr. Richard Curtis. Finally, thanks to Peter and his family for providing nourishment and a very com- fortable place to work. I spent many hours reading the manuscript at JumpStart, Peter’s neighborhood coffee and sandwich shop. If you are in the neighborhood (24th & Guerrero in San Francisco), stop by and say “Hi.” I take responsibility for any errors and omissions in this book. If you find one or just have a comment, let me know (mgs@sobell.com) and I will fix it in the next printing. My home page (www.sobell.com) contains a list of errors and credits those who found them. It also offers copies of the longer scripts from the book and point- ers to interesting Linux pages on the Internet. Mark G. Sobell San Francisco, California
  • 47. 1 1 1 Chapter1 The Linux kernel was developed by Finnish undergraduate student Linus Torvalds, who used the Internet to make the source code immediately available to others for free. Torvalds released Linux version 0.01 in September 1991. The new operating system came together through a lot of hard work. Programmers around the world were quick to extend the kernel and develop other tools, adding functionality to match that already found in both BSD UNIX and System V UNIX (SVR4) as well as new functionality. The Linux operating system, which was developed through the cooperation of many, many people around the world, is a product of the Internet and is a free operating system. In other words, all the source code is free. You are free to study it, redistribute it, and modify it. As a result, the code is available free of cost—no charge for the software, source, documenta- tion, or support (via newsgroups, mailing lists, and other In This Chapter The GNU–Linux Connection . . . . . . . 2 The Linux 2.6 Kernel . . . . . . . . . . . . . 5 The Heritage of Linux: UNIX . . . . . . . 5 What Is So Good About Linux?. . . . . 6 Overview of Linux . . . . . . . . . . . . . . 10 Additional Features of Linux. . . . . . 15 Conventions Used in This Book . . . 17 1 Welcome to Linux
  • 48. 2 Chapter 1 Welcome to Linux Internet resources). As the GNU Free Software Definition (reproduced in Appendix D) puts it: Free beer “Free software” is a matter of liberty, not price. To understand the concept, you should think of “free” as in “free speech,” not as in “free beer.” The GNU–Linux Connection An operating system is the low-level software that schedules tasks, allocates storage, and handles the interfaces to peripheral hardware, such as printers, disk drives, the screen, keyboard, and mouse. An operating system has two main parts: the kernel and the system programs. The kernel allocates machine resources—including mem- ory, disk space, and CPU (page 1031) cycles—to all other programs that run on the computer. The system programs perform higher-level housekeeping tasks, often act- ing as servers in a client/server relationship. Linux is the name of the kernel that Linus Torvalds presented to the world in 1991 and that many others have worked on since then to enhance, stabilize, expand, and make more secure. The History of GNU–Linux This section presents some background on the relationship between GNU and Linux. Fade to 1983 Richard Stallman (www.stallman.org) announced1 the GNU Project for creating an operating system, both kernel and system programs, and presented the GNU Mani- festo,2 which begins as follows: GNU, which stands for Gnu’s Not UNIX, is the name for the com- plete UNIX-compatible software system which I am writing so that I can give it away free to everyone who can use it. Some years later, Stallman added a footnote to the preceding sentence when he realized that it was creating confusion: The wording here was careless. The intention was that nobody would have to pay for *permission* to use the GNU system. But the words don’t make this clear, and people often interpret them as saying that copies of GNU should always be distributed at little or no charge. That was never the intent; later on, the manifesto men- tions the possibility of companies providing the service of distribu- tion for a profit. Subsequently I have learned to distinguish 1. www.gnu.org/gnu/initial-announcement.html 2. www.gnu.org/gnu/manifesto.html
  • 49. The GNU–Linux Connection 3 carefully between “free” in the sense of freedom and “free” in the sense of price. Free software is software that users have the free- dom to distribute and change. Some users may obtain copies at no charge, while others pay to obtain copies—and if the funds help support improving the software, so much the better. The important thing is that everyone who has a copy has the freedom to cooperate with others in using it. In the manifesto, after explaining a little about the project and what has been accomplished so far, Stallman continues: Why I Must Write GNU I consider that the golden rule requires that if I like a program I must share it with other people who like it. Software sellers want to divide the users and conquer them, making each user agree not to share with others. I refuse to break solidarity with other users in this way. I cannot in good conscience sign a nondisclosure agree- ment or a software license agreement. For years I worked within the Artificial Intelligence Lab to resist such tendencies and other inhospitalities, but eventually they had gone too far: I could not remain in an institution where such things are done for me against my will. So that I can continue to use computers without dishonor, I have decided to put together a sufficient body of free software so that I will be able to get along without any software that is not free. I have resigned from the AI Lab to deny MIT any legal excuse to prevent me from giving GNU away. Next Scene, 1991 The GNU Project has moved well along toward its goal. Much of the GNU operat- ing system, except for the kernel, is complete. Richard Stallman later writes: By the early ’90s we had put together the whole system aside from the kernel (and we were also working on a kernel, the GNU Hurd,3 which runs on top of Mach4 ). Developing this kernel has been a lot harder than we expected, and we are still working on finishing it.5 ...[M]any believe that once Linus Torvalds finished writing the ker- nel, his friends looked around for other free software, and for no particular reason most everything necessary to make a UNIX-like system was already available. 3. www.gnu.org/software/hurd/hurd.html 4. www.gnu.org/software/hurd/gnumach.html 5. www.gnu.org/software/hurd/hurd-and-linux.html
  • 50. 4 Chapter 1 Welcome to Linux What they found was no accident—it was the GNU system. The available free software6 added up to a complete system because the GNU Project had been working since 1984 to make one. The GNU Manifesto had set forth the goal of developing a free UNIX-like system, called GNU. The Initial Announcement of the GNU Project also outlines some of the original plans for the GNU sys- tem. By the time Linux was written, the [GNU] system was almost finished.7 Today the GNU “operating system” runs on top of the FreeBSD (www.freebsd.org) and NetBSD (www.netbsd.org) kernels with complete Linux binary compatibility and on top of Hurd pre-releases and Darwin (developer.apple.com/opensource) without this compatibility. The Code Is Free The tradition of free software dates back to the days when UNIX was released to universities at nominal cost, which contributed to its portability and success. This tradition died as UNIX was commercialized and manufacturers regarded the source code as proprietary, making it effectively unavailable. Another problem with the commercial versions of UNIX related to their complexity. As each manufacturer tuned UNIX for a specific architecture, it became less portable and too unwieldy for teaching and experimentation. MINIX Two professors created their own stripped-down UNIX look-alikes for educational purposes: Doug Comer created XINU and Andrew Tanenbaum created MINIX. Linus Torvalds created Linux to counteract the shortcomings in MINIX. Every time there was a choice between code simplicity and efficiency/features, Tanenbaum chose simplicity (to make it easy to teach with MINIX), which meant this system lacked many features people wanted. Linux goes in the opposite direction. You can obtain Linux at no cost over the Internet (page 37). You can also obtain the GNU code via the U.S. mail at a modest cost for materials and shipping. You can support the Free Software Foundation (www.fsf.org) by buying the same (GNU) code in higher-priced packages, and you can buy commercial packaged releases of Linux (called distributions), such as Ubuntu Linux, that include installa- tion instructions, software, and support. GPL Linux and GNU software are distributed under the terms of the GNU General Pub- lic License (GPL, www.gnu.org/licenses/licenses.html). The GPL says you have the right to copy, modify, and redistribute the code covered by the agreement. When you redistribute the code, however, you must also distribute the same license with the code, thereby making the code and the license inseparable. If you get source code off the Internet for an accounting program that is under the GPL and then 6. See Appendix D or www.gnu.org/philosophy/free-sw.html. 7. www.gnu.org/gnu/linux-and-gnu.html
  • 51. The Heritage of Linux: UNIX 5 modify that code and redistribute an executable version of the program, you must also distribute the modified source code and the GPL agreement with it. Because this arrangement is the reverse of the way a normal copyright works (it gives rights instead of limiting them), it has been termed a copyleft. (This paragraph is not a legal interpretation of the GPL; it is intended merely to give you an idea of how it works. Refer to the GPL itself when you want to make use of it.) Have Fun! Two key words for Linux are “Have Fun!” These words pop up in prompts and doc- umentation. The UNIX—now Linux—culture is steeped in humor that can be seen throughout the system. For example, less is more—GNU has replaced the UNIX paging utility named more with an improved utility named less. The utility to view PostScript documents is named ghostscript, and one of several replacements for the vi editor is named elvis. While machines with Intel processors have “Intel Inside” logos on their outside, some Linux machines sport “Linux Inside” logos. And Torvalds himself has been seen wearing a T-shirt bearing a “Linus Inside” logo. The Linux 2.6 Kernel The Linux 2.6 kernel was released on December 17, 2003. This kernel has many features that offer increased security and speed. Some of these features benefit end users directly; others help developers produce better code and find problems more quickly. See Appendix E for a description of the features introduced in the Linux 2.6 kernel. The Heritage of Linux: UNIX The UNIX system was developed by researchers who needed a set of modern com- puting tools to help them with their projects. The system allowed a group of people working together on a project to share selected data and programs while keeping other information private. Universities and colleges played a major role in furthering the popularity of the UNIX operating system through the “four-year effect.” When the UNIX operating system became widely available in 1975, Bell Labs offered it to educational institu- tions at nominal cost. The schools, in turn, used it in their computer science pro- grams, ensuring that computer science students became familiar with it. Because UNIX was such an advanced development system, the students became acclimated to a sophisticated programming environment. As these students graduated and went into industry, they expected to work in a similarly advanced environment. As more of them worked their way up the ladder in the commercial world, the UNIX operat- ing system found its way into industry.
  • 52. 6 Chapter 1 Welcome to Linux In addition to introducing students to the UNIX operating system, the Computer Systems Research Group (CSRG) at the University of California at Berkeley made significant additions and changes to it. In fact, it made so many popular changes that one version of the system is called the Berkeley Software Distribution (BSD) of the UNIX system (or just Berkeley UNIX). The other major version is UNIX System V (SVR4), which descended from versions developed and maintained by AT&T and UNIX System Laboratories. What Is So Good About Linux? In recent years Linux has emerged as a powerful and innovative UNIX work-alike. Its popularity is surpassing that of its UNIX predecessors. Although it mimics UNIX in many ways, the Linux operating system departs from UNIX in several significant ways: The Linux kernel is implemented independently of both BSD and System V, the continuing development of Linux is taking place through the combined efforts of many capable individuals throughout the world, and Linux puts the power of UNIX within easy reach of both business and personal computer users. Using the Internet, today’s skilled programmers submit additions and improvements to the operating system to Linus Torvalds, GNU, or one of the other authors of Linux. Applications A rich selection of applications is available for Linux—both free and commercial— as well as a wide variety of tools: graphical, word processing, networking, security, administration, Web server, and many others. Large software companies have recently seen the benefit in supporting Linux and now have on-staff programmers whose job it is to design and code the Linux kernel, GNU, KDE, or other software that runs on Linux. For example, IBM (www.ibm.com/linux) is a major Linux sup- porter. Linux conforms increasingly more closely to POSIX standards, and some distributions and parts of others meet this standard. (See “Standards” on page 9.) These developments indicate that Linux is becoming more mainstream and is respected as an attractive alternative to other popular operating systems. Peripherals Another aspect of Linux that appeals to users is the amazing range of peripherals that is supported and the speed with which support for new peripherals emerges. Linux often supports a peripheral or interface card before any company does. Unfortunately some types of peripherals—particularly proprietary graphics cards—lag in their support because the manufacturers do not release specifications or source code for drivers in a timely manner, if at all. Software Also important to users is the amount of software that is available—not just source code (which needs to be compiled) but also prebuilt binaries that are easy to install and ready to run. These include more than free software. Netscape, for example, has been available for Linux from the start and included Java support before it was available from many commercial vendors. Now its sibling Mozilla/Thunderbird/ Firefox is also a viable browser, mail client, and newsreader, performing many other functions as well.
  • 53. What Is So Good About Linux? 7 Platforms Linux is not just for Intel-based platforms: It has been ported to and runs on the Power PC—including Apple computers (ppclinux), Compaq’s (née Digital Equipment Corpo- ration) Alpha-based machines, MIPS-based machines, Motorola’s 68K-based machines, various 64-bit systems, and IBM’s S/390. Nor is Linux just for single-processor machines: As of version 2.0, it runs on multiple-processor machines (SMPs). It also includes an O(1) scheduler, which dramatically increases scalability on SMP systems. Emulators Linux supports programs, called emulators, that run code intended for other operat- ing systems. By using emulators you can run some DOS, Windows, and Macintosh programs under Linux. For example, Wine (www.winehq.com) is an open-source implementation of the Windows API on top of the X Window System and UNIX/Linux; QEMU (fabrice.bellard.free.fr/qemu) is a CPU-only emulator that executes x86 Linux binaries on non-x86 Linux systems. Xen Xen, which was created at the University of Cambridge and is now being developed in the open-source community, is an open-source virtual machine monitor (VMM). A VMM enables several virtual machines (VMs), each running an instance of a separate operating system, to run on a single computer. Xen isolates the VMs so that if one crashes it does not affect the others. In addition, Xen introduces minimal performance overhead when compared with running each of the operating systems natively. Using VMs, you can experiment with cutting-edge releases of operating systems and applications without concern for the base (stable) system, all on a single machine. You can also set up and test networks of systems on a single machine. Xen presents a sandbox, an area (system) that you can work in without regard for the results of your work or for the need to clean up. The Gutsy release of Ubuntu supports Xen 3.1. This book does not cover the installation or use of Xen. See help.ubuntu.com/community/Xen for information on running Xen under Ubuntu. For more information on Xen, refer to the wiki at wiki.xensource.com/xenwiki and the Xen home page at www.cl.cam.ac.uk/research/srg/netos/xen. KVM and VirtualBox If you want to run a virtual instance of Windows, you may want to investigate KVM (Kernel Virtual Machine, help.ubuntu.com/community/KVM) and VirtualBox (www.virtualbox.org). Why Linux Is Popular with Hardware Companies and Developers Two trends in the computer industry set the stage for the growing popularity of UNIX and Linux. First, advances in hardware technology created the need for an operating system that could take advantage of available hardware power. In the mid-1970s, minicomputers began challenging the large mainframe computers because, in many applications, minicomputers could perform the same functions less expensively. More recently, powerful 64-bit processor chips, plentiful and inex- pensive memory, and lower-priced hard disk storage have allowed hardware com- panies to install multiuser operating systems on desktop computers.
  • 54. 8 Chapter 1 Welcome to Linux Proprietary operating systems Second, with the cost of hardware continually dropping, hardware manufacturers could no longer afford to develop and support proprietary operating systems. A proprietary operating system is one that is written and owned by the manufacturer of the hardware (for example, DEC/Compaq owns VMS). Today’s manufacturers need a generic operating system that they can easily adapt to their machines. Generic operating systems A generic operating system is written outside of the company manufacturing the hardware and is sold (UNIX, Windows) or given (Linux) to the manufacturer. Linux is a generic operating system because it runs on different types of hardware produced by different manufacturers. Of course, if manufacturers can pay only for development and avoid per-unit costs (as they have to pay to Microsoft for each copy of Windows they sell), manufacturers are much better off. In turn, software developers need to keep the prices of their products down; they cannot afford to convert their products to run under many different proprietary operating systems. Like hardware manufacturers, software developers need a generic operating system. Although the UNIX system once met the needs of hardware companies and researchers for a generic operating system, over time it has become more propri- etary as manufacturers added support for their own specialized features and intro- duced new software libraries and utilities. Linux emerged to serve both needs: It is a generic operating system that takes advantage of available hardware power. Linux Is Portable A portable operating system is one that can run on many different machines. More than 95 percent of the Linux operating system is written in the C programming lan- guage, and C is portable because it is written in a higher-level, machine-independent language. (The C compiler is written in C.) Because Linux is portable, it can be adapted (ported) to different machines and can meet special requirements. For example, Linux is used in embedded computers, such as the ones found in cellphones, PDAs, and the cable boxes on top of many TVs. The file structure takes full advantage of large, fast hard disks. Equally impor- tant, Linux was originally designed as a multiuser operating system—it was not modified to serve several users as an afterthought. Sharing the computer’s power among many users and giving them the ability to share data and programs are cen- tral features of the system. Because it is adaptable and takes advantage of available hardware, Linux runs on many different microprocessor-based systems as well as mainframes. The popularity of the microprocessor-based hardware drives Linux; these microcomputers are get- ting faster all the time, at about the same price point. Linux on a fast microcom- puter has become good enough to displace workstations on many desktops. Linux benefits both users, who do not like having to learn a new operating system for each vendor’s hardware, and system administrators, who like having a consistent soft- ware environment.
  • 55. Another Random Scribd Document with Unrelated Content
  • 56. rolls and coffee, remained untouched. He suddenly stood up and said: "Aunt Seréna!" "What is it, my boy?" "I want to go!" Aunt Seréna threw back her head, that she might give him a good look through her spectacles. Her face took on a very grieved expression. At last, after a long pause, she asked, in her gentle voice, "What do you mean?" "I want to go away. I cannot stand it. I want to be with my friend." "Do you think he will take better care of you than I do, Johannes?" "I do not believe that, Aunt Seréna, but he is being treated unfairly. He is in the right." "I will not take it upon myself...." said Aunt Seréna, hesitating, "to say that he is wrong. I am not clever enough for that. I am only an old woman, and have not studied much, although I have thought and experienced a great deal. I will readily admit that perhaps I was at fault without knowing it. I did my best, to the best of my belief. But how many there are, better than I am, Johannes, who think your friend in the wrong!" "Are they also better than he is?" asked Johannes. "Who can say? How long have you known this friend—and whom of the people have you known besides? But although your friend were right, how would it help me, and what would it matter to me? Must I, in my sixty-fourth year, give away all that I have, and go out house-cleaning? Do you mean that I ought to do that, Johannes?" Johannes was perplexed. "I do not say that, dear Aunt Seréna."
  • 57. "But, what do you say, then? And what do you want of me?" Johannes was silent. "You see, Johannes...." continued Aunt Seréna, with a break in her voice—not looking at him now, but staring hard at her coffee-tray —"I never have had any children, and all the people whom I have been very fond of are either dead or gone away. My friends do, indeed, show me much cordiality. On my birthday I had forty-four calls, two hundred and eleven cards and notes, and about fifty presents; but that, however, is not for me true life. The life of the old is so barren if no young are growing near. I have not complained about it, and have submitted to God's will. But since ... for a few months ... you ... I thought it a blessing—a dispensation from God...." Aunt Seréna's voice grew so broken and hoarse that she stopped speaking, and began to rummage in her work-basket. Johannes felt very tenderly toward her, but it seemed to him as if, in two seconds, he had become much older and wiser; yes, as if he had even grown, visibly, and was taller than a moment before. Never yet had he spoken with such dignity. "My dear Aunt, I really am not ungrateful. I think you are good. More than almost any other you have been kind to me. But yet I must go. My conscience tells me so. I would be willing to stay, you see; but still I am going because it is best. If you say, 'You must not,' then I cannot help it; I think, though, that I will quietly run away. I am truly sorry to cause you sadness, but you will soon hear of an—another boy, or a girl, who will make you happier. I must find my friend—my conscience tells me so. Are you going to say, Aunt Seréna, that I must not?" Aunt Seréna had taken out her worsted work, and appeared to be comparing colors. Then, very slowly, she replied:
  • 58. "No, I shall not say that, my dear boy; at least, if you have thought it all over well." "I have, Aunt Seréna," said Johannes. Being deeply anxious, he wished to go instantly to learn where Markus had been taken. After that he would return to "Vrede-best." He mounted the stone steps of the police station with dread and distaste. The officers, who were sitting outside on chairs, received him, according to their wont, with scant courtesy. The chief eyed Johannes, after the latter's bashful inquiry, with a scornful expression, which seemed to say: "What business is it of yours, and where have I seen you before?" Johannes learned, however, that "the prisoner" had been set free. What use he had made of his freedom Johannes must find out for himself. As he could give no other reason for his interest in the prisoner than that he was his friend, and as this reason was not enough to exalt him in the esteem of police authority, none of the functionaries felt called upon to put him on the track. They supposed that the scissors-grinder had very likely gone back to the Fair. That was all the help they gave. Johannes returned to his aunt's baffled and in dismay. There, happily, he found relief; for the good aunt had already discovered that Markus had been led out of the town, and that, with his cart, he had taken the road to Utrecht. Already, lying in plain sight, he saw a large, old-fashioned satchel of hairy leather (a sort of bag which could be hung about one), full of neatly packed sandwiches and hard-boiled eggs. And in the inside of a waistcoat Aunt Seréna had sewed a small pocket. Within that pocket was a purse containing five little gold-pieces.
  • 59. "I do not give you more, Johannes, for by the time this is gone you will surely know if you really wish to stay away for good or to come back again. Do not be ashamed to return. I will not say anything to you about it." "I will be honest, and give it back to you when I have earned it," said Johannes. He spoke in sober earnest; but he had, no more than had his aunt, any clear expectation that it would be possible. Johannes took just a run into the garden to say good-by to his favorite places—his paths and his flowers. Swiftly and shyly, so as not to be seen, he ran past the kitchen where Daatje, loudly singing hymns the while, stood chopping spinach. After that, he embraced Aunt Seréna in the vestibule for the first and for the last time. "Cuckoo! Cuckoo!" came insultingly and triumphantly from the little trap-door, as the clock struck two. Then the stately green front door closed between him and Aunt Seréna. That was a painful moment; yet there quickly followed in Johannes' heart a delightful glow—a feeling of freedom such as he had never yet known. He almost felt himself a man. He had extricated himself from soft and perilous ways; he was going out into the wide world; he would find his beloved brother again; he had a bagful of rolls, and in his waistcoat were five gold-pieces. These last were only lent to him; he would earn as much, and give them back again. It was a still, humid, August day, and Johannes, full of gladness, saw his beautiful native land lying in white light under a canopy of delicate grey. He saw thickly wooded dikes, black and white cattle, and brown boats in water without a ripple. He walked briskly, inquiring everywhere for Markus the scissors-grinder. In front of an inn, not far from the city, sat three little gentlemen. They were apparently government or post-office clerks, who had taken their midday stroll and their glass of bitters.
  • 60. Johannes asked information of the waiter who brought drinks, but received no answer. One of the little dandies, who had heard his question, said to his companions: "Jerusalem! but did you chaps hear that kicker? The fellow went into the new church yesterday morning, and talked back at the dominie." "What fellow?" asked the others. "Good Lord! Don't you know him? That half-luny fellow with the black curly-pate? He does that now and then." "Gee! That's rich. And what did the dominie say?" "Well, he found it no joke, for the fellow knew all about it—as darned well as he did himself. But the gypsy had his trouble for his pains; for that time the dominie wouldn't have anything to do with such a dirty competitor!" And the three friends laughed at the top of their voices. "How did it end?" "He had him walked clean out of the church, by the sexton and two cops." "That's confounded silly. 'Twould have been better to see who could crow the loudest. It's the loudest cock that wins." "The idea! You'd have me believe you mean it? Suppose they gave the prize to the wrong fellow?" "Whether you are cheated by a fool of a preacher, or by a scissors- grinder, what's the difference?" Johannes reflected a moment and wondered if it would not be commendable to do what he ached to do—fly at these people and
  • 61. rain blows upon their heads. But he controlled himself and passed on, convinced that in doing so he was escaping some hard work. For five hours he walked on without being much the wiser for his inquiries. Some people thought they had seen Markus; others knew positively nothing about him. Johannes began to fear he had passed him; for by this time he ought to have overtaken him. It began to grow dark, and before him lay a wide river which he must cross by means of a ferry-boat. On the farther side were hills covered with an underwood of oak, and tall, purple-flowered heather. The ferryman was positive that he had not that day taken over a scissors-grinder; but in yonder town, an hour's distance from the river, a Fair was to begin in the morning. Very likely Markus also would be there. Johannes sat down by the roadside in the midst of the dark broom, with its millions of small purple flowers. The setting sun cast a glorious coloring over land and mist, and over the lustrous, flowing water. He was tired but not depressed, and he ate his bread contentedly, certain that he should find Markus. The road had become quiet and lonely. It was fun to be so free—so alone and independent—at home in the open country. Rather than anywhere else he should like to sleep out-of-doors—in the underwood. But just as he was about to lay himself down, he saw the figure of a man with his hands in his pockets, and his cap pushed back. Johannes sat up, and waited until he came closer. Then he recognized him. "Good evening, Director!" said Johannes. "Good evening to you, my friend!" returned the other. "What are you doing here? Are you lost?"
  • 62. "No; I am looking for friends. Is Markus with you?" The man was the director of a Flea-Theatre; a little fellow, with a husky voice, and eyes inflamed by his fine work. "Markus? I'm not sure. But come along—there's no knowing but he might be there." "Are you looking for new apprentices?" asked Johannes. "Do you happen to have any? They're worth a pretty penny, you know!" They walked together to the camp of gypsy wagons, near the town. Johannes found there all the old acquaintances. There was the fat lady, who could rest a plate upon her bosom and thus eat out of it. Now, however, she was eating simply from a box, like the others, because there were no spectators. There were the mother and daughter who represented the living mermaid, taking turns because one could not hold out very long. There was the exhibitor of the collection of curiosities —a poor, humpbacked knave whose entire possessions consisted of a stuffed alligator, a walrus-tooth, and a seven-months baby preserved in alcohol. There were the two wild men, who, growling horribly, could eat grass and live rabbits, and who might come out of the wagon only at night, when the street boys were away; but who, far from savage now, were sitting in the light of a flickering lantern, "shaving" one another with exceedingly dirty cards. The flea-tamer brought Johannes at last to Marjon's wagon. "Bless me!" cried Lorum, who seemed to be in a good humor as he sat by the road smoking his pipe. "Here is our runaway young gentleman again! Now the girls will be glad!"
  • 63. From behind the wagon came the soft tones of a voice, singing to a zither accompaniment. Johannes could hear the song distinctly, in the dreamlike stillness of the hour. It was sung in a whining, melancholy, street-organ style, but with unusual emotion: "They have broken my heart— Ah, the tears I have shed! They have torn us apart— His dear voice is now dead. Alas! Alas! How could you forsake me? Alas! Alas! How you have deceived me!" It was a ditty that Johannes thought he had often heard the nurse- maids sing. But, because he recognized that dear voice, and perhaps even because he was worried over the applicability to himself, he was greatly touched by it. "Hey, there!" cried Lorum to one behind him. "The kid has come back! Stop your squalling!" Then Marjon appeared from behind the wagon, and ran up to Johannes. Also, the door of the wagon flew back, and Johannes saw Marjon's sister standing in the bright opening. Her fat arms were bare, and she was in her night-gown. XI Since that first night in the dunes with Windekind, Johannes had slept many a time in the open air, and he did not see why he should not now do so. He would lie down under the wagon, upon some hay. He was tired, and so would sleep well.
  • 64. But sleep did not come to him very promptly. Adventures in the world of people proved to be even more exciting than those in Windekind's land of elves. He was full of the important and unusual situation in which he was placed; the strange human life that surrounded him claimed his attention. Above him, feet were shuffling over the wagon floor, and he could see the people crawling around one another inside the warm, dirty wagons. He was obliged to listen to the talking, singing, laughing and quarreling that frequently broke out here and there. A solitary ocarina continued to whistle awhile; then all was still. It grew cold. He had with him only a thin cloak of Aunt Seréna's; and, as a horse-blanket could not be spared, he found a couple of empty oat-bags; but they were too short. When all were asleep, and he was still lying awake, shivering, his spirits already inclined to droop, he heard the door of the wagon open. A voice called him, in a whisper. Johannes scrambled out into sight, and recognized Marjon's dark sister. "Why don't you come in here, Kiddie?" she asked. The truth was that Johannes, above all else, feared the closeness and the fleas. But he would not offer these insulting reasons, so he replied—intending to be very courteous and praiseworthy: "But that would not do for me—to be with you!" Now, formality is not a very strong point in a house-wagon. In the very stateliest, a curtain does indeed sometimes define two sleeping- rooms at night, thus denoting regard for the proprieties. But in most cases the custom is to do as do the birds which change their suits but once a year, and not too much, at that; and as do the mice which also have no separate bedrooms. "Aw! Come, Boy! You're silly. Just come on! It's all right." And when Johannes, perplexed and very bashful, hesitated, he felt a fat, heavy arm around his neck, and a soft, broad, cold mouth upon
  • 65. his cheek. "Come on, Youngster! Don't be afraid. Surely you are not so green! Hey? It's time for me to make you wiser." Now there was nothing Johannes had learned more to value than wisdom, and he never willingly neglected a chance of becoming wiser. But this time there came to him a very clear idea of the existence of an undesirable wisdom. He had no time to deliberate over this wonderful discovery; for, happily, there came to the help of his immature thoughts a very strong feeling of aversion, so that for once he knew betimes what he ought to do. He said loudly, and firmly: "I will not! I rest better here." And he crept back under the wagon. The swarthy jade appeared not to like that, for she uttered an oath as she turned away, and said: "Clear out, then!" Johannes did not take it greatly to heart, although it did appear to him unfair. He slept, however, no more than before; and the sensation of the recent touches, and the wretched odor of poor perfumery which the woman had brought with her, remained with him, to his distress. As soon as it began to grow light, the door of the wagon was again opened. Johannes, surprised, looked up. Marjon came softly out in her bare feet, with an old purple shawl thrown over her thin little shoulders. She went up to Johannes and sat down on the ground beside him. "What did she do?" she asked, in a whisper. "Who?" asked Johannes, in return. But that was from embarrassment, for he well knew whom she meant. "Now, you know well enough. Did you think I was sleeping? Did she give you a kiss?" Johannes nodded.
  • 66. "Where? On your mouth?" "No. On my cheek." "Thank God!" said Marjon. "You will not let her do it again? She is a common thing!" "I could not help it," said Johannes. Marjon looked at him thoughtfully a few moments, with her clear, light grey eyes. "Do you dare steal?" she asked then, abruptly. "No," said Johannes. "I dare to, but it's wrong." "Indeed it isn't!" said Marjon, very emphatically. "Indeed, it is not! It's only a question of who from. Stealing from one another is mean, but from the public is allowable. I must not steal from that woman any more than from Lorum. But you may steal from the huzzy, if you only dared." "Then can you steal from me, too?" asked Johannes. Marjon looked at him in sudden surprise, and gave a pretty laugh, showing her white, even teeth. "A while ago I could, but not now. Now you belong to me. But that woman has a lot of money and you have not." "I have some money, too—fifty guldens. Aunt Seréna gave it to me." Marjon drew in the air with her lips as if sipping something delicious. Her pale face shone with pleasure. "Five little golden Teners! Is it truly so? But, Johannes, then we are well off! We'll have a good time with them. Shan't we?" "To be sure," assented Johannes, recovering himself. "But I want to find Markus."
  • 67. "That's good," said Marjon. "That's the best thing to do. We'll both go looking for him." "Right away?" asked Johannes. "No, you stupid! We should be nabbed in no time. We'll start in the evening. Then, during the night, we can get a good way off. I'll give you the signal." It was morning—clear and cool, yet growing warmer with the early August sunshine. Everywhere over the dark heather the dew- covered cobwebs were shining like clusters of sparkling stars. The fires of the foregoing evening were still smouldering in the camp; and there was a smell of wood coals and of honey. Johannes was well pleased. There was a glowing little flame also within himself. He felt that it was good to be alive, and a joy to strive. It was a long, strange day, but he was patient and happy in the thought of fleeing with Marjon. The dark woman was friendly toward him again. He was helping her in the circus the entire day, and had no chance to speak with Marjon. But now and then they gave each other a look full of complete understanding. That was delightful! Never before in his every-day life had Johannes experienced anything so delightful. That evening there was an exhibition, and Marjon performed her tricks. Johannes felt very proud and important because he belonged to the troupe, and was looked upon by the public as an athlete or an equestrian. He might stand, in topboots and with a whip, at the entrance to the stall, but he must not perform a single trick, nor once crack his whip. When it was good and dark, and everybody was asleep again, Marjon came to summon him. He could scarcely distinguish her figure; but he knew by a soft, grunting sound, that she carried Kees,
  • 68. her monkey, on her arm. She thrust her guitar into Johannes' hand, and said in a low tone: "Move on, now!" They set out hastily and in silence, Marjon taking the lead. First they went by the highway; then they took a footpath along the river; and then, at a ferry, they softly unfastened a small boat, and pushed out into the current. "Keep your wits about you, Jo, and be on the lookout!" "We shall be overtaken," said Johannes, not quite at his ease. "Are you afraid?" "No, not afraid," said Johannes, although the truth was that he was trying not to be; "but where are we going to bring up? And how can we keep out of the way if a boat should come along? We have no oars!" "I wish a boat would come. Then we'd go on with it." "Where do you want to go, Marjon?" "Well, over the frontier, of course. Otherwise they'll catch us. "But Markus!" "We'll find him, by and by—only come on now." In silence the two children drifted out over the still, black water, which here and there bubbled past a floating log, or a barrel. Everything was mysterious. It was pitch dark, and there was no wind. The reeds, even, scarcely sighed. Keesje whined, complainingly, not liking the cold. "But who is Markus, Marjon? Do you know?" "You must not ask that, Jo. You must trust him. I do." Then they heard a dull, fitfully throbbing sound that slowly drew nearer from the distance, and Johannes saw red and white lanterns
  • 69. ahead of them. "A steamboat!" he cried. "What are we going to do now?" "Sing!" said Marjon, without a moment's hesitation. The boat came very gradually, and Johannes saw in the rear of her a long file of little lights, like a train of twinkling stars. It was a steam- tug with a heavy draught of Rhine-boats. It seemed to be panting and toiling with its burden, against the powerful current. They stayed a boat's length away from the tug, but its long, unwieldy train—swinging out in a great curve at the rear—came nearer and nearer. Marjon took her guitar and began to sing, and suddenly, with the sound of lapping water and throbbing engines, the music was ringing out in the still night—exquisite and clear. She sang a well- known German air, but with the following words: "Tho' on dark depths of waters I fear not and am strong, For I know who will guard me And guide me all life long." "Are you tipsy, there, or tired of life? What do you put yourself across the channel for—and without a light?" rang out over the water from one of the vessels. "Help! Throw a line!" cried Marjon. "Help! help!" cried Johannes, after her. Then a rope came wabbling across their oarless craft. By good luck Johannes caught it, and pulled himself, hand over hand, up to the vessel. The helmsman, standing beside the great, high-arched rudder, looked overboard, with a lantern in his hand. "What wedding do you hail from?"
  • 70. Johannes and Marjon climbed into the boat and Marjon pushed off their own little shallop. "Two boys!" exclaimed the helmsman. "And a monkey!" subjoined Marjon. Johannes looked round at her. By the light of the lantern he saw a little figure that he hardly recognized—a slip of a boy wearing a cap on his closely cropped head. She had sacrificed for the flight her silky blonde hair. Keesje's head was sticking up out of her jacket, and he was blinking briskly in the glare of the lantern. "Oh, that's it! Fair-folk!" grumbled the skipper. "What's to become of that boat?" "It knows the way home!" said Marjon. XII I will simply tell you, without delay, in order that you may be able to read what follows in peace of mind, that Johannes and Marjon became husband and wife ere the ending of the story. But at the time the old skipper pointed out to them a comfortable sleeping- corner in the deck-house of the long Rhine-boat, they had not the least idea of it. Being very tired, they were soon lying, like two brothers, in deep sleep, with Keesje, now warm and contented, between them. When it grew light, the whole world seemed to have vanished. Johannes had been wakened by the rattling of the anchor-chains, and when he looked out, he saw on all sides nothing but white, foggy light; no sky, no shore—only, just under the little windows, the yellow river current. But he heard the striking of the town clocks,
  • 71. and even the crowing of cocks. Therefore the world was still there, as fine as ever, only hidden away under a thick white veil. The boats lay still, for they could not be navigated. So long as the waters of the Rhine could not be seen frothing about the anchor- chains, so long must they wait for a chance to know the points of the compass. Thus they remained for hours in the still, thick white light, listening to the muffled sounds of the town coming from the shore. The two children ran back and forth over the long, long vessel, and had a fine time. They had already become good friends of the skipper, especially since he had learned that they could pay for their passage. They ate their bread and sausage, peering into the fog in suspense, for fear that Lorum and the dark woman might be coming in a boat to overtake them. They knew that they could not yet be very far away from their last camping-place. At last the mists grew thinner and thinner, and fled from before the shining face of the sun; and, although the earth still remained hidden beneath swirling white, up above began to appear the glorious blue. And this was the beginning of a fine day for Johannes. Sighing and groaning, as if with great reluctance, the tugboat began again its toilful course up the stream. The still, summer day was warm, the wide expanse of water sparkled in the sun, and on both sides the shores were gliding gently by—their grey-green reeds, and willows and poplars, all fresh and dewy, peeping through the fog. Johannes lay on the deck, gazing at land and water, while Marjon sat beside him. Keesje amused himself with the tackle rope, chuckling with satisfaction every now and then, as he sprang back and forth, with a serious look, after a flitting bird or insect. "Marjon," said Johannes, "how did you know so certainly yesterday that there was nothing to be afraid of?"
  • 72. "Some one watches over me," said Marjon. "Who?" asked Johannes. "Father." Johannes looked at her, and asked, softly: "Do you mean your own father?" But Marjon made a slight movement of her head toward the green earth, the flowing water, the blue sky and the sunshine, and said, with peculiar significance, as if now it was quite clear to her: "No! I mean The Father." "The Father Markus speaks about?" "Yes. Of course," said Marjon. Johannes was silent a while, gazing at the rapid flow of the water, and the slower and slower course of things according to their distance in the rear. His head was full of ideas, each one eager for utterance. But it is delightful to lie thus and view a passing country spread out under the clear light—letting the thoughts come very calmly, and selecting carefully those worthy of being clad in speech. Many are too tender and sensitive to be accorded that honor, but yet they may not be meanest ones. Johannes first selected a stray thought. "Is that your own idea?" he asked. Marjon was not quick with an answer, herself, this time. "My own? No. Markus told me it. But I knew it myself, though. I knew it, but he said it. He drew it out of me. I remember everything he says—everything—even although I don't catch on." "Is there any good in that?" asked Johannes, thoughtlessly. Marjon looked at him disdainfully, and said:
  • 73. "Jimminy! You're just like Kees. He doesn't know either that he can do more with a quarter than with a cent. When I got my first quarter, I didn't catch on, either, but then I noticed that I could get a lot more candy with it than with a cent. Then I knew better what to do. So now I treasure the things Markus has said—all of them." "Do you think as much of him as I do?" asked Johannes. "More," said Marjon. "That cannot be." Then there was another long pause. The boat was not in a hurry, neither was the sun, and the broad stream made even less haste. And so the children, as well, took plenty of time in their talking. "Yes, but you see," Johannes began again, "when people speak of our Father, they mean God, and God is...." What was it again, that Windekind had said about God? The thought came to him, and clothed in the old terms. But Johannes hesitated. The terms were surely not attractive. "What is God, now?" asked Marjon. The old jargon must be used. There was nothing better. "... An oil-lamp, where the flies stick fast." Marjon whistled—a shrill whistle of authority—a circus-command. Keesje, who was sitting on the foremast, thoughtfully inspecting his outstretched hind foot, started up at once, and came sliding down the steel cable, in dutiful haste. "Here, Kees! Attention!" Kees grumbled assent, and was instantly on the alert, for he was well drilled. His sharp little brown eyes scarcely strayed for one second away from the face of his mistress.
  • 74. "The young gentleman here says he knows what God is. Do you know?" Keesje shook his head quickly, showing all his sharp little white teeth in a grin. One would have said he was laughing, but his small eyes peered as seriously as ever from Marjon's mouth to her hand. There was nothing to laugh at. He must pay attention. That was clear. Goodies were bound to follow—or blows. But Marjon laughed loudly. "Here, Kees! Good Kees!" And then he had the dainties, and soon was up on the mast, smacking aloud as he feasted. The result of this affront was quite unexpected to Marjon. Johannes, who had been lying prone on the deck, with his chin in his hands, gazed sadly for a while at the horizon, and then hid his face in his folded arms, his body shaking with sobs. "Stop now, Jo; you're silly! Cry for that!" said Marjon, half frightened, trying to pull his arms away from his face. But Johannes shook his head. "Hush! Let me think," said he. Marjon gave him about a quarter of an hour, and then she spoke, gently and kindly, as if to comfort him: "I know what you wanted to say, dear Jo. That's the reason, too, why I always speak of The Father. I understand that the best; because, you see, I never knew my earthly father, but he must have been much better than other fathers." "Why?" asked Johannes. "Because I am much better than all those people round about me, and better than that common, dark woman who had another father."
  • 75. Marjon said this quite simply, thinking it to be so. She said it in a modest manner, while feeling that it was something which ought to be spoken. "Not that I have been so very good. Oh, no! But yet I have been better than the others, and that was because of the father; for my mother, too, was only a member of a troupe. And now it is so lovely that I can say 'Father' just as Markus does!" Johannes looked at her, with the sadness still in his eyes. "Yes, but all the meanness, the ugliness, and the sorrow that our Father permits! First, He launches us into the world, helpless and ignorant, without telling us anything. And then, when we do wrong because we know no better, we are punished, Is that fatherly?" But Marjon said: "Did you fancy it was not? Kees gets punished, too, so he will learn. And now that he is clever and well taught he gets hardly any blows —only tid-bits. Isn't that so, Kees?" "But, Marjon, did you not tell me how you found Kees—shy, thin, and mangy—his coat all spoiled with hunger and beatings; and how he has remained timid ever since, because a couple of rascally boys had mistreated him?" Marjon nodded, and said: "There are rascals, and deucedly wicked boys, and very likely there is a Devil, also; but I am my Father's child and not afraid of Him, nor what He may do with me." "But if He makes you ill, and lets you be ill-treated? If He lets you do wrong, and then leaves you to cry about it? And if He makes you foolish?" Keesje was coming down from the mast, very softly and deliberately. With his black, dirty little hands he cautiously and hesitatingly
  • 76. touched the boy's clothes that Marjon was wearing. He wanted to go to sleep, and had been used to a soft lap. But his mistress took him up, and hid him in her jacket. Then he yawned contentedly, like a little old man, and closed his pale eyelids in sleep—his little face looking very pious with its eyebrows raised in a saintly arch. Marjon said: "If I should go and ill-treat Keesje, he would make a great fuss about it, but still he would stay with me." "Yes; but he would do the same with a common tramp," said Johannes. Marjon shook her head, doubtfully. "Kees is rather stupid—much more so than you or I, but yet not altogether stupid. He well knows who means to treat him rightly. He knows well that I do not ill-treat him for my own pleasure. And you see, Jo, I know certainly, ever so certainly—that my Father will not ill-treat me without a reason." Johannes pressed her hand, and asked passionately: "How do you know that? How do you know?" Marjon smiled, and gave him a gentle look. "Exactly as I know you to be a good boy—one who does not lie. I can tell that about you in various ways I could not explain—by one thing and another. So, too, I can see that my Father means well by me. By the flowers, the clouds, the sparkling water. Sometimes it makes me cry—it is so plain." Then Johannes remembered how he had once been taught to pray, and his troubled thoughts grew calmer. Yet he could not refrain from asking—because he had been so much with Pluizer: "Why might not that be a cheat?"
  • 77. Suddenly Keesje waked up and looked behind him at Johannes, in a frightened way. "Ah, there you are!" exclaimed Marjon, impatiently. "That's exactly as if you asked why the summer might not perchance be the winter. You can ask that, any time. I know my Father just for the very reason that He does not deceive. If Markus was only here he would give it to you!" "Yes, if he was only here!" repeated Johannes, not appearing to be afraid of what Markus might do to him. Then in a milder way, Marjon proceeded: "Do you know what Markus says, Jo? When the Devil stands before God, his heart is pierced by genuine trust." "Should I trust the Devil, then?" asked Johannes. "Well, no! How could that be? Nobody can do that. You must trust the Father alone. But even if you are so unlucky as to see the Devil before you see the Father, that makes no difference, for he has no chance against sincere trust. That upsets his plans, and at the same time pleases the Father." "Oh, Marjon! Marjon!" said Johannes, clasping his hands together in his deep emotion. She smiled brightly and said: "Now you see that was a quarter out of my savings-box!" Really, it was a very happy day for Johannes. He saw great, white, piled-up clouds, tall trees in the light of the rising sun, still houses on the river-banks, and the rushing stream—with violet and gold sparkling in the broad bends—ever flowing through a fruitful, verdant country; and over all, the deep, deep blue—and he whispered: "Father—Father!" In an instant, he suddenly
  • 78. comprehended all the things he saw as splendid, glorious Thoughts of the Father, which had always been his to observe, but only now to be wholly understood. The Father said all this to him, as a solemn admonition that He it was—pure and true, eternally guarding, ever waiting and accessible, behind the unlovely and the deceitful. "Will you always stay with me, Marjon?" he asked earnestly. "Yes, Jo, that I will. And you with me?" Then Little Johannes intrepidly gave his promise, as if he really knew what the future held for him, and as if he had power over his entire unknown existence. "Yes, dear Marjon, I will never leave you again. I promise you. We remain together, but as friends. Do you agree? No foolishness!" "Very well, Jo. As you like," said Marjon. After that they were very still. XIII It was evening, and they were nearing Germany. The dwellings on the river-banks no longer looked fresh and bright colored, but faded and dirty. Then they came to a poor, shabby-looking town, with rusty walls, and grey houses inscribed with flourishing black letters. The boats went up the stream to lie at anchor, and the custom- house officers came. Then Marjon, rousing up from the brown study into which Johannes' last question had plunged her, said: "We must sing something, Jo. Only think! Your Aunt's money will soon be gone. We must earn some more." "Can we do it?" asked Johannes.
  • 79. "Easy. You just furnish the words and I'll take care of the music. If it isn't so fine at first, that doesn't matter. You'll see how the money rains down, even if they don't understand a thing." Marjon knew her public. It came out as she said it would. When they began to sing, the brusque customs collectors, the old skipper, and other ships' folk in the boats lying next them, all listened; and the stokers of the little tugboat stuck their soot-begrimed faces out of the machine-room hatch, and they, also, listened. For those two young voices floated softly and harmoniously out over the calmly flowing current, and there was something very winning in the two slender brothers—something fine and striking. They were quite unlike the usual circus-people. There was something about them which instantly made itself felt, even upon a rude audience, although no one there could tell in what it consisted, nor understand what they were singing about, nor even the words. At first they sang their old songs—The Song of the Butterfly, and the melancholy song that Marjon had made alone, and which Johannes, rather disdainfully, had named The Nurse-Maid's Song, and also the one Marjon had composed in the evening, in the boat. But when Marjon said, "You must make something new," Johannes looked very serious, and said: "You cannot make verses—they are born as much as children are." Marjon blushed; and, laughing in her confusion, she replied: "What silly things you do say, Jo. It's well that the dark woman doesn't hear you. She might take you in hand." After a moment of silence, she resumed: "I believe you talk trash, Jo. When I make songs the music does come of itself; but I have to finish it off, though. I must make—compose, you know. It's exactly," she continued, after a pause, "as if a troop of children came in, all unexpected—wild and in disorder, and as if, like a school-teacher, I made them pass in a procession—two by two—and stroked their clothing smooth, and put flowers in their hands, and then set them
  • 80. marching. That's the way I make songs, and so must you make verses. Try now!" "Exactly," said Johannes;'"but yet the children must first come of themselves." "But are they not all there, Jo?" Gazing up into the great dome of the evening sky, where the pale stars were just beginning to sparkle, Johannes thought it over. He thought of the fine day he had had, and also of what he had felt coming into his head. "Really," said Marjon, rather drily, "you'll just have to, whether you want to or not—to keep from starving." Then, as if desperately alarmed, Johannes went in search of pencil and paper; and truly, in came the disorderly children, and he arranged them in file, prinked them up, and dealt them out flowers. He first wrote this: "Tell me what means the bright sunshine, The great and restless river Rhine, This teeming land of flocks and herds— The high, wide blue of summer sky, Where fleecy clouds in quiet lie. To catch the lilt of happy birds. "The Father thinks, and spreads his dream As sun and heaven, field and stream. I feast on his creation— And when that thought is understood, Then shall my soul confess Him good, And kneel in adoration."
  • 81. Marjon read it, and slowly remarked, as she nodded: "Very well, Jo, but I'm afraid I can't make a song of it. At least, not now. I must have something with more life and movement in it. This is too sober —I must have something that dances. Can't you say something about the stars? I just love them so! Or about the river, or the sun, or about the autumn?" "I will try to," said Johannes, looking up at the twinkling dots sprinkled over the dark night-sky. Then he composed the following song, for which Marjon quickly furnished a melody, and soon they were both singing: "One by one from their sable fold Came the silent stars with twinkling eyes, And their tiny feet illumed like gold The adamantine skies. "And when they'd climbed the domed height— So happy and full of glee, There sang those stars with all their might A song of jubilee." It was a success. Their fresh young voices were floating and gliding and intertwining like two bright garlands, or two supple fishes sporting in clear water, or two butterflies fluttering about each other in the sunshine. The brown old skipper grinned, and the grimy-faced stokers looked at them approvingly. They did not understand it, but felt sure it must be a merry love-song. Three times—four times through—the children sang the song. Then, little by little, the night fell. But Johannes had still more to say. The sun, and the splendid summer day that had now taken its leave, had left behind a sweet, sad longing, and this he wanted to put upon paper. Lying stretched out on the deck, he wrote the following, by the light of the lantern: "Oh, golden sun—oh, summer light, I would that I might see thee bright
  • 82. Thro' long, drear, winter days! Thy brightest rays have all been shed— Full soon thy glory will have fled, And cold winds blow; While all dear, verdant ways Lie deep in snow." As he read the last line aloud, his voice was full of emotion. "That's fine, Jo!" said Marjon. "I'll soon have it ready." And after a half-hour of trying and testing, she found for the verses a sweet air, full of yearning. And they sang it, in the dusk, and repeated the former one, until a troupe of street musicians of the sort called "footers" came boisterously out of a beer-house on the shore, and drowned their tender voices with a flood of loud, dissonant, and brazen tones. "Mum, now," said Marjon, "we can't do anything against that braying. But never mind. We have two of them now—The Star Song and The Autumn Song. At this rate we shall get rich. And I'll make something yet out of The Father Song; but in the morning, I think— not to-night. We've earned at least our day's wages, and we can go on a lark with contented minds. Will you go, Jo?" "Marjon," said Johannes, musingly, hesitating an instant before he consented, "do you know who Pluizer is?" "No!" said Marjon, bluntly. "Do you know what he would say?" "Well?" asked Marjon, with indifference. "That you are altogether impossible." "Impossible? Why?"
  • 83. Welcome to our website – the perfect destination for book lovers and knowledge seekers. We believe that every book holds a new world, offering opportunities for learning, discovery, and personal growth. That’s why we are dedicated to bringing you a diverse collection of books, ranging from classic literature and specialized publications to self-development guides and children's books. More than just a book-buying platform, we strive to be a bridge connecting you with timeless cultural and intellectual values. With an elegant, user-friendly interface and a smart search system, you can quickly find the books that best suit your interests. Additionally, our special promotions and home delivery services help you save time and fully enjoy the joy of reading. Join us on a journey of knowledge exploration, passion nurturing, and personal growth every day! ebookbell.com