CONTENTS
List of JumpStarts
Preface
CHAPTER 1: WELCOME TO LINUX
Ubuntu Linux
The History of UNIX and GNU–Linux
The Heritage of Linux: UNIX
Fade to 1983
Next Scene, 1991
The Code Is Free
Have Fun!
What Is So Good About Linux?
Why Linux Is Popular with Hardware Companies and Developers
Linux Is Portable
The C Programming Language
Overview of Linux
Linux Has a Kernel Programming Interface
Linux Can Support Many Users
Linux Can Run Many Tasks
Linux Provides a Secure Hierarchical Filesystem
The Shell: Command Interpreter and Programming Language
A Large Collection of Useful Utilities
Interprocess Communication
System Administration
Additional Features of Linux
GUIs: Graphical User Interfaces
(Inter)Networking Utilities
Software Development
Conventions Used in This Book
Chapter Summary
Exercises
PART I: INSTALLING UBUNTU LINUX
CHAPTER 2: INSTALLATION OVERVIEW
The Live/Install Desktop CD and the Live/Install DVD
More Information
Planning the Installation
The Installation Process
Downloading and Burning a CD/DVD
Gathering Information About the System
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 3: STEP-BY-STEP INSTALLATION
Booting from a Live/Install Desktop CD or a Live/Install DVD
Graphical Partition Editors
Upgrading to a New Release
Installing KDE
Setting Up a Dual-Boot System
Advanced Installation
Chapter Summary
Exercises
Advanced Exercises
PART II: GETTING STARTED WITH UBUNTU LINUX
CHAPTER 4: INTRODUCTION TO UBUNTU LINUX
Curbing Your Power: root Privileges/sudo
A Tour of the Ubuntu Desktop
Getting the Most Out of the Desktop
Updating, Installing, and Removing Software Packages
Where to Find Documentation
More About Logging In
Working from the Command Line
Controlling Windows: Advanced Operations
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 5: THE LINUX UTILITIES
Special Characters
Basic Utilities
Working with Files
| (Pipe): Communicates Between Processes
Four More Utilities
Compressing and Archiving Files
Locating Commands
Obtaining User and System Information
Communicating with Other Users
Email
Tutorial: Using vim to Create and Edit a File
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 6: THE LINUX FILESYSTEM
The Hierarchical Filesystem
Directory Files and Ordinary Files
Pathnames
Working with Directories
Access Permissions
ACLs: Access Control Lists
Links
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 7: THE SHELL
The Command Line
Standard Input and Standard Output
Running a Command in the Background
Filename Generation/Pathname Expansion
Builtins
Chapter Summary
Exercises
Advanced Exercises
PART III: DIGGING INTO UBUNTU LINUX
CHAPTER 8: LINUX GUIS: X AND GNOME
X Window System
The Nautilus File Browser Window
The Nautilus Spatial View
GNOME Utilities
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 9: THE BOURNE AGAIN SHELL
Background
Shell Basics
Parameters and Variables
Special Characters
Processes
History
Aliases
Functions
Controlling bash: Features and Options
Processing the Command Line
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 10: NETWORKING AND THE INTERNET
Types of Networks and How They Work
Communicate over a Network
Network Utilities
Distributed Computing
Usenet
WWW: World Wide Web
Chapter Summary
Exercises
Advanced Exercises
PART IV: SYSTEM ADMINISTRATION
CHAPTER 11: SYSTEM ADMINISTRATION: CORE CONCEPTS
Running Commands with root Privileges
The Upstart Event-Based init Daemon
System Operation
Avoiding a Trojan Horse
Getting Help
Textual System Administration Utilities
Setting Up a Server
nsswitch.conf: Which Service to Look at First
PAM
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 12: FILES, DIRECTORIES, AND FILESYSTEMS
Important Files and Directories
File Types
Filesystems
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 13: DOWNLOADING AND INSTALLING SOFTWARE
JumpStart: Installing and Removing Packages Using aptitude
Finding the Package That Holds a File You Need
APT: Keeps the System Up-to-Date
dpkg: The Debian Package Management System
BitTorrent
Installing Non-dpkg Software
wget: Downloads Files Noninteractively
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 14: PRINTING WITH CUPS
Introduction
JumpStart I: Configuring a Local Printer
system-config-printer: Configuring a Printer
JumpStart II: Setting Up a Local or Remote Printer Using the CUPS Web Interface
Traditional UNIX Printing
Configuring Printers
Printing from Windows
Printing to Windows
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 15: BUILDING A LINUX KERNEL
Prerequisites
Downloading the Kernel Source Code
Read the Documentation
Configuring and Compiling the Linux Kernel
Installing the Kernel, Modules, and Associated Files
Rebooting
GRUB: The Linux Boot Loader
dmesg: Displays Kernel Messages
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 16: ADMINISTRATION TASKS
Configuring User and Group Accounts
Backing Up Files
Scheduling Tasks
System Reports
parted: Reports on and Partitions a Hard Disk
Keeping Users Informed
Creating Problems
Solving Problems
MySQL
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 17: CONFIGURING AND MONITORING A LAN
Setting Up the Hardware
Configuring the Systems
NetworkManager: Configures Network Connections
Setting Up Servers
Introduction to Cacti
More Information
Chapter Summary
Exercises
Advanced Exercises
PART V: USING CLIENTS AND SETTING UP SERVERS
CHAPTER 18: OPENSSH: SECURE NETWORK COMMUNICATION
Introduction to OpenSSH
Running the ssh, scp, and sftp OpenSSH Clients
Setting Up an OpenSSH Server (sshd)
Troubleshooting
Tunneling/Port Forwarding
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 19: FTP: TRANSFERRING FILES ACROSS A NETWORK
Introduction to FTP
Running the ftp and sftp FTP Clients
Setting Up an FTP Server (vsftpd)
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 20: EXIM4: SETTING UP MAIL SERVERS, CLIENTS, AND MORE
Introduction to exim4
Setting Up a Mail Server (exim4)
Working with exim4 Messages
Configuring an exim4 Mail Server
SpamAssassin
Additional Email Tools
Authenticated Relaying
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 21: NIS AND LDAP
Introduction to NIS
Running an NIS Client
Setting Up an NIS Server
LDAP
Setting Up an LDAP Server
Other Tools for Working with LDAP
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 22: NFS: SHARING FILESYSTEMS
Introduction to NFS
Running an NFS Client
Setting Up an NFS Server
automount: Mounts Directory Hierarchies on Demand
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 23: SAMBA: LINUX AND WINDOWS FILE AND PRINTER SHARING
Introduction to Samba
Setting Up a Samba Server
Working with Linux Shares from Windows
Working with Windows Shares from Linux
Troubleshooting
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 24: DNS/BIND: TRACKING DOMAIN NAMES AND ADDRESSES
Introduction to DNS
Setting Up a DNS Server
Setting Up Different Types of DNS Servers
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 25: FIRESTARTER, GUFW, AND IPTABLES: SETTING UP A FIREWALL
Introduction to firestarter
firestarter: Setting Up and Maintaining a Firewall
ufw: The Uncomplicated Firewall
gufw: The Graphical Interface to ufw
Introduction to iptables
Building a Set of Rules Using iptables
Copying Rules to and from the Kernel
Sharing an Internet Connection Using NAT
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 26: APACHE: SETTING UP A WEB SERVER
Introduction
Running a Web Server (Apache)
Configuration Directives
Configuration Files
Advanced Configuration
Troubleshooting
Modules
webalizer: Analyzes Web Traffic
MRTG: Monitors Traffic Loads
Error Codes
Chapter Summary
Exercises
Advanced Exercises
PART VI: PROGRAMMING TOOLS
CHAPTER 27: PROGRAMMING THE BOURNE AGAIN SHELL
Control Structures
File Descriptors
Parameters and Variables
Builtin Commands
Expressions
Shell Programs
Chapter Summary
Exercises
Advanced Exercises
CHAPTER 28: THE PERL SCRIPTING LANGUAGE
Introduction to Perl
Variables
Control Structures
Working with Files
Sort
Subroutines
Regular Expressions
CPAN Modules
Examples
Chapter Summary
Exercises
Advanced Exercises
PART VII: APPENDIXES
APPENDIX A: REGULAR EXPRESSIONS
Characters
Delimiters
Simple Strings
Special Characters
Rules
Bracketing Expressions
The Replacement String
Extended Regular Expressions
Appendix Summary
APPENDIX B: HELP
Solving a Problem
Finding Linux-Related Information
Specifying a Terminal
APPENDIX C: SECURITY
Encryption
File Security
Email Security
Network Security
Host Security
Security Resources
Appendix Summary
APPENDIX D: THE FREE SOFTWARE DEFINITION
GLOSSARY
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
X
Z
JUMPSTART INDEX
A
C
D
F
M
N
O
S
FILE TREE INDEX
A
B
C
D
E
F
G
H
I
L
M
N
O
P
R
S
T
V
W
UTILITY INDEX
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
MAIN INDEX
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z