You are previewing Running Linux, 5th Edition.
O'Reilly logo
Running Linux, 5th Edition

Book Description

You may be contemplating your first Linux installation. Or you may have been using Linux for years and need to know more about adding a network printer or setting up an FTP server. Running Linux, now in its fifth edition, is the book you'll want on hand in either case. Widely recognized in the Linux community as the ultimate getting-started and problem-solving book, it answers the questions and tackles the configuration issues that frequently plague users, but are seldom addressed in other books.

This fifth edition of Running Linux is greatly expanded, reflecting the maturity of the operating system and the teeming wealth of software available for it. Hot consumer topics such as audio and video playback applications, groupware functionality, and spam filtering are covered, along with the basics in configuration and management that always have made the book popular.

Running Linux covers basic communications such as mail, web surfing, and instant messaging, but also delves into the subtleties of network configuration--including dial-up, ADSL, and cable modems--in case you need to set up your network manually. The book can make you proficient on office suites and personal productivity applications--and also tells you what programming tools are available if you're interested in contributing to these applications.

Other new topics in the fifth edition include encrypted email and filesystems, advanced shell techniques, and remote login applications. Classic discussions on booting, package management, kernel recompilation, and X configuration have also been updated.

The authors of Running Linux have anticipated problem areas, selected stable and popular solutions, and provided clear instructions to ensure that you'll have a satisfying experience using Linux. The discussion is direct and complete enough to guide novice users, while still providing the additional information experienced users will need to progress in their mastery of Linux.

Whether you're using Linux on a home workstation or maintaining a network server, Running Linux will provide expert advice just when you need it.

Table of Contents

  1. Running Linux, 5th Edition
  2. Preface
    1. Organization of This Book
    2. Conventions Used in This Book
    3. Using Code Examples
    4. How to Contact Us
    5. SafariĀ® Enabled
    6. Acknowledgments
  3. I. Enjoying and Being Productive on Linux
    1. 1. Introduction to Linux
      1. 1.1. About This Book
      2. 1.2. Who's Using Linux?
      3. 1.3. System Features
        1. 1.3.1. A Bag of Features
        2. 1.3.2. Kernel
        3. 1.3.3. Commands and Shells
        4. 1.3.4. Text Processing and Word Processing
        5. 1.3.5. Commercial Applications
        6. 1.3.6. Programming Languages and Utilities
        7. 1.3.7. The X Window System
        8. 1.3.8. KDE and GNOME
        9. 1.3.9. Networking
        10. 1.3.10. Laptop Support
        11. 1.3.11. Interfacing with Windows
        12. 1.3.12. Other Applications
      4. 1.4. About Linux's Copyright
        1. 1.4.1. A Summary of Free Software Licensing
        2. 1.4.2. SCO and Other Challenges
      5. 1.5. Open Source and the Philosophy of Linux
        1. 1.5.1. Hints for Unix Novices
        2. 1.5.2. Hints for Unix Gurus
      6. 1.6. Sources of Linux Information
        1. 1.6.1. Online Documents
        2. 1.6.2. Books and Other Published Works
        3. 1.6.3. Usenet Newsgroups
        4. 1.6.4. Internet Mailing Lists
      7. 1.7. Getting Help
    2. 2. Preinstallation and Installation
      1. 2.1. Distributions of Linux
        1. 2.1.1. Getting Linux via Mail Order or Other Hard Media
        2. 2.1.2. Getting Linux from the Internet
      2. 2.2. Preparing to Install Linux
        1. 2.2.1. Installation Overview
        2. 2.2.2. Repartitioning Concepts
        3. 2.2.3. Linux Partition Requirements
        4. 2.2.4. Creating Swap Space
        5. 2.2.5. Creating the Filesystems
        6. 2.2.6. Installing the Software
        7. 2.2.7. Creating the Boot Floppy or Installing GRUB
        8. 2.2.8. Additional Installation Procedures
      3. 2.3. Post-Installation Procedures
        1. 2.3.1. Creating a User Account
        2. 2.3.2. Getting Online Help
        3. 2.3.3. Editing /etc/fstab
        4. 2.3.4. Shutting Down the System
      4. 2.4. Running into Trouble
        1. 2.4.1. Problems with Booting the Installation Medium
        2. 2.4.2. Hardware Problems
          1. 2.4.2.1. Isolating hardware problems
          2. 2.4.2.2. Problems recognizing hard drive or controller
          3. 2.4.2.3. Problems with SCSI controllers and devices
        3. 2.4.3. Problems Installing the Software
        4. 2.4.4. Problems After Installing Linux
          1. 2.4.4.1. Problems booting Linux from floppy
          2. 2.4.4.2. Problems booting Linux from the hard drive
          3. 2.4.4.3. Problems logging in
          4. 2.4.4.4. Problems using the system
    3. 3. Desktop Environments
      1. 3.1. Why Use a Graphical Desktop?
      2. 3.2. The K Desktop Environment
        1. 3.2.1. General Features
        2. 3.2.2. Installing KDE
        3. 3.2.3. Using KDE
          1. 3.2.3.1. The KDE panel and the K menu
          2. 3.2.3.2. The KDE Control Center
      3. 3.3. KDE Applications
        1. 3.3.1. konsole: Your Home Base
          1. 3.3.1.1. Starting up konsole
          2. 3.3.1.2. Cutting and pasting selections
          3. 3.3.1.3. More konsole tricks
        2. 3.3.2. Clocks
        3. 3.3.3. KGhostview: Displaying PostScript and PDF
        4. 3.3.4. Reading Documentation with Konqueror
        5. 3.3.5. Burning CDs with K3b
      4. 3.4. The GNOME Desktop Environment
        1. 3.4.1. Core Desktop Interface
          1. 3.4.1.1. Basic GNOME tasks
          2. 3.4.1.2. The panel
          3. 3.4.1.3. Nautilus: your desktop and file manager
        2. 3.4.2. Expert Settings: GConf
      5. 3.5. GNOME Applications
        1. 3.5.1. Evolution: Mail, Calendar, and Contacts
          1. 3.5.1.1. Evolution mail
          2. 3.5.1.2. Evolution calendar
          3. 3.5.1.3. Evolution contacts
        2. 3.5.2. GNOME and Office Software
        3. 3.5.3. Movies and Music: Totem and Rhythmbox
        4. 3.5.4. Additional Applications and Resources
    4. 4. Basic Unix Commands and Concepts
      1. 4.1. Logging In
      2. 4.2. Setting a Password
      3. 4.3. Virtual Consoles
      4. 4.4. Popular Commands
        1. 4.4.1. Directories
        2. 4.4.2. Listing Files
        3. 4.4.3. Viewing Files, More or Less
        4. 4.4.4. Symbolic Links
      5. 4.5. Shells
      6. 4.6. Useful Keys and How to Get Them to Work
      7. 4.7. Typing Shortcuts
        1. 4.7.1. Word Completion
        2. 4.7.2. Moving Around Among Commands
      8. 4.8. Filename Expansion
      9. 4.9. Saving Your Output
      10. 4.10. What Is a Command?
      11. 4.11. Putting a Command in the Background
      12. 4.12. Remote Logins and Command Execution
      13. 4.13. Manual Pages
      14. 4.14. Startup Files
      15. 4.15. Important Directories
      16. 4.16. Basic Text Editing
      17. 4.17. Advanced Shells and Shell Scripting
        1. 4.17.1. Setting Terminal Attributes
        2. 4.17.2. Shell Programming
        3. 4.17.3. Being More Efficient with the Z Shell
    5. 5. Web Browsers and Instant Messaging
      1. 5.1. The World Wide Web
        1. 5.1.1. Using Konqueror
        2. 5.1.2. Other Web Browsers
      2. 5.2. Instant Messaging
        1. 5.2.1. Initial Configuration
        2. 5.2.2. Chatting
        3. 5.2.3. Advanced Configuration
    6. 6. Electronic Mail Clients
      1. 6.1. Using KMail
      2. 6.2. Using Mozilla Mail & News
      3. 6.3. Getting the Mail to Your Computer with fetchmail
      4. 6.4. OpenPGP Encryption with GnuPG
        1. 6.4.1. Symmetric Encryption
        2. 6.4.2. Public-Key Cryptography
        3. 6.4.3. Creating a New Key Pair
        4. 6.4.4. Encrypting with Public Keys
        5. 6.4.5. Digital Signatures
        6. 6.4.6. The Web of Trust
        7. 6.4.7. Using gPG-agent
    7. 7. Games
      1. 7.1. Gaming
      2. 7.2. Quake III
        1. 7.2.1. Installation
        2. 7.2.2. Single Player
        3. 7.2.3. Multiplayer
        4. 7.2.4. Mods
      3. 7.3. Return to Castle Wolfenstein
        1. 7.3.1. Installation
        2. 7.3.2. Single Player
        3. 7.3.3. Multiplayer
      4. 7.4. Unreal Tournament 2004
        1. 7.4.1. Installation
        2. 7.4.2. Play
        3. 7.4.3. Game Server
        4. 7.4.4. Updates
      5. 7.5. Emulators
        1. 7.5.1. MAME
        2. 7.5.2. Nestra
        3. 7.5.3. SNES9x
      6. 7.6. Frozen Bubble
      7. 7.7. Tux Racer
    8. 8. Office Suites and Personal Productivity
      1. 8.1. Using OpenOffice
        1. 8.1.1. "OpenOffice" Versus "OpenOffice.org"
        2. 8.1.2. The Modules of OpenOffice
        3. 8.1.3. OpenDocument and OpenOffice 2
        4. 8.1.4. OpenOffice Writer
          1. 8.1.4.1. Launching OOoWriter
          2. 8.1.4.2. Opening files
          3. 8.1.4.3. Saving files
          4. 8.1.4.4. Exporting and sending files
          5. 8.1.4.5. Identifying the toolbars
          6. 8.1.4.6. Basic formatting
          7. 8.1.4.7. Printing a document
          8. 8.1.4.8. Advanced formatting
          9. 8.1.4.9. Templates
          10. 8.1.4.10. Styles
          11. 8.1.4.11. Collaboration with documents
          12. 8.1.4.12. Navigator
          13. 8.1.4.13. Keyboard shortcuts
          14. 8.1.4.14. Searching a document with Find & Replace
          15. 8.1.4.15. Inserting hyperlinks
          16. 8.1.4.16. Word count
          17. 8.1.4.17. Password-protecting documents
        5. 8.1.5. OOoWriter Customization
          1. 8.1.5.1. OOoWriter toolbar customization
          2. 8.1.5.2. Adding an OOoWriter icon on the desktop or taskbar panel
          3. 8.1.5.3. Adjusting unpopular default settings
        6. 8.1.6. OpenOffice Calc
          1. 8.1.6.1. Managing files
          2. 8.1.6.2. Entering labels (text)
          3. 8.1.6.3. Autofill
          4. 8.1.6.4. Entering simple formulas
          5. 8.1.6.5. Summing a column of numbers
          6. 8.1.6.6. Moving cell contents
          7. 8.1.6.7. Adjusting column widths and row heights
          8. 8.1.6.8. Merging cells
          9. 8.1.6.9. Freezing and splitting windows
          10. 8.1.6.10. Page Break View
          11. 8.1.6.11. Setting the print range
          12. 8.1.6.12. Functions
          13. 8.1.6.13. Worksheets, or sheets
          14. 8.1.6.14. Sorting data
          15. 8.1.6.15. Data sources
          16. 8.1.6.16. Macros
        7. 8.1.7. OpenOffice Impress
          1. 8.1.7.1. Creating a presentation from scratch with AutoPilot
          2. 8.1.7.2. Opening an existing presentation
          3. 8.1.7.3. Saving a presentation
          4. 8.1.7.4. Export formats
          5. 8.1.7.5. OOoImpress workspace views
          6. 8.1.7.6. OOoImpress modes
          7. 8.1.7.7. Editing a presentation
          8. 8.1.7.8. The presentation palette
          9. 8.1.7.9. Putting on a slide show
        8. 8.1.8. Customizing OpenOffice
          1. 8.1.8.1. Adding a Launcher icon
          2. 8.1.8.2. Defaulting to the MS Office file formats
      2. 8.2. KOffice
        1. 8.2.1. Hands On: Getting to Know KOffice
          1. 8.2.1.1. Using tabulators in KWord
          2. 8.2.1.2. Embedding charts into spreadsheets
      3. 8.3. Other Word Processors
      4. 8.4. Synching PDAs
        1. 8.4.1. Checking the Connection
        2. 8.4.2. KPilot Synchronization
      5. 8.5. Groupware
        1. 8.5.1. Basic Group Organization
        2. 8.5.2. Groupware Server Solutions
          1. 8.5.2.1. Kolab
          2. 8.5.2.2. OpenGroupware.org
          3. 8.5.2.3. phpGroupWare and eGroupware
          4. 8.5.2.4. OPEN-XCHANGE
          5. 8.5.2.5. Closed-source products
        3. 8.5.3. LDAP: Accessing Global Address Books
      6. 8.6. Managing Your Finances
        1. 8.6.1. Getting Started
          1. 8.6.1.1. Choosing a currency
          2. 8.6.1.2. Choosing accounts
          3. 8.6.1.3. Entering opening balances
          4. 8.6.1.4. Finishing your account setup
        2. 8.6.2. The Account
        3. 8.6.3. The GnuCash Accounts Window
          1. 8.6.3.1. Creating new accounts
          2. 8.6.3.2. Deleting accounts
        4. 8.6.4. Transactions
          1. 8.6.4.1. Entering transactions
          2. 8.6.4.2. Recording split transactions
          3. 8.6.4.3. Scheduling transactions
        5. 8.6.5. Reports
        6. 8.6.6. Real-Life Examples
          1. 8.6.6.1. Going to the grocery store
          2. 8.6.6.2. Getting a tax refund
          3. 8.6.6.3. Buying a car
    9. 9. Multimedia
      1. 9.1. Multimedia Concepts
        1. 9.1.1. Digital Sampling
        2. 9.1.2. File Formats
        3. 9.1.3. Multimedia Hardware
      2. 9.2. Kernel and Driver Issues
        1. 9.2.1. Sound Drivers
          1. 9.2.1.1. Installation and configuration
          2. 9.2.1.2. Collecting hardware information
          3. 9.2.1.3. Configuring ISA Plug and Play (optional)
          4. 9.2.1.4. Configuring the kernel (optional)
          5. 9.2.1.5. Configuring kernel modules
          6. 9.2.1.6. Testing the installation
        2. 9.2.2. Video Drivers
        3. 9.2.3. Alternate Input Devices
      3. 9.3. Embedded and Other Multimedia Devices
      4. 9.4. Desktop Environments
        1. 9.4.1. KDE
        2. 9.4.2. GNOME
      5. 9.5. Windows Compatibility
      6. 9.6. Multimedia Applications
        1. 9.6.1. Sound Mixers
        2. 9.6.2. Multimedia Players
        3. 9.6.3. CD and DVD Burning Tools
        4. 9.6.4. Speech Tools
        5. 9.6.5. Image, Sound, and Video Editing and Management Tools
        6. 9.6.6. Imaging Tools
          1. 9.6.6.1. Image management with KimDaBa
          2. 9.6.6.2. Image manipulation with the GIMP
        7. 9.6.7. Recording Tools
        8. 9.6.8. Music Composition Tools
        9. 9.6.9. Internet Telephony and Conferencing Tools
        10. 9.6.10. Browser Plug-ins
        11. 9.6.11. Putting It All Together
      7. 9.7. Multimedia Toolkits and Development Environments
      8. 9.8. Solutions to Common Problems
      9. 9.9. References
  4. II. System Administration
    1. 10. System Administration Basics
      1. 10.1. Maintaining the System
      2. 10.2. Managing Filesystems
        1. 10.2.1. Filesystem Types
        2. 10.2.2. Mounting Filesystems
        3. 10.2.3. Automounting Devices
        4. 10.2.4. Creating Filesystems
        5. 10.2.5. Checking and Repairing Filesystems
        6. 10.2.6. Encrypted Filesystems
          1. 10.2.6.1. Configuring the kernel
          2. 10.2.6.2. Creating an encrypted filesystem
          3. 10.2.6.3. Mounting the filesystem
          4. 10.2.6.4. Security Issues
      3. 10.3. Managing Swap Space
        1. 10.3.1. Creating Swap Space
        2. 10.3.2. Enabling the Swap Space
        3. 10.3.3. Disabling Swap Space
      4. 10.4. The /proc Filesystem
      5. 10.5. Device Files
      6. 10.6. Scheduling Recurring Jobs Using cron
      7. 10.7. Executing Jobs Once
      8. 10.8. Managing System Logs
      9. 10.9. Processes
      10. 10.10. Programs That Serve You
    2. 11. Managing Users, Groups, and Permissions
      1. 11.1. Managing User Accounts
        1. 11.1.1. The passwd File
        2. 11.1.2. Shadow Passwords
        3. 11.1.3. PAM and Other Authentication Methods
        4. 11.1.4. The Group File
        5. 11.1.5. Creating Accounts
        6. 11.1.6. Deleting and Disabling Accounts
        7. 11.1.7. Modifying User Accounts
      2. 11.2. File Ownership and Permissions
        1. 11.2.1. What Permissions Mean
        2. 11.2.2. Owners and Groups
      3. 11.3. Changing the Owner, Group, and Permissions
    3. 12. Installing, Updating, and Compiling Programs
      1. 12.1. Upgrading Software
      2. 12.2. General Upgrade Procedure
        1. 12.2.1. Using RPM
        2. 12.2.2. Using dpkg and apt
      3. 12.3. Automated and Bulk Upgrades
        1. 12.3.1. YaST Online Update: Automated Updates
        2. 12.3.2. Red Carpet and ZENworks Linux Management: Alternative Package Management Tools
          1. 12.3.2.1. Installing Red Carpet
          2. 12.3.2.2. Using the Red Carpet GUI
          3. 12.3.2.3. Using the rug command
          4. 12.3.2.4. Multiple users
          5. 12.3.2.5. Operating an update server
      4. 12.4. Upgrading Software Not Provided in Packages
        1. 12.4.1. Upgrading Libraries
        2. 12.4.2. Upgrading the Compiler
      5. 12.5. Archive and Compression Utilities
        1. 12.5.1. Using gzip and bzip2
        2. 12.5.2. Using tar
        3. 12.5.3. Using tar with gzip and bzip2
        4. 12.5.4. tar Tricks
    4. 13. Networking
      1. 13.1. Networking with TCP/IP
        1. 13.1.1. TCP/IP Concepts
        2. 13.1.2. Hardware Requirements
        3. 13.1.3. Configuring TCP/IP with Ethernet
          1. 13.1.3.1. Your network configuration
          2. 13.1.3.2. The network configuration files
          3. 13.1.3.3. /etc/hosts
          4. 13.1.3.4. /etc/networks
          5. 13.1.3.5. /etc/host.conf
          6. 13.1.3.6. /etc/resolv.conf
          7. 13.1.3.7. Setting your hostname
          8. 13.1.3.8. Trying out your network
      2. 13.2. Dial-Up PPP
        1. 13.2.1. Basic PPP Configuration for Modems
          1. 13.2.1.1. Requirements
          2. 13.2.1.2. Serial device names
          3. 13.2.1.3. Setting up PPP
          4. 13.2.1.4. Writing a chat script
          5. 13.2.1.5. Starting up pppd
          6. 13.2.1.6. Configuring DNS
          7. 13.2.1.7. Troubleshooting PPP configuration
          8. 13.2.1.8. PAP and CHAP
      3. 13.3. PPP over ISDN
        1. 13.3.1. Configuring Your ISDN Hardware
        2. 13.3.2. Setting Up Synchronous PPP
        3. 13.3.3. And If It Does Not Work?
        4. 13.3.4. Where to Go from Here?
      4. 13.4. ADSL
      5. 13.5. Cable Modems
      6. 13.6. Network Diagnostics Tools
        1. 13.6.1. ping
        2. 13.6.2. traceroute
        3. 13.6.3. dig
    5. 14. Printing
      1. 14.1. Printing
        1. 14.1.1. Basic Linux Printing Commands
        2. 14.1.2. Some Common Command-Line Printing Tasks
        3. 14.1.3. nenscript and enscript
        4. 14.1.4. Printing Using GUI Tools
        5. 14.1.5. How the Printing System Processes a File
      2. 14.2. Managing Print Services
        1. 14.2.1. Linux Printing Software
          1. 14.2.1.1. Linux printing daemons
          2. 14.2.1.2. Ghostscript
          3. 14.2.1.3. Printer definitions
          4. 14.2.1.4. Additional printing software
        2. 14.2.2. Configuring Printer Hardware
          1. 14.2.2.1. Verifying printer compatibility
          2. 14.2.2.2. Printer interfaces
          3. 14.2.2.3. Verifying basic printer connectivity
        3. 14.2.3. Configuring CUPS Security
          1. 14.2.3.1. Enabling web-based configuration
          2. 14.2.3.2. Enabling or disabling browsing
          3. 14.2.3.3. Restarting CUPS
        4. 14.2.4. Defining Printers in CUPS
          1. 14.2.4.1. Accessing the printer definition tool
          2. 14.2.4.2. Creating a printer definition
          3. 14.2.4.3. Testing your printer definition
        5. 14.2.5. Fine-Tuning Printer Definitions
        6. 14.2.6. Managing Printer Queues
          1. 14.2.6.1. Using command-line tools
          2. 14.2.6.2. Using the CUPS web-based interface
        7. 14.2.7. Maintaining LPD Compatibility
          1. 14.2.7.1. Maintaining a legacy /etc/printcap file
          2. 14.2.7.2. Accepting print jobs from LPD systems
        8. 14.2.8. Printer Troubleshooting
        9. 14.2.9. Behind the Scenes: CUPS Files and Directories
    6. 15. File Sharing
      1. 15.1. Sharing Files with Windows Systems (Samba)
        1. 15.1.1. Protocols and Things Windows-Related
        2. 15.1.2. Linux System Preparation and Installing Samba
        3. 15.1.3. Accessing Remote Windows Files and Printers
          1. 15.1.3.1. Using the FTP-like smbclient to access Windows
          2. 15.1.3.2. Using Linux-kernel-based smbfs
          3. 15.1.3.3. Using Linux-kernel-based cifsfs
          4. 15.1.3.4. Using Linux desktop tools with libsmbclient
          5. 15.1.3.5. Printing to printers on Windows systems
        4. 15.1.4. Sharing Linux Files and Printers with Windows Users
          1. 15.1.4.1. Installing Samba
          2. 15.1.4.2. Configuring Samba
          3. 15.1.4.3. Starting the Samba server
          4. 15.1.4.4. Adding users
        5. 15.1.5. An Office File- and Print-Sharing Solution Using Samba
        6. 15.1.6. Automatic Printer Driver Download
        7. 15.1.7. Using smbsh for Direct File Manipulation on Remote Systems
      2. 15.2. NFS Configuration and NIS
        1. 15.2.1. Configuring Your System as an NFS Client
          1. 15.2.1.1. Using /etc/fstab NFS client entries
          2. 15.2.1.2. Finding NFS exported resources and diagnosing problems
          3. 15.2.1.3. Manual mounting of NFS filesystems
          4. 15.2.1.4. Adding a directory to the NFS server's exports
        2. 15.2.2. Configuring Your System as an NIS Client
    7. 16. The X Window System
      1. 16.1. A History of X
      2. 16.2. X Concepts
      3. 16.3. Hardware Requirements
      4. 16.4. Installing X.org
      5. 16.5. Configuring X.org
      6. 16.6. Running X
      7. 16.7. Running into Trouble
      8. 16.8. X and 3D
        1. 16.8.1. OpenGL Setup
          1. 16.8.1.1. GLX
          2. 16.8.1.2. DRI
          3. 16.8.1.3. Proprietary drivers
          4. 16.8.1.4. Configuring X.org for OpenGL
          5. 16.8.1.5. Mesa
    8. 17. System Start and Shutdown
      1. 17.1. Booting the System
        1. 17.1.1. Using a Boot Floppy
        2. 17.1.2. Using GRUB
          1. 17.1.2.1. The /etc/grub.conf file
          2. 17.1.2.2. Specifying boot-time options
          3. 17.1.2.3. Removing GRUB
      2. 17.2. System Startup and Initialization
        1. 17.2.1. Kernel Boot Messages
        2. 17.2.2. init, inittab, and rc Files
        3. 17.2.3. rc Files
      3. 17.3. Single-User Mode
      4. 17.4. Shutting Down the System
      5. 17.5. A Graphical Runlevel Editor: KSysV
    9. 18. Configuring and Building the Kernel
      1. 18.1. Building a New Kernel
        1. 18.1.1. Obtaining Kernel Sources
          1. 18.1.1.1. Unpacking the sources
          2. 18.1.1.2. Applying patches
        2. 18.1.2. Building the Kernel
          1. 18.1.2.1. Kernel configuration: make config
          2. 18.1.2.2. Preparing the ground: make clean
          3. 18.1.2.3. Compiling the kernel
          4. 18.1.2.4. Installing the kernel
      2. 18.2. Loadable Device Drivers
        1. 18.2.1. Installing the Kernel
        2. 18.2.2. Compiling Modules
        3. 18.2.3. Loading a Module
      3. 18.3. Loading Modules Automatically
    10. 19. Text Editing
      1. 19.1. Editing Files Using vi
        1. 19.1.1. Starting vi
        2. 19.1.2. Inserting Text and Moving Around
        3. 19.1.3. Deleting Text and Undoing Changes
        4. 19.1.4. Changing Text
        5. 19.1.5. Moving Around the File
        6. 19.1.6. Saving Files and Quitting vi
        7. 19.1.7. Editing Another File
        8. 19.1.8. Including Other Files
        9. 19.1.9. Running Shell Commands
        10. 19.1.10. Global Searching and Replacing
        11. 19.1.11. Moving Text and Using Registers
        12. 19.1.12. Extending vi
      2. 19.2. The (X)Emacs Editor
        1. 19.2.1. Firing It Up
        2. 19.2.2. Simple Editing Commands
        3. 19.2.3. Tutorial and Online Help
        4. 19.2.4. Deleting, Copying, and Moving Text
        5. 19.2.5. Searching and Replacing
        6. 19.2.6. Macros
        7. 19.2.7. Running Commands and Programming Within Emacs
        8. 19.2.8. Tailoring Emacs
        9. 19.2.9. Regular Expressions
        10. 19.2.10. Emacs and the X Window System
    11. 20. Text Processing
      1. 20.1. TeX and LaTeX
        1. 20.1.1. Learning the Ropes
        2. 20.1.2. Formatting and Printing
        3. 20.1.3. Further Reading
      2. 20.2. XML and DocBook
      3. 20.3. groff
        1. 20.3.1. Writing a Manual Page
        2. 20.3.2. Formatting and Installing the Manual Page
      4. 20.4. Texinfo
        1. 20.4.1. Writing the Texinfo Source
        2. 20.4.2. Formatting Texinfo
  5. III. Programming
    1. 21. Programming Tools
      1. 21.1. Programming with gcc
        1. 21.1.1. Quick Overview
        2. 21.1.2. gcc Features
        3. 21.1.3. Basic gcc Usage
        4. 21.1.4. Using Multiple Source Files
        5. 21.1.5. Optimizing
        6. 21.1.6. Enabling Debugging Code
        7. 21.1.7. More Fun with Libraries
          1. 21.1.7.1. Creating shared libraries
        8. 21.1.8. Using C++
      2. 21.2. Makefiles
        1. 21.2.1. What make Does
        2. 21.2.2. Some Syntax Rules
        3. 21.2.3. Macros
        4. 21.2.4. Suffix Rules and Pattern Rules
        5. 21.2.5. Multiple Commands
        6. 21.2.6. Including Other makefiles
        7. 21.2.7. Interpreting make Messages
        8. 21.2.8. Autoconf, Automake, and Other Makefile Tools
      3. 21.3. Debugging with gdb
        1. 21.3.1. Tracing a Program
        2. 21.3.2. Examining a Core File
        3. 21.3.3. Debugging a Running Program
        4. 21.3.4. Changing and Examining Data
        5. 21.3.5. Getting Information
        6. 21.3.6. Miscellaneous Features
          1. 21.3.6.1. Breakpoints and watchpoints
          2. 21.3.6.2. Instruction-level debugging
          3. 21.3.6.3. Using Emacs with gdb
      4. 21.4. Useful Utilities for C Programmers
        1. 21.4.1. Debuggers
        2. 21.4.2. Profiling and Performance Tools
        3. 21.4.3. Using strace
        4. 21.4.4. Using Valgrind
        5. 21.4.5. Interface Building Tools
        6. 21.4.6. Revision Control Tools: RCS
        7. 21.4.7. Revision Control Tools: CVS
          1. 21.4.7.1. Setting up a CVS repository
          2. 21.4.7.2. Working with CVS
          3. 21.4.7.3. CVS over the Internet
        8. 21.4.8. Patching Files
        9. 21.4.9. Indenting Code
      5. 21.5. Using Perl
        1. 21.5.1. A Sample Program
        2. 21.5.2. More Features
        3. 21.5.3. Pros and Cons
      6. 21.6. Java
        1. 21.6.1. The Promise of Java, or Why You Might Want to Use Java
        2. 21.6.2. Getting Java for Linux
      7. 21.7. Python
        1. 21.7.1. Parsing Output from the Last Command Using Python
        2. 21.7.2. Developing a Calculator Using Python
      8. 21.8. Other Languages
      9. 21.9. Introduction to OpenGL Programming
        1. 21.9.1. GLUT
        2. 21.9.2. Qt
      10. 21.10. Integrated Development Environments
    2. 22. Running a Web Server
      1. 22.1. Configuring Your Own Web Server
        1. 22.1.1. httpd.conf
        2. 22.1.2. srm.conf and access.conf
        3. 22.1.3. Starting httpd
    3. 23. Transporting and Handling Email Messages
      1. 23.1. The Postfix MTA
        1. 23.1.1. A Word About DNS
        2. 23.1.2. Installing Postfix
        3. 23.1.3. Postfix Configuration
        4. 23.1.4. Starting Postfix
        5. 23.1.5. Postfix Logging
        6. 23.1.6. Running Postfix on System Startup
        7. 23.1.7. Postfix Relay Control
        8. 23.1.8. Additional Configurations
      2. 23.2. Procmail
        1. 23.2.1. Procmail Concepts
        2. 23.2.2. Preparing Procmail for Use
          1. 23.2.2.1. Setting up a sandbox
        3. 23.2.3. Recipe Syntax
        4. 23.2.4. Examples
          1. 23.2.4.1. Making a backup of all incoming mail
          2. 23.2.4.2. Storing mail from a mailing list in a special mailbox
          3. 23.2.4.3. Forward messages as SMS
          4. 23.2.4.4. Sending an out-of-office reply
      3. 23.3. Filtering Spam
    4. 24. Running an FTP Server
      1. 24.1. Introduction
      2. 24.2. Compiling and Installing
        1. 24.2.1. RPM Install
        2. 24.2.2. Compiling from Source
      3. 24.3. Running ProFTPD
      4. 24.4. Configuration
        1. 24.4.1. Getting Started
        2. 24.4.2. Basic Configuration
        3. 24.4.3. Advanced Configuration
        4. 24.4.4. Virtual Hosts
  6. IV. Network Services
    1. 25. Running Web Applications with MySQL and PHP
      1. 25.1. MySQL
        1. 25.1.1. MySQL Installation and Initial Configuration
        2. 25.1.2. Initial Tasks: Setting Up Users and SQL
        3. 25.1.3. Creating and Populating a Database
      2. 25.2. PHP
        1. 25.2.1. Some Sample PHP
        2. 25.2.2. PHP4 as an Apache Module
      3. 25.3. The LAMP Server in Action
    2. 26. Running a Secure System
      1. 26.1. A Perspective on System Security
      2. 26.2. Initial Steps in Setting Up a Secure System
        1. 26.2.1. Shutting Down Unwanted Network Daemons
        2. 26.2.2. Top 10 Things You Should Never Do
      3. 26.3. TCP Wrapper Configuration
        1. 26.3.1. Using TCP Wrappers with inetd
        2. 26.3.2. Using TCP Wrappers with xinetd
        3. 26.3.3. /etc/hosts.allow and /etc/hosts.deny
      4. 26.4. Firewalls: Filtering IP Packets
        1. 26.4.1. netfilter Basics
          1. 26.4.1.1. Using the iptables command
        2. 26.4.2. Developing IP Filtering Rulesets
        3. 26.4.3. IP Filter Management and Script Files
        4. 26.4.4. Sample netfilter Configurations
          1. 26.4.4.1. Simple IP filtering example
          2. 26.4.4.2. IP filtering to protect an entire network
          3. 26.4.4.3. IP masquerading example
      5. 26.5. SELinux
    3. 27. Backup and Recovery
      1. 27.1. Making Backups
        1. 27.1.1. Simple Backups
          1. 27.1.1.1. Backing up to tape
          2. 27.1.1.2. Backing up to CD-R
          3. 27.1.1.3. Backing up to hard disks
          4. 27.1.1.4. To compress or not to compress?
        2. 27.1.2. Incremental Backups
      2. 27.2. What to Do in an Emergency
        1. 27.2.1. Repairing Filesystems
        2. 27.2.2. Accessing Damaged Files
        3. 27.2.3. Restoring Files from Backup
    4. 28. Heterogeneous Networking and Running Windows Programs
      1. 28.1. Sharing Partitions
        1. 28.1.1. Filesystems and Mounting
        2. 28.1.2. File Translation Utilities
      2. 28.2. Emulation and Virtual Operating Systems
        1. 28.2.1. Wine
          1. 28.2.1.1. Getting and installing Wine
          2. 28.2.1.2. A simple example of using Wine
          3. 28.2.1.3. Configuring Wine
          4. 28.2.1.4. Running Wine
          5. 28.2.1.5. Further help
          6. 28.2.1.6. CrossOver Office
        2. 28.2.2. VMware Workstation
          1. 28.2.2.1. So what does it actually do?
          2. 28.2.2.2. Installing VMware Workstation 5
          3. 28.2.2.3. VMWare Workstation 5 features
        3. 28.2.3. Other Programs for Running MS-DOS and Windows Applications on Linux
      3. 28.3. Remote Desktop Access to Windows Programs
        1. 28.3.1. rdesktop and TSCLient
          1. 28.3.1.1. Setting up Windows Terminal Services
          2. 28.3.1.2. Connecting to the terminal server
          3. 28.3.1.3. Making Windows applications multiuser aware
          4. 28.3.1.4. Using Windows applications from the Linux desktop
        2. 28.3.2. Virtual Network Connection
          1. 28.3.2.1. Setting up VNC
          2. 28.3.2.2. Running a Linux VNC server
      4. 28.4. FreeNX: Linux as a Remote Desktop Server
  7. A. Sources of Linux Information
    1. A.1. Linux Documentation Project
    2. A.2. FTP Sites
    3. A.3. World Wide Web Sites
      1. A.3.1. General Documentation
      2. A.3.2. Open Source Projects
      3. A.3.3. Programming Languages and Tools
      4. A.3.4. News and Information Sites
      5. A.3.5. Linux Software Directories and Download Sites
      6. A.3.6. Linux Distributions
      7. A.3.7. Commercial Linux Software Companies
      8. A.3.8. Internet RFCs and Other Standards
      9. A.3.9. Miscellaneous
  8. About the Authors
  9. Colophon
  10. Copyright