You are previewing Linux® Bible, 2008 Edition: Boot Up to Ubuntu®, Fedora®, KNOPPIX, Debian®, openSUSE®, and 11 Other Distributions.
O'Reilly logo
Linux® Bible, 2008 Edition: Boot Up to Ubuntu®, Fedora®, KNOPPIX, Debian®, openSUSE®, and 11 Other Distributions

Book Description

Great Content from a Bestselling Author:The Linux Bible 2008 Edition is the best first Linux book for new or migrating users. By focusing on the building-block nature of Linux, and offering true up-to-date descriptions of Linux technology, the Bible helps the reader learn how to jump headlong into Linux, regardless of the Linux distribution they choose. Descriptions of different Linux distributions helps users choose the Linux distribution that's right for them. Detailed installation instructions, step-by-step descriptions of key desktop and server components, and the actual distributions on CD and DVD, let readers get started using Linux immediately. The Bible will serve a broad range of readers, from those starting with Linux to anyone looking to evaluate different Linux distributions. It also covers broad usage including Linux desktops, servers, and firewall/routers.

New features: Instead of just telling you about how the technology works, new "Bringing Linux In" sections describe how people have implemented Linux in the real world. New sections describe real-life examples, such as how:

  • A Small office created an inexpensive Web, print, and file server

  • A do-it-yourselfer combined Linux audio and video features to create a home multimedia center

  • A school build a computer lab with free educational software

  • A large corporation deployed thousands of Linux systems

Unique CD and DVD: No other book on the market includes so many Linux distributions on CD and DVD. Our DVD and CD will include the latest versions of at least the following Linux distributions: Fedora, Ubuntu, Debian, SUSE, KNOPPIX, Gentoo, Slackware, Mandriva, Damn Small Linux, SLAX, BackTrack, GeeXbox, and others.

Table of Contents

  1. Copyright
  2. About the Authors
  3. Credits
  4. Acknowledgments
  5. Introduction
    1. Understanding the Linux Mystique
    2. How This Book Is Organized
    3. What You Will Get from This Book
    4. Conventions Used in This Book
  6. I. Linux First Steps
    1. 1. Starting with Linux
      1. 1.1. Taking Your First Step
      2. 1.2. Starting Right Now
      3. 1.3. Understanding Linux
      4. 1.4. Exploring Linux History
        1. 1.4.1. From a Free-Flowing UNIX Culture at Bell Labs
        2. 1.4.2. To a Commercialized UNIX
          1. 1.4.2.1. BSD Arrives
          2. 1.4.2.2. UNIX Laboratory and Commercialization
        3. 1.4.3. To a GNU Free-Flowing (not) UNIX
        4. 1.4.4. BSD Loses Some Steam
        5. 1.4.5. Linus Builds the Missing Piece
      5. 1.5. What's So Great About Linux?
        1. 1.5.1. Features in Linux
        2. 1.5.2. OSI Open Source Definition
        3. 1.5.3. Vibrant Communities
        4. 1.5.4. Major Software Projects
      6. 1.6. Linux in the Real World
        1. 1.6.1. Linux in Schools
        2. 1.6.2. Linux in Small Business
        3. 1.6.3. Linux in the Enterprise
      7. 1.7. Linux Myths, Legends, and FUD
        1. 1.7.1. Can You Stop Worrying About Viruses?
        2. 1.7.2. Will You Be Sued for Using Linux?
          1. 1.7.2.1. Microsoft Versus Linux
          2. 1.7.2.2. The SCO Lawsuits
          3. 1.7.2.3. Software Patents
          4. 1.7.2.4. Other Potentially Litigious Issues
        3. 1.7.3. Can Linux Really Run on Everything from Handhelds to Supercomputers?
        4. 1.7.4. Will Microsoft Crush Linux?
        5. 1.7.5. Are You on Your Own If You Use Linux?
        6. 1.7.6. Is Linux Only for Geeks?
        7. 1.7.7. How Do Companies Make Money with Linux?
        8. 1.7.8. How Different Are Linux Distributions from One Another?
        9. 1.7.9. Is the Linux Mascot Really a Penguin?
      8. 1.8. Getting Started with Linux
      9. 1.9. Summary
    2. 2. Running Commands from the Shell
      1. 2.1. Starting a Shell
        1. 2.1.1. Using the Shell Prompt
        2. 2.1.2. Using a Terminal Window
        3. 2.1.3. Using Virtual Terminals
      2. 2.2. Choosing Your Shell
        1. 2.2.1. Using bash (and Earlier sh) Shells
        2. 2.2.2. Using tcsh (and Earlier csh) Shells
        3. 2.2.3. Using ash
        4. 2.2.4. Using ksh
        5. 2.2.5. Using zsh
      3. 2.3. Exploring the Shell
        1. 2.3.1. Checking Your Login Session
        2. 2.3.2. Checking Directories and Permissions
        3. 2.3.3. Checking System Activity
        4. 2.3.4. Exiting the Shell
      4. 2.4. Using the Shell in Linux
        1. 2.4.1. Locating Commands
        2. 2.4.2. Rerunning Commands
          1. 2.4.2.1. Command-Line Editing
          2. 2.4.2.2. Command-Line Completion
          3. 2.4.2.3. Command-Line Recall
        3. 2.4.3. Connecting and Expanding Commands
          1. 2.4.3.1. Piping Commands
          2. 2.4.3.2. Sequential Commands
          3. 2.4.3.3. Background Commands
          4. 2.4.3.4. Expanding Commands
          5. 2.4.3.5. Expanding Arithmetic Expressions
          6. 2.4.3.6. Expanding Environment Variables
      5. 2.5. Creating Your Shell Environment
        1. 2.5.1. Configuring Your Shell
          1. 2.5.1.1. Setting Your Prompt
          2. 2.5.1.2. Adding Environment Variables
          3. 2.5.1.3. Adding Aliases
        2. 2.5.2. Using Shell Environment Variables
          1. 2.5.2.1. Common Shell Environment Variables
          2. 2.5.2.2. Setting Your Own Environment Variables
        3. 2.5.3. Managing Background and Foreground Processes
          1. 2.5.3.1. Starting Background Processes
          2. 2.5.3.2. Using Foreground and Background Commands
      6. 2.6. Working with the Linux File System
        1. 2.6.1. Creating Files and Directories
          1. 2.6.1.1. Using Metacharacters and Operators
          2. 2.6.1.2. Using File-Matching Metacharacters
          3. 2.6.1.3. Using File-Redirection Metacharacters
          4. 2.6.1.4. Understanding File Permissions
        2. 2.6.2. Moving, Copying, and Deleting Files
      7. 2.7. Using the vi Text Editor
        1. 2.7.1. Starting with vi
        2. 2.7.2. Moving Around the File
        3. 2.7.3. Searching for Text
        4. 2.7.4. Using Numbers with Commands
      8. 2.8. Summary
    3. 3. Getting into the Desktop
      1. 3.1. Understanding Your Desktop
      2. 3.2. Starting the Desktop
        1. 3.2.1. Boot to the Desktop
        2. 3.2.2. Boot to a Graphical Login
        3. 3.2.3. Boot to a Text Prompt
      3. 3.3. K Desktop Environment
        1. 3.3.1. Using the KDE Desktop
        2. 3.3.2. Managing Files with the Konqueror File Manager
          1. 3.3.2.1. Working with Files
          2. 3.3.2.2. Searching for Files
          3. 3.3.2.3. Creating New Files and Folders
          4. 3.3.2.4. Using Other Browser Features
        3. 3.3.3. Configuring Konqueror Options
        4. 3.3.4. Managing Windows
          1. 3.3.4.1. Using the Taskbar
          2. 3.3.4.2. Uncluttering the Desktop
          3. 3.3.4.3. Moving Windows
          4. 3.3.4.4. Resizing Windows
          5. 3.3.4.5. Pinning Windows on the Top or Bottom
          6. 3.3.4.6. Using Virtual Desktops
        5. 3.3.5. Configuring the Desktop
          1. 3.3.5.1. Changing the Display
          2. 3.3.5.2. Changing Panel Attributes
        6. 3.3.6. Adding Application Launchers and MIME Types
          1. 3.3.6.1. Adding Applications to the Panel
          2. 3.3.6.2. Adding Applications to the Desktop
      4. 3.4. The GNOME Desktop
        1. 3.4.1. Using the Metacity Window Manager
        2. 3.4.2. Using the GNOME Panels
          1. 3.4.2.1. Using the Applications, Places, and System Menus
          2. 3.4.2.2. Adding an Applet
          3. 3.4.2.3. Adding Another Panel
          4. 3.4.2.4. Adding an Application Launcher
          5. 3.4.2.5. Adding a Drawer
          6. 3.4.2.6. Changing Panel Properties
        3. 3.4.3. Using the Nautilus File Manager
        4. 3.4.4. 3D Effects with AIGLX
        5. 3.4.5. Changing GNOME Preferences
        6. 3.4.6. Exiting GNOME
      5. 3.5. Configuring a GNOME Online Desktop
      6. 3.6. Configuring Your Own Desktop
        1. 3.6.1. Configuring X
          1. 3.6.1.1. Creating a Working X Configuration File
          2. 3.6.1.2. Getting New X Drivers
          3. 3.6.1.3. Tuning Up Your X Configuration File
        2. 3.6.2. Choosing a Window Manager
        3. 3.6.3. Choosing Your Personal Window Manager
      7. 3.7. Getting More Information
      8. 3.8. Summary
  7. II. Running the Show
    1. 4. Learning Basic Administration
      1. 4.1. Graphical Administration Tools
        1. 4.1.1. Using Web-Based Administration
          1. 4.1.1.1. Open Source Projects Offering Web Administration
          2. 4.1.1.2. The Webmin Administration Tool
        2. 4.1.2. Graphical Administration with Different Distributions
          1. 4.1.2.1. Red Hat Config Tools
          2. 4.1.2.2. SUSE YaST Tools
      2. 4.2. Using the root Login
        1. 4.2.1. Becoming Root from the Shell (su Command)
        2. 4.2.2. Allowing Limited Administrative Access
      3. 4.3. Exploring Administrative Commands, Configuration Files, and Log Files
        1. 4.3.1. Administrative Commands
        2. 4.3.2. Administrative Configuration Files
        3. 4.3.3. Administrative Log Files
      4. 4.4. Using sudo and Other Administrative Logins
      5. 4.5. Administering Your Linux System
      6. 4.6. Creating User Accounts
        1. 4.6.1. Adding Users with useradd
        2. 4.6.2. Setting User Defaults
        3. 4.6.3. Modifying Users with usermod
        4. 4.6.4. Deleting Users with userdel
      7. 4.7. Configuring Hardware
        1. 4.7.1. Managing Removable Hardware
          1. 4.7.1.1. Removable Media on a GNOME Desktop
          2. 4.7.1.2. Removable Media on a SUSE KDE Desktop
        2. 4.7.2. Working with Loadable Modules
          1. 4.7.2.1. Listing Loaded Modules
          2. 4.7.2.2. Loading Modules
          3. 4.7.2.3. Removing Modules
      8. 4.8. Managing File Systems and Disk Space
        1. 4.8.1. Mounting File Systems
          1. 4.8.1.1. Supported File Systems
          2. 4.8.1.2. Using the fstab File to Define Mountable File Systems
          3. 4.8.1.3. Using the mount Command to Mount File Systems
            1. 4.8.1.3.1. Mounting Removable Media
            2. 4.8.1.3.2. Mounting a Disk Image in Loopback
          4. 4.8.1.4. Using the umount Command
        2. 4.8.2. Using the mkfs Command to Create a File System
        3. 4.8.3. Adding a Hard Disk
        4. 4.8.4. Checking System Space
          1. 4.8.4.1. Displaying System Space with df
          2. 4.8.4.2. Checking Disk Usage with du
          3. 4.8.4.3. Finding Disk Consumption with find
      9. 4.9. Monitoring System Performance
      10. 4.10. Summary
    2. 5. Getting on the Internet
      1. 5.1. Connecting to the Network
        1. 5.1.1. Connecting via Dial-Up Service
        2. 5.1.2. Connecting a Single Computer to Broadband
        3. 5.1.3. Connecting Multiple Computers to Broadband
        4. 5.1.4. Connecting Servers
        5. 5.1.5. Connecting Other Equipment
      2. 5.2. Using Ethernet Connections to the Internet
        1. 5.2.1. Configuring Ethernet During Installation
        2. 5.2.2. Configuring Ethernet from the Desktop
        3. 5.2.3. Using Network Configuration GUI in Fedora
        4. 5.2.4. Identifying Other Computers (Hosts and DNS)
        5. 5.2.5. Using the Network Settings GUI in Ubuntu
        6. 5.2.6. Understanding Your Internet Connection
      3. 5.3. Using Dial-Up Connections to the Internet
        1. 5.3.1. Getting Information
        2. 5.3.2. Setting Up Dial-Up PPP
        3. 5.3.3. Creating a Dial-Up Connection with the Internet Configuration Wizard
        4. 5.3.4. Launching Your PPP Connection
        5. 5.3.5. Launching Your PPP Connection on Demand
        6. 5.3.6. Checking Your PPP Connection
        7. 5.3.7. Checking That Your Modem Was Detected
      4. 5.4. Connecting to the Internet with Wireless
      5. 5.5. Summary
    3. 6. Securing Linux
      1. 6.1. Linux Security Checklist
        1. 6.1.1. Finding Distribution-Specific Security Resources
        2. 6.1.2. Finding General Security Resources
      2. 6.2. Using Linux Securely
        1. 6.2.1. Using Password Protection
        2. 6.2.2. Choosing Good Passwords
        3. 6.2.3. Using a Shadow Password File
          1. 6.2.3.1. Breaking Encrypted Passwords
          2. 6.2.3.2. Checking for the Shadow Password File
      3. 6.3. Using Log Files
        1. 6.3.1. The Role of syslogd
        2. 6.3.2. Redirecting Logs to a Loghost with syslogd
        3. 6.3.3. Understanding the messages Log File
      4. 6.4. Using Secure Shell Tools
        1. 6.4.1. Starting the ssh Service
        2. 6.4.2. Using the ssh, sftp, and scp Commands
        3. 6.4.3. Using ssh, scp, and sftp Without Passwords
      5. 6.5. Securing Linux Servers
        1. 6.5.1. Controlling Access to Services with TCP Wrappers
        2. 6.5.2. Understanding Attack Techniques
        3. 6.5.3. Protecting Against Denial of Service Attacks
          1. 6.5.3.1. Mailbombing
            1. 6.5.3.1.1. Blocking Mail with Procmail
            2. 6.5.3.1.2. Blocking Mail with sendmail
          2. 6.5.3.2. Spam Relaying
          3. 6.5.3.3. Smurf Amplification Attack
        4. 6.5.4. Protecting Against Distributed DOS Attacks
        5. 6.5.5. Protecting Against Intrusion Attacks
          1. 6.5.5.1. Evaluating Access to Network Services
          2. 6.5.5.2. Disabling Network Services
        6. 6.5.6. Securing Servers with SELinux
        7. 6.5.7. Protecting Web Servers with Certificates and Encryption
          1. 6.5.7.1. Symmetric Cryptography
          2. 6.5.7.2. Asymmetric Cryptography
          3. 6.5.7.3. Secure Sockets Layer
            1. 6.5.7.3.1. Creating SSL Certificates
            2. 6.5.7.3.2. Using Third-Party Certificate Signers
            3. 6.5.7.3.3. Creating a Certificate Service Request
            4. 6.5.7.3.4. Getting Your CSR Signed
            5. 6.5.7.3.5. Creating Self-Signed Certificates
            6. 6.5.7.3.6. Restarting Your Web Server
            7. 6.5.7.3.7. Troubleshooting Your Certificates
      6. 6.6. Using Linux Live CD Security Tools
        1. 6.6.1. Advantages of Security Live CDs
        2. 6.6.2. Using INSERT to Check for rootkits
      7. 6.7. Summary
  8. III. Choosing and Installing a Linux Distribution
    1. 7. Installing Linux
      1. 7.1. Choosing a Linux Distribution
        1. 7.1.1. Linux at Work
        2. 7.1.2. Other Distributions
      2. 7.2. Getting Your Own Linux Distribution
        1. 7.2.1. Finding Another Linux Distribution
        2. 7.2.2. Understanding What You Need
        3. 7.2.3. Downloading the Distribution
        4. 7.2.4. Burning the Distribution to CD
      3. 7.3. Exploring Common Installation Topics
        1. 7.3.1. Knowing Your Computer Hardware
        2. 7.3.2. Upgrading or Installing from Scratch
        3. 7.3.3. Dual Booting with Windows or Just Linux?
        4. 7.3.4. Using Installation Boot Options
        5. 7.3.5. Partitioning Hard Drives
          1. 7.3.5.1. Partitioning with Disk Druid During Installation
            1. 7.3.5.1.1. Reasons for Partitioning
            2. 7.3.5.1.2. Deleting, Adding, and Editing Partitions
          2. 7.3.5.2. Partitioning with fdisk
          3. 7.3.5.3. Tips for Creating Partitions
        6. 7.3.6. Using LILO or GRUB Boot Loaders
          1. 7.3.6.1. Booting Your Computer with GRUB
          2. 7.3.6.2. Booting with GRUB
          3. 7.3.6.3. Temporarily Changing Boot Options
          4. 7.3.6.4. Permanently Changing Boot Options
          5. 7.3.6.5. Adding a New GRUB Boot Image
          6. 7.3.6.6. Booting Your Computer with LILO
            1. 7.3.6.6.1. Using LILO
            2. 7.3.6.6.2. Setting Up the /etc/lilo.conf File
          7. 7.3.6.7. Changing Your Boot Loader
        7. 7.3.7. Configuring Networking
        8. 7.3.8. Configuring Other Administrative Features
      4. 7.4. Installing from the Linux Bible CD or DVD
      5. 7.5. Summary
    2. 8. Running Fedora and Red Hat Enterprise Linux
      1. 8.1. Digging into Features
        1. 8.1.1. Red Hat Installer (Anaconda)
        2. 8.1.2. RPM Package Management
        3. 8.1.3. Kudzu Hardware Detection
        4. 8.1.4. Red Hat Desktop Look-and-Feel
        5. 8.1.5. System Configuration Tools
      2. 8.2. Going Forward with Fedora
        1. 8.2.1. Growing Community Support for Fedora
        2. 8.2.2. Forums and Mailing Lists
      3. 8.3. Fedora Comes of Age
      4. 8.4. Installing Fedora
        1. 8.4.1. Choosing Computer Hardware
        2. 8.4.2. Choosing an Installation Method
          1. 8.4.2.1. Installing on Multiple Computers
          2. 8.4.2.2. Installation Guides
        3. 8.4.3. Choosing to Install or Upgrade
        4. 8.4.4. Beginning the Installation
        5. 8.4.5. Running the Fedora Setup Agent
      5. 8.5. Summary
    3. 9. Running Debian GNU/Linux
      1. 9.1. Inside Debian GNU/Linux
        1. 9.1.1. Debian Packages
        2. 9.1.2. Debian Package Management Tools
        3. 9.1.3. Debian Releases
      2. 9.2. Getting Help with Debian
      3. 9.3. Installing Debian GNU/Linux
        1. 9.3.1. Hardware Requirements and Installation Planning
          1. 9.3.1.1. Workstations
          2. 9.3.1.2. Servers
        2. 9.3.2. Running the Installer
      4. 9.4. Managing Your Debian System
        1. 9.4.1. Configuring Network Connections
          1. 9.4.1.1. IP Networks: Ethernet and Wireless
          2. 9.4.1.2. Dial-Up PPP Connections
          3. 9.4.1.3. PPPoE Connections
        2. 9.4.2. Package Management Using APT
          1. 9.4.2.1. Managing the List of Package Repositories
          2. 9.4.2.2. Updating the APT Package Database
          3. 9.4.2.3. Finding and Installing Packages
          4. 9.4.2.4. Removing Packages
          5. 9.4.2.5. Upgrading Your System
        3. 9.4.3. Package Management Using dpkg
          1. 9.4.3.1. Installing and Removing Packages
          2. 9.4.3.2. Querying the Package Database
          3. 9.4.3.3. Examining a Package File
        4. 9.4.4. Installing Package Sets (Tasks) with Tasksel
        5. 9.4.5. Alternatives, Diversions, and Stat Overrides
        6. 9.4.6. Managing Package Configuration with debconf
      5. 9.5. Summary
    4. 10. Running SUSE and openSUSE Linux
      1. 10.1. Understanding SUSE and openSUSE
      2. 10.2. What's in SUSE
        1. 10.2.1. Installation and Configuration with YaST
        2. 10.2.2. RPM Package Management
        3. 10.2.3. Automated Software Updates
        4. 10.2.4. Managing Software with zypper
      3. 10.3. Getting Support for SUSE and openSUSE
      4. 10.4. Installing openSUSE
        1. 10.4.1. Before You Begin
        2. 10.4.2. Starting Installation
          1. 10.4.2.1. Installation Settings
          2. 10.4.2.2. Configuration Settings
      5. 10.5. Starting with openSUSE
      6. 10.6. Summary
    5. 11. Running KNOPPIX
      1. 11.1. KNOPPIX Features
      2. 11.2. Understanding KNOPPIX
        1. 11.2.1. KNOPPIX News
        2. 11.2.2. Looking Inside KNOPPIX
        3. 11.2.3. What's Cool About KNOPPIX
        4. 11.2.4. Examining Challenges with KNOPPIX
        5. 11.2.5. Seeing Where KNOPPIX Comes From
        6. 11.2.6. Exploring Uses for KNOPPIX
      3. 11.3. Starting KNOPPIX
        1. 11.3.1. Getting a Computer
        2. 11.3.2. Booting KNOPPIX
        3. 11.3.3. Correcting Boot Problems
          1. 11.3.3.1. Customizing KNOPPIX
          2. 11.3.3.2. Special Features and Workarounds
      4. 11.4. Using KNOPPIX
        1. 11.4.1. Getting on the Network
        2. 11.4.2. Installing Software in KNOPPIX
        3. 11.4.3. Saving Files in KNOPPIX
          1. 11.4.3.1. Writing to Hard Disk
            1. 11.4.3.1.1. Mounting Linux Partitions for Writing
            2. 11.4.3.1.2. Mounting Windows Partitions for Writing
          2. 11.4.3.2. Creating a Persistent Home Directory
        4. 11.4.4. Keeping Your KNOPPIX Configuration
        5. 11.4.5. Restarting KNOPPIX
      5. 11.5. Summary
    6. 12. Running Yellow Dog Linux
      1. 12.1. Understanding Yellow Dog Linux
      2. 12.2. Going Forward with Yellow Dog
      3. 12.3. Digging into Yellow Dog
      4. 12.4. Installing Yellow Dog Linux
        1. 12.4.1. Hardware Support
        2. 12.4.2. Planning Your Installation
          1. 12.4.2.1. Installing Mac OS X and Yellow Dog Linux on One Hard Drive
          2. 12.4.2.2. Installing Mac OS 9 or Earlier and Yellow Dog Linux on One Hard Drive
          3. 12.4.2.3. Installing Mac OS 9 or Earlier, Mac OS X, and Yellow Dog Linux on Multiple Hard Drives
          4. 12.4.2.4. Yellow Dog Linux 3.0.1 Special Considerations
        3. 12.4.3. Beginning the Installation
        4. 12.4.4. Rebooting Your Linux Mac
      5. 12.5. Updating Yellow Dog Linux
      6. 12.6. Running Mac Applications with Mac-on-Linux
      7. 12.7. Support Options
      8. 12.8. Summary
    7. 13. Running Gentoo Linux
      1. 13.1. Understanding Gentoo
        1. 13.1.1. Gentoo's Open Source Spirit
        2. 13.1.2. The Gentoo Community
        3. 13.1.3. Building, Tuning, and Tweaking Linux
        4. 13.1.4. Where Gentoo Is Used
      2. 13.2. What's in Gentoo
        1. 13.2.1. Managing Software with Portage
        2. 13.2.2. Finding Software Packages
        3. 13.2.3. New Gentoo Features
      3. 13.3. Installing Gentoo
        1. 13.3.1. Getting Gentoo
          1. 13.3.1.1. Live CD Install
          2. 13.3.1.2. Minimal/Universal Install CD
        2. 13.3.2. Starting Gentoo Installation from a Live CD
        3. 13.3.3. Starting Gentoo Installation from a Minimal CD
        4. 13.3.4. Getting Software with emerge
      4. 13.4. Summary
    8. 14. Running Slackware Linux
      1. 14.1. Getting into Slackware
      2. 14.2. Characterizing the Slackware Community
        1. 14.2.1. The Slackware Creator
        2. 14.2.2. Slackware Users
        3. 14.2.3. Slackware Internet Sites
      3. 14.3. Challenges of Using Slackware
      4. 14.4. Using Slackware as a Development Platform
      5. 14.5. Installing Slackware
        1. 14.5.1. Getting Slackware
        2. 14.5.2. New Features in Slackware 12.0
        3. 14.5.3. Hardware Requirements
        4. 14.5.4. Starting Installation
      6. 14.6. Starting with Slackware
      7. 14.7. Summary
    9. 15. Running Linspire and Freespire
      1. 15.1. Overview of Linspire
      2. 15.2. Which Version Is Right for You?
        1. 15.2.1. Installing Software with Click-N-Run
        2. 15.2.2. Other Installation Options
      3. 15.3. Linspire and Freespire Support
        1. 15.3.1. Forums and Information
        2. 15.3.2. Audio Assistant
      4. 15.4. Installing Linspire or Freespire
        1. 15.4.1. Hardware Requirements
        2. 15.4.2. Installing Linspire or Freespire
      5. 15.5. Securing Linspire and Freespire
      6. 15.6. Summary
    10. 16. Running Mandriva
      1. 16.1. Mandriva Features
      2. 16.2. Exploring Mandriva
        1. 16.2.1. Mandriva Installer (DrakX)
        2. 16.2.2. RPM Package Management with RPMDrake
        3. 16.2.3. Mandriva Linux Control Center
      3. 16.3. The Mandriva Community
        1. 16.3.1. RPM Repository on Mandriva Club
        2. 16.3.2. Mandriva Forums
      4. 16.4. Installing Mandriva Limited Edition
        1. 16.4.1. The Right Hardware for Mandriva
        2. 16.4.2. Installing Mandriva with the DrakX Installer
      5. 16.5. Summary
    11. 17. Running Ubuntu Linux
      1. 17.1. Overview of Ubuntu
        1. 17.1.1. Ubuntu Releases
        2. 17.1.2. Ubuntu Installer
        3. 17.1.3. Ubuntu as a Desktop
        4. 17.1.4. Ubuntu as a Server
        5. 17.1.5. Ubuntu Spin-Offs
        6. 17.1.6. Challenges Facing Ubuntu
      2. 17.2. Installing Ubuntu
      3. 17.3. Starting with Ubuntu
        1. 17.3.1. Trying Out the Desktop
        2. 17.3.2. Adding More Software
      4. 17.4. Getting More Information About Ubuntu
      5. 17.5. Summary
    12. 18. Running a Linux Firewall/Router
      1. 18.1. Understanding Firewalls
      2. 18.2. Protecting Desktops with Firewalls
        1. 18.2.1. Starting Your Firewall in Fedora
        2. 18.2.2. Configuring a Firewall in Mandriva
      3. 18.3. Using Firewalls with iptables
        1. 18.3.1. Starting with iptables
          1. 18.3.1.1. Setting Some Rules
          2. 18.3.1.2. Saving Firewall Settings
          3. 18.3.1.3. Checking Your Firewall
        2. 18.3.2. Using iptables to Do SNAT or IP Masquerading
        3. 18.3.3. Adding Modules with iptables
        4. 18.3.4. Using iptables as a Transparent Proxy
        5. 18.3.5. Using iptables for Port Forwarding
          1. 18.3.5.1. Getting iptables Scripts
          2. 18.3.5.2. Finding Out More About iptables
      4. 18.4. Making a Coyote Linux Bootable Floppy Firewall
        1. 18.4.1. Creating a Coyote Linux Firewall
        2. 18.4.2. Building the Coyote Linux Floppy
        3. 18.4.3. Running the Coyote Linux Floppy Firewall
        4. 18.4.4. Managing the Coyote Linux Floppy Firewall
          1. 18.4.4.1. Using a Web Interface
          2. 18.4.4.2. Using a Remote Login
      5. 18.5. Using Other Firewall Distributions
      6. 18.6. Summary
    13. 19. Running Bootable Linux Distributions
      1. 19.1. Overview of Bootable Linux Distributions
      2. 19.2. Choosing a Bootable Linux
        1. 19.2.1. Security and Rescue Bootables
          1. 19.2.1.1. BackTrack Network Security Suite
          2. 19.2.1.2. SystemRescueCd
          3. 19.2.1.3. KNOPPIX Security Tools Distribution
          4. 19.2.1.4. The Inside Security Rescue Toolkit
        2. 19.2.2. Demonstration Bootables
        3. 19.2.3. Multimedia Bootables
          1. 19.2.3.1. MoviX
          2. 19.2.3.2. GeeXboX
          3. 19.2.3.3. KnoppMyth
          4. 19.2.3.4. Dyne:bolic
        4. 19.2.4. Tiny Desktops
          1. 19.2.4.1. Damn Small Linux
          2. 19.2.4.2. Puppy Linux
      3. 19.3. Special-Purpose Bootables
      4. 19.4. Customizing a Bootable Linux
      5. 19.5. Summary
  9. IV. Running Applications
    1. 20. Playing Music and Video
      1. 20.1. Playing Digital Media and Obeying the Law
        1. 20.1.1. Copyright Protection Issues
        2. 20.1.2. Exploring Codecs
      2. 20.2. Playing Music
        1. 20.2.1. Setting Up Audio Cards
        2. 20.2.2. Choosing an Audio CD Player
          1. 20.2.2.1. Playing CDs with gnome-cd
          2. 20.2.2.2. Playing Music with the Rhythmbox Audio Player
          3. 20.2.2.3. Playing Music with the XMMS Multimedia Player
            1. 20.2.2.3.1. Using the Equalizer
            2. 20.2.2.3.2. Using the Playlist Editor
        3. 20.2.3. Using MIDI Audio Players
        4. 20.2.4. Performing Audio File Conversion and Compression
          1. 20.2.4.1. Converting Audio Files with SoX
          2. 20.2.4.2. Compressing Music Files with oggenc
      3. 20.3. Recording and Ripping Music
        1. 20.3.1. Creating an Audio CD with cdrecord
        2. 20.3.2. Ripping CDs with Grip
        3. 20.3.3. Creating CD Labels with cdlabelgen
      4. 20.4. Working with TV, Video, and Digital Imaging
        1. 20.4.1. Watching TV with tvtime
          1. 20.4.1.1. Getting a Supported TV Card
          2. 20.4.1.2. Running tvtime
        2. 20.4.2. Video Conferencing with Ekiga
          1. 20.4.2.1. Getting a Supported Webcam
          2. 20.4.2.2. Opening Your Firewall for Ekiga
          3. 20.4.2.3. Running Ekiga
      5. 20.5. Watching Movies and Video
        1. 20.5.1. Watching Video with xine
          1. 20.5.1.1. Using xine
          2. 20.5.1.2. Creating Playlists with xine
          3. 20.5.1.3. xine Tips
        2. 20.5.2. Using Helix Player and RealPlayer 10
      6. 20.6. Using a Digital Camera with gtkam and gPhoto2
        1. 20.6.1. Downloading Digital Photos with gtkam
        2. 20.6.2. Using Your Camera as a Storage Device
      7. 20.7. Summary
    2. 21. Working with Words and Images
      1. 21.1. Using OpenOffice.org
      2. 21.2. Other Word Processors
        1. 21.2.1. Using StarOffice
        2. 21.2.2. Using AbiWord
        3. 21.2.3. Using KOffice
        4. 21.2.4. Getting Away from Windows
      3. 21.3. Using Traditional Linux Publishing Tools
      4. 21.4. Creating Documents in Groff or LaTeX
        1. 21.4.1. Text Processing with Groff
          1. 21.4.1.1. Formatting and Printing Documents with Groff
          2. 21.4.1.2. Creating a Man Page with Groff
          3. 21.4.1.3. Creating a Letter, Memo, or White Paper with Groff
          4. 21.4.1.4. Adding Equations, Tables, and Pictures
        2. 21.4.2. Text Processing with TeX/LaTeX
          1. 21.4.2.1. Creating and Formatting a LaTeX Document
          2. 21.4.2.2. Using the LyX LaTeX Editor
          3. 21.4.2.3. Printing LaTeX Files
        3. 21.4.3. Converting Documents
        4. 21.4.4. Building Structured Documents
          1. 21.4.4.1. Understanding SGML and XML
          2. 21.4.4.2. Understanding DocBook
            1. 21.4.4.2.1. Creating DocBook Documents
            2. 21.4.4.2.2. Converting DocBook Documents
      5. 21.5. Printing Documents in Linux
        1. 21.5.1. Printing to the Default Printer
        2. 21.5.2. Printing from the Shell
        3. 21.5.3. Checking the Print Queues
        4. 21.5.4. Removing Print Jobs
        5. 21.5.5. Checking Printer Status
      6. 21.6. Displaying Documents with ghostscript and Acrobat
        1. 21.6.1. Using the ghostscript and gv Commands
        2. 21.6.2. Using Adobe Acrobat Reader
      7. 21.7. Working with Graphics
        1. 21.7.1. Manipulating Images with GIMP
        2. 21.7.2. Acquiring Screen Captures
        3. 21.7.3. Modifying Images with KPaint
      8. 21.8. Using Scanners Driven by SANE
      9. 21.9. Summary
    3. 22. E-Mailing and Web Browsing
      1. 22.1. Using E-Mail
        1. 22.1.1. Choosing an E-Mail Client
        2. 22.1.2. Getting Here from Windows
        3. 22.1.3. Getting Started with E-Mail
        4. 22.1.4. Tuning Up E-Mail
        5. 22.1.5. Reading E-Mail with Thunderbird
          1. 22.1.5.1. Connecting to the Mail Server
          2. 22.1.5.2. Managing Incoming Mail
          3. 22.1.5.3. Composing and Sending E-Mail
          4. 22.1.5.4. Filtering E-Mail and Catching Spam
        6. 22.1.6. Managing E-Mail in Evolution
          1. 22.1.6.1. Receiving, Composing, and Sending E-Mail
          2. 22.1.6.2. Managing E-Mail with Search Folders
          3. 22.1.6.3. Filtering E-Mail Messages
        7. 22.1.7. Reading E-Mail with Mozilla Mail
        8. 22.1.8. Working with Text-Based E-Mail Readers
          1. 22.1.8.1. Mutt Mail Reader
          2. 22.1.8.2. Pine Mail Reader
          3. 22.1.8.3. Mail Reader
      2. 22.2. Choosing a Web Browser
      3. 22.3. Exploring the Mozilla Suite
      4. 22.4. Using Firefox
        1. 22.4.1. Setting Up Firefox
          1. 22.4.1.1. Setting Firefox Preferences
          2. 22.4.1.2. Adding Plug-ins
          3. 22.4.1.3. Changing Firefox Themes
        2. 22.4.2. Securing Firefox
        3. 22.4.3. Tips for Using Firefox
        4. 22.4.4. Using Firefox Controls
        5. 22.4.5. Improving Firefox Browsing
          1. 22.4.5.1. Adding a Preferences Toolbar
          2. 22.4.5.2. Adding Java Support
        6. 22.4.6. Doing Cool Things with Firefox
          1. 22.4.6.1. Blocking Pop-ups
          2. 22.4.6.2. Using Tabbed Browsing
          3. 22.4.6.3. Using the DOM Inspector
          4. 22.4.6.4. Resizing the Web Page
      5. 22.5. Using Text-Based Web Browsers
      6. 22.6. Summary
    4. 23. Gaming with Linux
      1. 23.1. Overview of Linux Gaming
      2. 23.2. Basic Linux Gaming Information
        1. 23.2.1. Where to Get Information about Linux Gaming
        2. 23.2.2. Choosing a Video Card for Gaming
          1. 23.2.2.1. Binary-Only Video Card Drivers
          2. 23.2.2.2. Open Source Video Drivers
      3. 23.3. Running Open Source Linux Games
        1. 23.3.1. GNOME Games
        2. 23.3.2. KDE Games
        3. 23.3.3. Games in Fedora
          1. 23.3.3.1. Freeciv
            1. 23.3.3.1.1. Beginning with Freeciv
            2. 23.3.3.1.2. Building Your Civilization
            3. 23.3.3.1.3. Exploring Your World
            4. 23.3.3.1.4. Using More Controls and Actions
        4. 23.3.4. PlanetPenguin Racer (TuxRacer)
      4. 23.4. Commercial Linux Games
        1. 23.4.1. Getting Started with Commercial Games in Linux
        2. 23.4.2. Playing Commercial Linux Games
        3. 23.4.3. id Software Games
          1. 23.4.3.1. Quake III Arena
          2. 23.4.3.2. Return to Castle Wolfenstein
        4. 23.4.4. Playing TransGaming and Cedega Games
        5. 23.4.5. Loki Software Game Demos
          1. 23.4.5.1. Civilization: Call to Power
          2. 23.4.5.2. Myth II: Soulblighter
          3. 23.4.5.3. Heretic II
          4. 23.4.5.4. Neverwinter Nights
      5. 23.5. Summary
  10. V. Running Servers
    1. 24. Running a Linux, Apache, MySQL, and PHP (LAMP) Server
      1. 24.1. Components of a LAMP Server
        1. 24.1.1. Apache
        2. 24.1.2. MySQL
        3. 24.1.3. PHP
      2. 24.2. Setting Up Your LAMP Server
        1. 24.2.1. Installing Apache
        2. 24.2.2. Installing PHP
        3. 24.2.3. Installing MySQL
      3. 24.3. Operating Your LAMP Server
        1. 24.3.1. Editing Your Apache Configuration Files
        2. 24.3.2. Adding a Virtual Host to Apache
        3. 24.3.3. User Content and the userdir Setting
        4. 24.3.4. Installing a Web Application: Coppermine Photo Gallery
      4. 24.4. Troubleshooting
        1. 24.4.1. Configuration Errors
        2. 24.4.2. Access Forbidden and Server Internal Errors
      5. 24.5. Securing Your Web Traffic with SSL/TLS
        1. 24.5.1. Generating Your Keys
        2. 24.5.2. Configuring Apache to Support SSL/TLS
      6. 24.6. Summary
    2. 25. Running a Mail Server
      1. 25.1. Internet E-Mail's Inner Workings
      2. 25.2. About the System and the Software Used
      3. 25.3. Preparing Your System
        1. 25.3.1. Configuring DNS for Direct Delivery
        2. 25.3.2. Configuring for Retrieval from a Mail Host
      4. 25.4. Installing and Configuring the Mail Server Software
        1. 25.4.1. Installing Exim and Courier
        2. 25.4.2. Installing ClamAV and SpamAssassin
      5. 25.5. Testing and Troubleshooting
        1. 25.5.1. Checking Logs
        2. 25.5.2. Common Errors (and How to Fix Them)
          1. 25.5.2.1. Messages Rejected by Exim
          2. 25.5.2.2. Messages Not Delivered by Exim
          3. 25.5.2.3. Login Failures When Connecting to Courier
      6. 25.6. Configuring Mail Clients
        1. 25.6.1. Configuring Fetchmail
        2. 25.6.2. Configuring Web-Based Mail
      7. 25.7. Securing Communications with SSL/TLS
      8. 25.8. Summary
    3. 26. Running a Print Server
      1. 26.1. Common UNIX Printing Service
      2. 26.2. Setting Up Printers
        1. 26.2.1. Using Web-Based CUPS Administration
        2. 26.2.2. Using the Red Hat Printer Configuration Window
          1. 26.2.2.1. Configuring Local Printers in Fedora
            1. 26.2.2.1.1. Adding a Local Printer in Fedora
            2. 26.2.2.1.2. Editing a Local Printer in Fedora
          2. 26.2.2.2. Configuring Remote Printers in Fedora
          3. 26.2.2.3. Adding a Remote CUPS Printer
          4. 26.2.2.4. Adding a Remote UNIX Printer
          5. 26.2.2.5. Adding a Windows (SMB) Printer
      3. 26.3. Working with CUPS Printing
        1. 26.3.1. Configuring the CUPS Server (cupsd.conf)
        2. 26.3.2. Starting the CUPS Server
        3. 26.3.3. Configuring CUPS Printer Options Manually
      4. 26.4. Using Printing Commands
        1. 26.4.1. Printing with lpr
        2. 26.4.2. Listing Printer Status with lpc
        3. 26.4.3. Removing Print Jobs with lprm
      5. 26.5. Configuring Print Servers
        1. 26.5.1. Configuring a Shared CUPS Printer
        2. 26.5.2. Configuring a Shared Samba Printer
          1. 26.5.2.1. Understanding smb.conf for Printing
          2. 26.5.2.2. Setting Up SMB Clients
      6. 26.6. Summary
    4. 27. Running a File Server
      1. 27.1. Setting Up an NFS File Server
        1. 27.1.1. Getting NFS
        2. 27.1.2. Sharing NFS File Systems
          1. 27.1.2.1. Configuring the /etc/exports File
            1. 27.1.2.1.1. Hostnames in /etc/exports
            2. 27.1.2.1.2. Access Options in /etc/exports
            3. 27.1.2.1.3. User Mapping Options in /etc/exports
          2. 27.1.2.2. Exporting the Shared File Systems
          3. 27.1.2.3. Starting the NFS Daemons
        3. 27.1.3. Using NFS File Systems
          1. 27.1.3.1. Manually Mounting an NFS File System
          2. 27.1.3.2. Automatically Mounting an NFS File System
            1. 27.1.3.2.1. Mounting noauto File Systems
            2. 27.1.3.2.2. Using mount Options
          3. 27.1.3.3. Using autofs to Mount NFS File Systems on Demand
        4. 27.1.4. Unmounting NFS File Systems
        5. 27.1.5. Other Cool Things to Do with NFS
      2. 27.2. Setting Up a Samba File Server
        1. 27.2.1. Getting and Installing Samba
        2. 27.2.2. Configuring Samba with SWAT
          1. 27.2.2.1. Turning on the SWAT Service
          2. 27.2.2.2. Starting with SWAT
          3. 27.2.2.3. Creating Global Samba Settings in SWAT
            1. 27.2.2.3.1. Base Options
            2. 27.2.2.3.2. Security Options
            3. 27.2.2.3.3. Logging Options
            4. 27.2.2.3.4. Performance Options
            5. 27.2.2.3.5. Printing Options
            6. 27.2.2.3.6. Browse Options
            7. 27.2.2.3.7. WINS Options
          4. 27.2.2.4. Configuring Shared Directories with SWAT
          5. 27.2.2.5. Checking Your Samba Setup with SWAT
        3. 27.2.3. Working with Samba Files and Commands
          1. 27.2.3.1. Editing the smb.conf File
          2. 27.2.3.2. Adding Samba Users
          3. 27.2.3.3. Starting the Samba Service
          4. 27.2.3.4. Testing Your Samba Permissions
          5. 27.2.3.5. Checking the Status of Shared Directories
        4. 27.2.4. Using Samba Shared Directories
          1. 27.2.4.1. Using Samba from Nautilus
          2. 27.2.4.2. Mounting Samba Directories in Linux
        5. 27.2.5. Troubleshooting Your Samba Server
          1. 27.2.5.1. Basic Networking in Place?
          2. 27.2.5.2. Samba Service Running?
          3. 27.2.5.3. Firewall Open?
          4. 27.2.5.4. User Passwords Working?
      3. 27.3. Summary
  11. VI. Programming in Linux
    1. 28. Programming Environments and Interfaces
      1. 28.1. Understanding Programming Environments
      2. 28.2. Using Linux Programming Environments
        1. 28.2.1. The Linux Development Environment
          1. 28.2.1.1. The Process Model
          2. 28.2.1.2. CPU and Memory Protection
          3. 28.2.1.3. The Security Model
          4. 28.2.1.4. Preemptive Multitasking
          5. 28.2.1.5. Multiuser by Design
          6. 28.2.1.6. Interprocess Communication
          7. 28.2.1.7. The Building Blocks Philosophy
        2. 28.2.2. Graphical Programming Environments
          1. 28.2.2.1. Eclipse: The Universal Tool Platform
          2. 28.2.2.2. KDevelop: KDE's IDE
          3. 28.2.2.3. Code Crusader
        3. 28.2.3. The Command-Line Programming Environment
      3. 28.3. Linux Programming Interfaces
        1. 28.3.1. Creating Command-Line Interfaces
          1. 28.3.1.1. Creating Text-Mode User Interfaces with ncurses
          2. 28.3.1.2. Creating Text-Mode User Interfaces with S-Lang
        2. 28.3.2. Creating Graphical Interfaces
        3. 28.3.3. Application Programming Interfaces
      4. 28.4. Summary
    2. 29. Programming Tools and Utilities
      1. 29.1. The Well-Stocked Toolkit
      2. 29.2. Using the GCC Compiler
        1. 29.2.1. Compiling Multiple Source Code Files
        2. 29.2.2. GCC Command-Line Options
      3. 29.3. Automating Builds with make
      4. 29.4. Library Utilities
        1. 29.4.1. The nm Command
        2. 29.4.2. The ar Command
        3. 29.4.3. The ldd Command
        4. 29.4.4. The ldconfig Command
        5. 29.4.5. Environment Variables and Configuration Files
      5. 29.5. Source Code Control
        1. 29.5.1. Source Code Control Using RCS
          1. 29.5.1.1. Checking Files In and Out
          2. 29.5.1.2. Making Changes to Repository Files
          3. 29.5.1.3. Additional Command-Line Options
        2. 29.5.2. Source Code Control with CVS
      6. 29.6. Debugging with GNU Debugger
        1. 29.6.1. Starting GDB
        2. 29.6.2. Inspecting Code in the Debugger
        3. 29.6.3. Examining Data
        4. 29.6.4. Setting Breakpoints
        5. 29.6.5. Working with Source Code
      7. 29.7. Summary
    3. A. Media
      1. A.1. Finding Linux Distributions on the DVD
        1. A.1.1. Fedora Linux
        2. A.1.2. KNOPPIX Linux
        3. A.1.3. Slackware 12
        4. A.1.4. Ubuntu 7.10
        5. A.1.5. Mandriva
        6. A.1.6. BackTrack 2 Linux Security Suite
        7. A.1.7. Gentoo 2007.1 Linux
        8. A.1.8. Freespire 2.0
        9. A.1.9. openSUSE Linux
      2. A.2. Finding Linux Distributions on the CD
        1. A.2.1. Debian GNU/Linux
        2. A.2.2. Gentoo Minimal 2007 Linux
        3. A.2.3. Damn Small Linux
        4. A.2.4. Inside Security Rescue Toolkit
        5. A.2.5. System Rescue CD
        6. A.2.6. Coyote Linux
        7. A.2.7. SLAX
        8. A.2.8. Puppy Linux
      3. A.3. Linux Distributions Not on the DVD or CD
      4. A.4. Creating Linux CDs
      5. A.5. Getting Source Code
    4. B. Entering the Linux Community
      1. B.1. General Linux Sites
      2. B.2. Linux Distributions
      3. B.3. Companies and Groups Supporting Linux
      4. B.4. Major Linux Projects
      5. B.5. Linux User Groups
      6. B.6. Advocating Linux