| |
| |
| |
The Basics | |
| |
| |
| |
About /bin/sh | |
| |
| |
| |
Using the Shell | |
| |
| |
| |
Basic Commands | |
| |
| |
| |
ls | |
| |
| |
| |
cp | |
| |
| |
| |
mv | |
| |
| |
| |
touch | |
| |
| |
| |
rm | |
| |
| |
| |
echo | |
| |
| |
| |
Using Directory Commands | |
| |
| |
| |
cd | |
| |
| |
| |
mkdir | |
| |
| |
| |
rmdir | |
| |
| |
| |
Shell Wildcards | |
| |
| |
| |
Intermediate Commands | |
| |
| |
| |
grep | |
| |
| |
| |
more and less | |
| |
| |
| |
pwd | |
| |
| |
| |
diff | |
| |
| |
| |
file | |
| |
| |
| |
find | |
| |
| |
| |
head and tail | |
| |
| |
| |
sort | |
| |
| |
| |
Changing Your Password and Shell | |
| |
| |
| |
chsh | |
| |
| |
| |
Dot Files | |
| |
| |
| |
Environment and Shell Variables | |
| |
| |
| |
The Command Path | |
| |
| |
| |
Special Characters | |
| |
| |
| |
Command-Line Editing | |
| |
| |
| |
Text Editors | |
| |
| |
| |
Getting Online Help | |
| |
| |
| |
Shell Input and Output | |
| |
| |
| |
Standard Error | |
| |
| |
| |
Standard Input Redirection | |
| |
| |
| |
Understanding Error Messages | |
| |
| |
| |
Common Errors | |
| |
| |
| |
Processes | |
| |
| |
| |
Killing Processes | |
| |
| |
| |
Job Control | |
| |
| |
| |
Background Processes | |
| |
| |
| |
File Modes and Permissions | |
| |
| |
| |
Modifying Permissions | |
| |
| |
| |
Symbolic Links | |
| |
| |
| |
Archiving and Compressing Files | |
| |
| |
| |
Compressed Archives (.tar.gz) | |
| |
| |
| |
Other Compression Utilities | |
| |
| |
| |
Devices, Disks, Filesystems, and the Kernel | |
| |
| |
| |
Directory Hierarchy | |
| |
| |
| |
The Essential Root Subdirectories | |
| |
| |
| |
Other Root Subdirectories | |
| |
| |
| |
The /usr Directory | |
| |
| |
| |
The Kernel | |
| |
| |
| |
Devices | |
| |
| |
| |
dd and Devices | |
| |
| |
| |
Device Name Summary | |
| |
| |
| |
Creating Device Files | |
| |
| |
| |
Partitioning Disk Devices | |
| |
| |
| |
Filesystems | |
| |
| |
| |
Filesystem Types | |
| |
| |
| |
Creating a Filesystem | |
| |
| |
| |
Mounting a Filesystem | |
| |
| |
| |
Filesystem Buffering | |
| |
| |
| |
Filesystem Mount Options | |
| |
| |
| |
The /etc/fstab Filesystem Table | |
| |
| |
| |
Filesystem Capacity | |
| |
| |
| |
Checking and Repairing Filesystems | |
| |
| |
| |
Special-Purpose Filesystems | |
| |
| |
| |
Swap and Virtual Memory | |
| |
| |
| |
Using a Disk Partition as Swap Space | |
| |
| |
| |
Using a File as Swap Space | |
| |
| |
| |
How Much Swap Do You Need? | |
| |
| |
| |
How Linux Boots | |
| |
| |
| |
init | |
| |
| |
| |
Runlevels | |
| |
| |
| |
How Processes in Runlevels Start | |
| |
| |
| |
Adding and Removing Services | |
| |
| |
| |
Controlling init | |
| |
| |
| |
Shutting Down | |
| |
| |
| |
Boot Loaders | |
| |
| |
| |
LILO | |
| |
| |
| |
GRUB | |
| |
| |
| |
Other Boot Loaders | |
| |
| |
| |
Single-User Mode and Emergency Booting | |
| |
| |
| |
Virtual Consoles | |
| |
| |
| |
Essential System Files, Servers, and Utilities | |
| |
| |
| |
System Logging | |
| |
| |
| |
A Glance at /etc | |
| |
| |
| |
User Management Files | |
| |
| |
| |
Manipulating Users and Passwords | |
| |
| |
| |
Working with Groups | |
| |
| |
| |
getty and login | |
| |
| |
| |
Setting the Time | |
| |
| |
| |
Time Zones | |
| |
| |
| |
Network Time | |
| |
| |
| |
Scheduling Recurring Tasks with cron | |
| |
| |
| |
Installing Crontab Files | |
| |
| |
| |
System Crontab Files | |
| |
| |
| |
Scheduling One-Time Tasks with at | |
| |
| |
| |
Tracking Individual Processes | |
| |
| |
| |
Finding Open Files with Isof | |
| |
| |
| |
Tracing Program Execution with strace and Itrace | |
| |
| |
| |
Adjusting Process Priorities | |
| |
| |
| |
Monitoring System Performance | |
| |
| |
| |
Running Commands as the Superuser | |
| |
| |
| |
Real UID and Effective UID | |
| |
| |
| |
Configuring Your Network | |
| |
| |
| |
Network Layers | |
| |
| |
| |
The Internet Layer | |
| |
| |
| |
More on Subnets | |
| |
| |
| |
Basic ICMP Tools | |
| |
| |
| |
Configuring Interfaces and the Host-to-Network Layer | |
| |
| |
| |
Configuring a Default Gateway | |
| |
| |
| |
Resolving Hostnames | |
| |
| |
| |
Using DHCP Clients | |
| |
| |
| |
PPP Connections | |
| |
| |
| |
Testing Your Serial Port and Modem | |
| |
| |
| |
Starting pppd with Options Files | |
| |
| |
| |
Chat Scripts | |
| |
| |
| |
PAP and CHAP | |
| |
| |
| |
Options Files | |
| |
| |
| |
PPP Directory Permissions | |
| |
| |
| |
Broadband Connections | |
| |
| |
| |
Routers | |
| |
| |
| |
PPP Over Ethernet (PPPoE) | |
| |
| |
| |
Ethernet Networks | |
| |
| |
| |
Ethernet and IP | |
| |
| |
| |
Private Networks | |
| |
| |
| |
Configuring Routes | |
| |
| |
| |
The Transport Layer: TCP, UDP, and Services | |
| |
| |
| |
Firewalls | |
| |
| |
| |
Firewall Strategies | |
| |
| |
| |
IP Tables Reference | |
| |
| |
| |
Network Address Translation (IP Masquerading) | |
| |
| |
| |
Wireless Ethernet | |
| |
| |
| |
A Lecture on Wireless Security | |
| |
| |
| |
Network Services | |
| |
| |
| |
The Basics of Services | |
| |
| |
| |
Stand-Alone Servers | |
| |
| |
| |
The inetd Daemon | |
| |
| |
| |
TCP Wrapper: tcpd, /etc/hosts.allow, /etc/hosts.deny | |
| |
| |
| |
xinetd | |
| |
| |
| |
Secure Shell (SSH) | |
| |
| |
| |
Installing OpenSSH | |
| |
| |
| |
The SSHD Server | |
| |
| |
| |
The SSH Client | |
| |
| |
| |
Diagnostic Tools | |
| |
| |
| |
Isof | |
| |
| |
| |
tcpdump | |
| |
| |
| |
Netcat | |
| |
| |
| |
Remote Procedure Call (RPC) | |
| |
| |
| |
Network Security | |
| |
| |
| |
Where Linux Distributions Stand | |
| |
| |
| |
Typical Vulnerabilities | |
| |
| |
| |
Port Scanning | |
| |
| |
| |
Security Resources | |
| |
| |
| |
Introduction to Shell Scripts | |
| |
| |
| |
Shell Script Basics | |
| |
| |
| |
Limitations of Shell Scripts | |
| |
| |
| |
Quoting | |
| |
| |
| |
Special Variables | |
| |
| |
| |
$1, $2 | |
| |
| |
| |
$# | |
| |
| |
| |
$@ | |
| |
| |
| |
$0 | |
| |
| |
| |
$$ | |
| |
| |
| |
$? | |
| |
| |
| |
Exit Codes | |
| |
| |
| |
Conditionals | |
| |
| |
| |
&& and I I Logical Constructs | |
| |
| |
| |
Testing Conditions | |
| |
| |
| |
Matching Strings with case | |
| |
| |
| |
Loops | |
| |
| |
| |
Command Substitution | |
| |
| |
| |
Temporary File Management | |
| |
| |
| |
Here Documents | |
| |
| |
| |
Important Shell Script Utilities | |
| |
| |
| |
basename | |
| |
| |
| |
awk | |
| |
| |
| |
sed | |
| |
| |
| |
xargs | |
| |
| |
| |
expr | |
| |
| |
| |
exec | |
| |
| |
| |
Subshells | |
| |
| |
| |
Including Other Files in Scripts | |
| |
| |
| |
Reading User Input | |
| |
| |
| |
Too Much? | |
| |
| |
| |
Development Tools | |
| |
| |
| |
The C Compiler | |
| |
| |
| |
Multiple Source Files | |
| |
| |
| |
Header (Include) Files and Directories | |
| |
| |
| |
Linking with Libraries | |
| |
| |
| |
Shared Libraries | |
| |
| |
| |
Make | |
| |
| |
| |
Debuggers | |
| |
| |
| |
Lex and Yacc | |
| |
| |
| |
Scripting Languages | |
| |
| |
| |
Perl | |
| |
| |
| |
Python | |
| |
| |
| |
Other Scripting Languages | |
| |
| |
| |
Java | |
| |
| |
| |
Assembly Code and How a Compiler Works | |
| |
| |
| |
Compiling Software from Source Code | |
| |
| |
| |
Unpacking Source Packages | |
| |
| |
| |
Where to Start | |
| |
| |
| |
GNU Autoconf | |
| |
| |
| |
configure Script Options | |
| |
| |
| |
Environment Variables | |
| |
| |
| |
Autoconf Targets | |
| |
| |
| |
Autoconf Log Files | |
| |
| |
| |
Other Systems | |
| |
| |
| |
Custom Makefiles | |
| |
| |
| |
Imake | |
| |
| |
| |
pkg-config | |
| |
| |
| |
Installation Practice | |
| |
| |
| |
Where to Install | |
| |
| |
| |
Applying a Patch | |
| |
| |
| |
Troubleshooting Compiles and Installations | |
| |
| |
| |
Specific Errors | |
| |
| |
| |
Maintaining the Kernel | |
| |
| |
| |
Do You Need to Build Your Own Kernel? | |
| |
| |
| |
What You Need to Build a Kernel | |
| |
| |
| |
Getting the Source Code | |
| |
| |
| |
Unpacking the Source Archive | |
| |
| |
| |
A Look Around the Kernel Source | |
| |
| |
| |
Distribution Kernels | |
| |
| |
| |
Configuring and Compiling the Kernel | |
| |
| |
| |
Configuration Options | |
| |
| |
| |
Compiling the Kernel and Modules | |
| |
| |
| |
Installing Modules | |
| |
| |
| |
Kernel Parameters | |
| |
| |
| |
Installing Your Kernel with a Boot Loader | |
| |
| |
| |
Which Boot Loader? | |
| |
| |
| |
GRUB | |
| |
| |
| |
LILO | |
| |
| |
| |
Initial RAM Disks | |
| |
| |
| |
Testing the Kernel | |
| |
| |
| |
Boot Floppies | |
| |
| |
| |
Working with Loadable Kernel Modules | |
| |
| |
| |
Kernel Module Loader | |
| |
| |
| |
modprobe Configuration | |
| |
| |
| |
Configuring and Manipulating Peripheral Devices | |
| |
| |
| |
Floppy Drives | |
| |
| |
| |
Floppy Images | |
| |
| |
| |
Low-Level Formatting a Floppy Disk | |
| |
| |
| |
CD Writers | |
| |
| |
| |
Verifying the Hardware | |
| |
| |
| |
Creating a Filesystem Image and Writing a CD | |
| |
| |
| |
Introduction to USB | |
| |
| |
| |
USB Device Filesystem and Utilities | |
| |
| |
| |
USB Input Devices | |
| |
| |
| |
USB Digital Cameras, External Flash Media, and External Disks | |
| |
| |
| |
IEEE 1394/FireWire Disks | |
| |
| |
| |
Hotplug Support | |
| |
| |
| |
PC Cards (PCMCIA) | |
| |
| |
| |
When You Insert a Card | |
| |
| |
| |
cardctl | |
| |
| |
| |
Approaching Other Devices | |
| |
| |
| |
Printing | |
| |
| |
| |
PostScript | |
| |
| |
| |
Print Servers | |
| |
| |
| |
Print Filters | |
| |
| |
| |
Print Clients | |
| |
| |
| |
Network Printing | |
| |
| |
| |
CUPS | |
| |
| |
| |
Configuring cupsd | |
| |
| |
| |
CUPS Security | |
| |
| |
| |
Starting CUPS | |
| |
| |
| |
Adding and Editing Printers | |
| |
| |
| |
Printer Devices (Backend Specifications) | |
| |
| |
| |
PPD Files | |
| |
| |
| |
Specifying a Filter | |
| |
| |
| |
Foomatic (for Non-PostScript Printers) | |
| |
| |
| |
Administrative Command Overview | |
| |
| |
| |
Client Access Control | |
| |
| |
| |
Auto-Discovery | |
| |
| |
| |
Running an LPD-Compatible Server | |
| |
| |
| |
Troubleshooting CUPS | |
| |
| |
| |
Ghostscript | |
| |
| |
| |
Command-Line Options | |
| |
| |
| |
More Ghostscript Tricks | |
| |
| |
| |
HP Inkjet Server | |
| |
| |
| |
Further Printing Topics | |
| |
| |
| |
Backups | |
| |
| |
| |
What Should You Back Up? | |
| |
| |
| |
Backup Hardware | |
| |
| |
| |
Full and Incremental Backups | |
| |
| |
| |
Using tar for Backups and Restores | |
| |
| |
| |
Creating Archives | |
| |
| |
| |
Incremental Backups with tar | |
| |
| |
| |
Extracting Archives | |
| |
| |
| |
Backups to Non-Traditional Media | |
| |
| |
| |
Backups to Hard Disks | |
| |
| |
| |
Tape Drive Devices | |
| |
| |
| |
Working with Tape Drives | |
| |
| |
| |
Creating Archives on a Tape | |
| |
| |
| |
Reading from Tape | |
| |
| |
| |
Extracting Archives | |
| |
| |
| |
Moving Forward and Backing Up | |
| |
| |
| |
mt Commands and Status | |
| |
| |
| |
Direct File Access | |
| |
| |
| |
Other Archivers | |
| |
| |
| |
Dump and Restore | |
| |
| |
| |
cpio | |
| |
| |
| |
Amanda Tapes | |
| |
| |
| |
Further Backup Topics | |
| |
| |
| |
Sharing Files with Samba | |
| |
| |
| |
Configuring the Server | |
| |
| |
| |
Server Access Control | |
| |
| |
| |
Passwords | |
| |
| |
| |
Starting the Server | |
| |
| |
| |
Diagnostics and Log Files | |
| |
| |
| |
Sharing Files | |
| |
| |
| |
Home Directories | |
| |
| |
| |
Sharing Printers | |
| |
| |
| |
Sharing a Single Printer | |
| |
| |
| |
Using the Samba Client | |
| |
| |
| |
Accessing Files | |
| |
| |
| |
Printing to a Windows Share | |
| |
| |
| |
Network File Transfer | |
| |
| |
| |
rsync Basics | |
| |
| |
| |
Making Exact Copies of a Directory Structure | |
| |
| |
| |
Using the Trailing Slash | |
| |
| |
| |
Excluding Files and Directories | |
| |
| |
| |
Checksums and Verbose Transfers | |
| |
| |
| |
Compression | |
| |
| |
| |
Limiting Bandwidth | |
| |
| |
| |
Transferring Files to Your Computer | |
| |
| |
| |
Further rsync Topics | |
| |
| |
| |
User Environments | |
| |
| |
| |
Appropriate Startup Files | |
| |
| |
| |
Shell Startup File Elements | |
| |
| |
| |
The Command Path | |
| |
| |
| |
The Manual Page Path | |
| |
| |
| |
The Prompt | |
| |
| |
| |
Aliases | |
| |
| |
| |
The Permissions Mask | |
| |
| |
| |
Startup File Order and Examples | |
| |
| |
| |
The bash Shell | |
| |
| |
| |
The tcsh Shell | |
| |
| |
| |
Default User Settings | |
| |
| |
| |
Shell | |
| |
| |
| |
Editor | |
| |
| |
| |
Pager | |
| |
| |
| |
Startup File Pitfalls | |
| |
| |
| |
Further Startup Topics | |
| |
| |
| |
Buying Hardware for Linux | |
| |
| |
| |
Core Components | |
| |
| |
| |
Processor and Motherboard | |
| |
| |
| |
Memory | |
| |
| |
| |
Hard Disk | |
| |
| |
| |
Network Cards and Infrastructure | |
| |
| |
| |
Graphics Hardware | |
| |
| |
| |
Other Hardware Components | |
| |
| |
| |
Monitors | |
| |
| |
| |
Keyboards | |
| |
| |
| |
Mice | |
| |
| |
| |
Modems | |
| |
| |
| |
Printers | |
| |
| |
| |
A Word About Hardware Upgrades | |
| |
| |
| |
Saving Money | |
| |
| |
| |
CPU | |
| |
| |
| |
Hard Disk | |
| |
| |
| |
Computer Case | |
| |
| |
| |
Video Card | |
| |
| |
| |
Notebooks | |
| |
| |
| |
Smaller Designs | |
| |
| |
| |
Further Directions | |
| |
| |
| |
Additional Topics | |
| |
| |
| |
Final Thoughts | |
| |
| |
| |
Command Classification | |
| |
| |
Index | |