You are previewing Fedora.
O'Reilly logo
Fedora

Book Description

Fedora Unleashed, 2008 Edition presents comprehensive coverage of Fedora 8, the popular Linux distribution developed by the Red Hat-sponsored Fedora Project. This book provides detailed information on installing, using, and administering Fedora. You’ll learn how to set up a desktop workstation or a high-powered server, and you’ll find complete details on Yum, Fedora’s easy-to-use desktop and productivity software. Fedora Unleashed, 2008 Edition covers a wide range of topics, from using the software you need every day for work, such as the OpenOffice.org productivity suite and the Firefox web browser, to configuring your Linux desktop to run smoothly using multiple printers, shell scripts, and more. 

  • Install and configure the Fedora 8 Linux distribution

  • Manage Linux services and users

  • Run a printer server with CUPS

  • Connect to a local network and the Internet

  • Set up and administer a web server with Apache

  • Secure your machine and your network from intruders

  • Rebuild and install a new Linux kernel

  • Learn shell scripting

  • Run other operating systems on Fedora with Xen

  • Share files with Windows users using Samba

  • Get productive with OpenOffice.org

  • Play games on Linux

  • Use Linux multimedia programs

  • Use a database with Fedora

  • Set up a firewall

  • Set up a DNS server

  • Work with the X Window system

  • Learn Linux programming (including Mono)

  • Fedora 8 on DVD: DVD includes the Fedora 8 binary distribution with all the base Fedora packages plus hundreds of additional programs and utilities.

    Free Upgrade! Purchase this book anytime in 2008 and receive a free Fedora 9 Upgrade Kit by mail (U.S. or Canada only) after Fedora 9 is released. See inside back cover for details.

    Table of Contents

    1. Copyright
      1. Dedications
    2. Quick Glance Guide
    3. About the Authors
    4. Acknowledgments
      1. Andrew Hudson
      2. Paul Hudson
    5. We Want to Hear from You!
      1. Reader Services
    6. Introduction
      1. Changes from Previous Editions
      2. Licensing
      3. Who This Book Is For
      4. What This Book Contains
      5. Conventions Used in This Book
    7. I. Installation and Configuration
      1. 1. Installing Fedora
        1. Before You Begin the Installation
          1. Planning Partition Strategies
        2. Choosing How to Install Fedora
          1. Installing from CD or DVD
          2. Installing Using a Network
        3. Step-by-Step Installation
          1. Starting the Install
          2. Partitioning Your Hard Drive
          3. Choosing, Configuring, and Installing the Boot Loader
          4. Network Configuration
          5. Setting the Time Zone
          6. Creating a Root Password and User Accounts
          7. Software Selection and Installation
          8. Finishing the Install
          9. Firstboot Configuration
        4. Logging In and Shutting Down
        5. Reference
      2. 2. Fedora Quick Start
        1. The Fedora Desktop
        2. Getting Around Fedora
          1. The Menu Options
          2. Window Selector
          3. The Computer Icon
          4. The Home Icon
          5. Accessing the Command Line
        3. Available Applications
          1. Office Suite
          2. Internet Workstation
          3. Multimedia
          4. Games
        4. Keeping Your Software Up-to-Date
        5. Configuring Wireless Networks
      3. 3. Working with GNOME
        1. The GNOME Desktop Environment
        2. AIGLX—Eye Candy for the Masses
        3. Basic X Concepts
        4. Using X
          1. Elements of the xorg.conf File
            1. The ServerLayout Section
            2. The Files Section
            3. The Module Section
            4. The InputDevice Section
            5. The Monitor Section
            6. The Device Section
            7. The Screen Section
          2. Configuring X
            1. Configuring X with the system-config-display Client
            2. Using Xorg to Configure X
        5. Starting X
          1. Using a Display Manager
            1. Configuring gdm
            2. Configuring kdm
            3. Using the xdm Display Manager
          2. Starting X from the Console by Using startx
          3. Using Fedora’s switchdesk Client
        6. KDE—The Other Environment
        7. Xfce
        8. Reference
      4. 4. Command-Line Quick Start
        1. Understanding the Command Line
          1. Navigating Through the File System
          2. Managing Files with the Shell
          3. Working with Compressed Files
          4. Use Essential Commands from the /bin and /sbin Directories
          5. Use and Edit Files in the /etc Directory
          6. Protect the Contents of User Directories—/home
          7. Use the Contents of the /proc Directory to Interact with the Kernel
          8. Work with Shared Data in the /usr Directory
          9. Temporary File Storage in the /tmp Directory
          10. Access Variable Data Files in the /var Directory
        2. Logging In to and Working with Linux
          1. Text-Based Console Login
          2. Logging Out
          3. Logging In and Out from a Remote Computer
          4. Using Environment Variables
        3. Using the Text Editors
          1. Working with vi
          2. Working with emacs
        4. Working As Root
          1. Creating Users
          2. Deleting Users
          3. Shutting Down the System
          4. Rebooting the System
        5. Reading Documentation
          1. Using Man Pages
        6. Reference
    8. II. Desktop Fedora
      1. 5. On the Internet
        1. Browsing the Internet
          1. Mozilla Firefox
          2. Konqueror
        2. Choosing an Email Client
          1. Evolution
          2. Mozilla Thunderbird
          3. KMail
          4. Other Mail Clients
        3. RSS Readers
          1. Firefox
          2. Liferea
        4. Instant Messaging with Pidgin
        5. Internet Relay Chat
        6. Usenet Network Newsgroups
        7. The Pan News Client Newsreader
        8. Videoconferencing with Ekiga
        9. Reference
      2. 6. Productivity Applications
        1. What Is in OpenOffice.org?
          1. Installing and Configuring OpenOffice.org
          2. Working with OpenOffice.org Writer
            1. Getting Started
            2. Working with Styles and Formatting
          3. Working with OpenOffice.org Calc
            1. Getting Started
            2. Formatting Your Spreadsheets
            3. Summarizing Data with Calc
        2. Office Suites for Fedora
          1. Working with GNOME Office
          2. Working with KOffice
        3. Productivity Applications Written for Microsoft Windows
        4. Reference
      3. 7. Multimedia
        1. Listening to Music
          1. Streaming Audio
        2. Graphics Manipulation
          1. The GNU Image Manipulation Program
          2. Using Scanners in Fedora
          3. Working with Graphics Formats
          4. Capturing Screen Images
        3. Using Digital Cameras with Fedora
          1. Handheld Digital Cameras
          2. Using F-Spot
        4. Burning CDs and DVDs in Fedora
          1. Creating CDs and DVDs with Fedora’s Graphical Clients
            1. Nautilus
            2. GnomeBaker
          2. Creating CDs from the Command Line
          3. Creating DVDs from the Command Line
            1. Session Writing
            2. Packet Writing
        5. Sound and Music
          1. Sound Cards
          2. Adjusting Volume
          3. Sound Formats
        6. Viewing Video
          1. TV and Video Hardware
          2. Video Formats
          3. Viewing Video in Linux
          4. Personal Video Recorders
          5. DVD and Video Players
        7. Reference
      4. 8. Printing with Fedora
        1. Overview of Fedora Printing
        2. Configuring and Managing Print Services
          1. GUI-Based Printer Configuration Quick Start
          2. Managing Printing Services
        3. Creating and Configuring Local Printers
          1. Creating the Print Queue
          2. Editing Printer Settings
        4. Reference
      5. 9. Games
        1. Linux Gaming
          1. Installing Proprietary Video Drivers
        2. Installing Popular Games in Fedora
          1. Doom 3
          2. Unreal Tournament 2004
          3. Quake 4
          4. Wolfenstein: Enemy Territory
          5. Battle for Wesnoth
        3. KDEedu
        4. Playing Windows Games with Cedega
        5. Reference
    9. III. System Administration
      1. 10. Managing Users
        1. User Accounts
          1. Adding New Users
          2. User IDs and Group IDs
        2. Managing Groups
          1. Group Management Tools
        3. Managing Users
          1. User Management Tools
          2. Monitoring User Activity on the System
        4. Managing Permissions
          1. Assigning Permissions
          2. Directory Permissions
          3. Understanding Set User ID and Set Group ID Permissions
        5. Managing Passwords
          1. The Password File
          2. Shadow Passwords
          3. Managing Password Security for Users
          4. Changing Passwords in a Batch
        6. Granting System Administrator Privileges to Regular Users
          1. Temporarily Changing User Identity with the su Command
          2. Granting Root Privileges on Occasion—The sudo Command
        7. Disk Quotas
          1. Implementing Quotas
          2. Manually Configuring Quotas
        8. Reference
      2. 11. Automating Tasks
        1. Running Services at Bootup
          1. Beginning the Boot Loading Process
          2. Loading the Linux Kernel
          3. System Services and Runlevels
          4. Runlevel Definitions
          5. Booting into the Default Runlevel
          6. Booting to a Nondefault Runlevel with GRUB
          7. Understanding init Scripts and the Final Stage of Initialization
          8. Controlling Services at Boot with Administrative Tools
            1. Using the chkconfig Text-Based Command-Line Tool
            2. Using the GUI-Based Service Configuration Tool
          9. Running Services Through xinetd
          10. Changing Runlevels
        2. Troubleshooting Runlevel Problems
        3. Starting and Stopping Services Manually
        4. Scheduling Tasks
          1. Using at and batch to Schedule Tasks for Later
          2. Using cron to Run Jobs Repeatedly
        5. Basic Shell Control
          1. The Shell Command Line
          2. Shell Pattern-Matching Support
          3. Piping Data
          4. Background Processing
        6. Reference
      3. 12. System-Monitoring Tools
        1. Console-Based Monitoring
        2. Using the kill Command to Control Processes
        3. Using Priority Scheduling and Control
        4. Displaying Free and Used Memory with free
          1. Disk Quotas
        5. Graphical Process and System Management Tools
        6. KDE Process- and System-Monitoring Tools
        7. Reference
      4. 13. Backing Up
        1. Choosing a Backup Strategy
          1. Why Data Loss Occurs
          2. Assessing Your Backup Needs and Resources
          3. Evaluating Backup Strategies
            1. Simple Strategy
            2. Full Backup on a Periodic Basis
            3. Full Backups with Incremental Backups
            4. Mirroring Data or RAID Arrays
          4. Making the Choice
        2. Choosing Backup Hardware and Media
          1. Removable Storage Media
            1. FireWire Drives
            2. CD-RW and DVD+RW/-RW Drives
          2. Network Storage
          3. Tape Drive Backup
        3. Using Backup Software
          1. tar: The Most Basic Backup Tool
            1. Creating Full and Incremental Backups with tar
            2. Restoring Files from an Archive with tar
          2. The GNOME File Roller
          3. The KDE Archiving Tools (KDE ark and kdat)
          4. Using the Amanda Backup Application
          5. Alternative Backup Software
        4. Copying Files
          1. Copying Files Using tar
          2. Compressing, Encrypting, and Sending tar Streams
          3. Copying Files Using cp
          4. Using mc to Copy Files
        5. System Rescue
          1. The Fedora Rescue Disc
          2. Backing Up and Restoring the Master Boot Record
          3. Manually Restoring the Partition Table
          4. Booting the System from the Rescue Disc
          5. Using the Recovery Facility from the Installation Disc
        6. Reference
      5. 14. Networking
        1. Using Network Configuration Tools
          1. Using Graphical Configuration Tools
          2. Command-Line Network Interface Configuration
            1. /sbin/ifconfig
            2. /sbin/route
            3. /bin/netstat
          3. Network Configuration Files
            1. Adding Hosts to /etc/hosts
            2. Service Settings in /etc/services
            3. Using /etc/nsswitch.conf After Changing Naming Services
            4. Setting a Name Server with /etc/resolv.conf
            5. Setting DNS Search Order with /etc/host.conf
            6. Examining Host Network Settings in /etc/sysconfig/network
        2. Laying the Foundation: The localhost Interface
          1. Checking for the Availability of the Loopback Interface
          2. Configuring the Loopback Interface Manually
        3. Networking with TCP/IP
        4. Advanced Wireless Networking
          1. Support for Wireless Networking in Fedora
          2. TCP/IP Addressing
        5. Dynamic Host Configuration Protocol
          1. How DHCP Works
          2. DHCP Software Installation
            1. DHCP dhclient
            2. DHCP Server
          3. Using DHCP to Configure Network Hosts
            1. DHCP Server Configuration
          4. Other Uses for DHCP
          5. Using IP Masquerading in Fedora
          6. Ports
        6. Beyond the Network and Onto the Internet
          1. Common Configuration Information
          2. Configuring DSL Access
          3. Understanding Point-to-Point Protocol over Ethernet
          4. Configuring a PPPoE Connection Manually
        7. Configuring Dialup Internet Access
          1. Configuring a Dialup Connection Manually
          2. Using the Fedora Internet Configuration Wizard
        8. Troubleshooting Connection Problems
        9. Reference
          1. General
          2. DHCP
          3. Wireless
          4. Books
      6. 15. Remote Access with SSH
        1. Setting Up a Telnet Server
        2. Setting Up an SSH Server
        3. The SSH Tools
          1. Using scp to Copy Individual Files Between Machines
          2. Using sftp to Copy Many Files Between Machines
          3. Using ssh-keygen to Enable Key-Based Logins
        4. Remote X
          1. XDMCP
          2. VNC
        5. Reference
      7. 16. Xen
        1. Why Virtualization Is a Smart Idea
        2. Virtualization Versus Paravirtualization
        3. How Xen Works
        4. Installing Xen
        5. Setting Up Guest Operating Systems
        6. Runtime Configuration
        7. Reference
    10. IV. Fedora As a Server
      1. 17. Apache Web Server Management
        1. About the Apache Web Server
        2. Installing the Apache Server
          1. Installing Through Pirut
          2. Installing from the RPM
          3. Building the Source Yourself
            1. Using ./configure to Build Apache
            2. Apache File Locations After a Build and Install
        3. Starting and Stopping Apache
          1. Starting the Apache Server Manually
          2. Using /etc/rc.d/init.d/httpd
          3. Controlling Apache with Fedora’s service Command
          4. Controlling Apache with Fedora’s chkconfig Command
        4. Graphic Interface Configuration of Apache
          1. Configuring Virtual Host Properties
          2. Configuring the Server
          3. Configuring Apache for Peak Performance
        5. Runtime Server Configuration Settings
          1. Runtime Configuration Directives
          2. Editing httpd.conf
            1. ServerRoot
            2. Listen
            3. User and Group
            4. ServerAdmin
            5. ServerName
            6. DocumentRoot
            7. UserDir
            8. DirectoryIndex
          3. Apache Multiprocessing Modules
          4. Using .htaccess Configuration Files
            1. Options Directives
            2. AllowOverrides Directives
        6. File System Authentication and Access Control
          1. Restricting Access with allow and deny
          2. Authentication
          3. Final Words on Access Control
        7. Apache Modules
          1. mod_access
          2. mod_alias
          3. mod_asis
          4. mod_auth
          5. mod_auth_anon
          6. mod_auth_dbm
          7. mod_auth_digest
          8. mod_autoindex
          9. mod_cgi
          10. mod_dir and mod_env
          11. mod_expires
          12. mod_headers
          13. mod_info and mod_log_config
          14. mod_mime and mod_mime_magic
          15. mod_negotiation
          16. mod_proxy
          17. mod_rewrite
          18. mod_setenvif
          19. mod_speling
          20. mod_status
          21. mod_ssl
          22. mod_unique_id
          23. mod_userdir
          24. mod_vhost_alias
        8. Virtual Hosting
          1. Address-Based Virtual Hosts
          2. Name-Based Virtual Hosts
        9. Logging
        10. Reference
      2. 18. Administering Database Services
        1. A Brief Review of Database Basics
          1. How Relational Databases Work
          2. Understanding SQL Basics
            1. Creating Tables
            2. Inserting Data into Tables
            3. Retrieving Data from a Database
        2. Choosing a Database: MySQL Versus PostgreSQL
          1. Speed
          2. Data Locking
          3. ACID Compliance in Transaction Processing to Protect Data Integrity
          4. SQL Subqueries
          5. Procedural Languages and Triggers
        3. Configuring MySQL
          1. Setting a Password for the MySQL Root User
          2. Creating a Database in MySQL
          3. Granting and Revoking Privileges in MySQL
        4. Configuring PostgreSQL
          1. Initializing the Data Directory in PostgreSQL
          2. Creating a Database in PostgreSQL
          3. Creating Database Users in PostgreSQL
          4. Deleting Database Users in PostgreSQL
          5. Granting and Revoking Privileges in PostgreSQL
        5. Database Clients
          1. SSH Access to a Database
          2. Local GUI Client Access to a Database
          3. Web Access to a Database
          4. The MySQL Command-Line Client
          5. The PostgreSQL Command-Line Client
          6. Graphical Clients
        6. Reference
      3. 19. File and Print
        1. Using the Network File System
          1. NFS Server Configuration
          2. NFS Client Configuration
        2. Putting Samba to Work
          1. Configuring Samba with system-config-samba
          2. Configuring Samba with SWAT
          3. Manually Configuring Samba with /etc/samba/smb.conf
            1. Setting Global Samba Behavior with the [global] Section
            2. Sharing Home Directories Using the [homes] Section
            3. Sharing Printers by Editing the [printers] Section
          4. Testing Samba with the testparm Command
          5. Starting the smbd Daemon
            1. Using the smbstatus Command
            2. Connecting with the smbclient Command
          6. Mounting Samba Shares
        3. Network and Remote Printing with Fedora
          1. Enabling Network Printing on a LAN
          2. Session Message Block Printing
          3. Network-Attached Printer Configuration and Printing
        4. Using the Common UNIX Printing System GUI
        5. Console Print Control
          1. Using Basic Print Commands
          2. Managing Print Jobs
        6. Avoiding Printer Support Problems
          1. All-in-One (Print/Fax/Scan) Devices
          2. Using USB and Legacy Printers
        7. Reference
      4. 20. Remote File Serving with FTP
        1. Choosing an FTP Server
          1. Choosing an Authenticated or Anonymous Server
          2. Fedora FTP Server Packages
          3. Other FTP Servers
        2. Installing FTP Software
        3. The FTP User
        4. xinetd Configuration for wu-ftpd
          1. Configuring xinetd for the wu-ftp Server
          2. Starting the Very Secure FTP Server (vsftpd) Package
        5. Configuring the Very Secure FTP Server
          1. Controlling Anonymous Access
          2. Other vsftpd Server Configuration Files
            1. Default vsftpd Behaviors
        6. Configuring the wu-ftpd Server
        7. Using Commands in the ftpaccess File to Configure wu-ftpd
          1. Configure Access Control
            1. Limit Access for Anonymous Users
            2. Define User Classes
            3. Block a Host’s Access to the Server
            4. Restrict Permissions Based on Group IDs
            5. Limit Permissions Based on Individual ID
            6. Restrict the Number of Users in a Class
            7. Limit the Number of Invalid Password Entries
          2. Configure User Information
            1. Display a Prelogin Banner
            2. Display a File
            3. Display Administrator’s Email Address
            4. Notify User of Last Modification Date
          3. Configure System Logging
            1. Redirect Logging Records
            2. Log All User-Issued Commands
            3. Log Security Violations and File Transfers
          4. Configure Permission Control
            1. Allow Users to Change File Permissions
            2. Assign Users File-Delete Permission
            3. Assign Users File-Overwrite Permission
            4. Allow Users to Rename Files
            5. Allow Users to Compress Files
            6. Assign or Deny Permission to Use tar
            7. Determine What Permissions Can Apply to User-Created Upload Files
          5. Configure Commands Directed Toward the cdpath
          6. Structure of the shutdown File
        8. Configuring FTP Server File-Conversion Actions
          1. Strip Prefix
          2. Strip Postfix
          3. Add-On Prefix
          4. Add-On Postfix
          5. External Command
            1. Types
            2. Options
            3. Description
          6. An Example of Conversions in Action
        9. Using ftphosts to Allow or Deny FTP Server Connection
        10. Using Commands for Server Administration
          1. Display Information About Connected Users
          2. Count the Number of Connections
          3. Use /usr/sbin/ftpshut to Schedule FTP Server Downtime
          4. Use /var/log/xferlog to View a Log of Server Transactions
        11. Reference
      5. 21. Handling Electronic Mail
        1. How Email Is Sent and Received
          1. The Mail Transport Agent
            1. Sendmail
            2. Postfix
            3. Qmail and Exim
          2. Choosing an MTA
          3. The Mail Delivery Agent
          4. The Mail User Agent
        2. Basic Sendmail Configuration and Operation
          1. Configuring Masquerading
          2. Using Smart Hosts
          3. Setting Message Delivery Intervals
          4. Building the sendmail.cf File
          5. Mail Relaying
          6. Forwarding Email with Aliases
          7. Rejecting Email from Specified Sites
        3. Introducing Postfix
          1. Making the Switch
        4. Using Fetchmail to Retrieve Mail
          1. Installing Fetchmail
          2. Configuring Fetchmail
            1. Configuring Global Options
            2. Configuring Mail Server Options
            3. Configuring User Accounts
        5. Choosing a Mail Delivery Agent
          1. Procmail
          2. Spamassassin
          3. Squirrelmail
          4. Virus Scanners
          5. Special Mail Delivery Agents
        6. Mail Daemons
        7. Alternatives to Microsoft Exchange Server
          1. Microsoft Exchange Server/Outlook Client
          2. CommuniGate Pro
          3. Oracle Collaboration Suite
          4. Open Xchange
        8. Reference
          1. Web Resources
          2. Books
      6. 22. Setting Up a Proxy Server
        1. What Is a Proxy Server?
        2. Installing Squid
        3. Configuring Clients
        4. Access Control Lists
        5. Specifying Client IP Addresses
        6. Sample Configurations
        7. Reference
      7. 23. Managing DNS
        1. Configuring DNS for Clients
          1. The /etc/host.conf File
          2. The /etc/nsswitch.conf File
          3. The /etc/hosts File
          4. The /etc/resolv.conf File
          5. Understanding the Changes Made by DHCP
        2. Essential DNS Concepts
          1. How Nameservers Store DNS Structure Information
          2. How DNS Provides Name Service Information to Users
          3. Name Resolution in Practice
        3. Using DNS Tools
          1. dig
          2. host
          3. nslookup
          4. whois
        4. Configuring a Local Caching Nameserver
        5. Your Own Domain Name and Third-Party DNS
        6. Providing DNS for a Real Domain with BIND
          1. rndc.conf
          2. named.conf
            1. The Zone File
            2. The Zone File’s SOA Record
            3. The Zone File’s Other Records
          3. Logging
          4. Resolver Configuration
          5. Running the named Nameserver Daemon
        7. Providing DNS for a Real Domain
          1. Forward Zone
          2. Reverse Zone
          3. Registering the Domain
        8. Troubleshooting DNS
          1. Delegation Problems
          2. Reverse Lookup Problems
          3. Maintaining Accurate Serial Numbers
          4. Troubleshooting Problems in Zone Files
          5. Tools for Troubleshooting
          6. Using Fedora’s BIND Configuration Tool
        9. Managing DNS Security
          1. UNIX Security Considerations
          2. DNS Security Considerations
            1. Defining Access Control Lists
            2. Controlling Queries
            3. Controlling Zone Transfers
            4. Alert named to Potential Problem Hosts
          3. Using DNS Security Extensions
          4. Using Split DNS
        10. Reference
      8. 24. LDAP
        1. Configuring the Server
          1. Populating Your Directory
        2. Configuring Clients
          1. Evolution
          2. Thunderbird
        3. Administration
        4. Reference
    11. V. Programming Linux
      1. 25. Using Perl
        1. Using Perl with Linux
          1. Perl Versions
          2. A Simple Perl Program
        2. Perl Variables and Data Structures
          1. Perl Variable Types
          2. Special Variables
        3. Operators
          1. Comparison Operators
          2. Compound Operators
          3. Arithmetic Operators
          4. Other Operators
          5. Special String Constants
        4. Conditional Statements
          1. if/else
          2. unless
        5. Looping
          1. for
          2. foreach
          3. while
          4. until
          5. last and next
          6. do ... while and do ... until
        6. Regular Expressions
        7. Access to the Shell
        8. Modules and CPAN
        9. Reference
          1. Books
      2. 26. Working with Python
        1. Python on Linux
          1. Getting Interactive
        2. The Basics of Python
          1. Numbers
          2. More on Strings
          3. Lists
          4. Dictionaries
          5. Conditionals and Looping
        3. Functions
        4. Object Orientation
          1. Class and Object Variables
          2. Constructors and Destructors
          3. Class Inheritance
          4. Multiple Inheritance
        5. The Standard Library and the Vaults of Parnassus
        6. Reference
      3. 27. Writing PHP Scripts
        1. Introduction to PHP
          1. Entering and Exiting PHP Mode
          2. Variables
          3. Arrays
          4. Constants
          5. Comments
          6. Escape Sequences
          7. Variable Substitution
          8. Operators
          9. Conditional Statements
          10. Special Operators
          11. Switching
          12. Loops
          13. Including Other Files
        2. Basic Functions
          1. Strings
          2. Arrays
          3. Files
          4. Miscellaneous
        3. Handling HTML Forms
        4. Reference
      4. 28. C/C++ Programming Tools for Fedora
        1. Programming in C/C++ with Linux
        2. Using the C Programming Project Management Tools Provided with Fedora Linux
          1. Building Programs with make
            1. Using Makefiles
            2. Using Macros and Makefile Targets
          2. Using the autoconf Utility to Configure Code
          3. Managing Software Projects with Subversion
          4. Debugging Tools
            1. Using splint to Check Source Code
            2. Using gprof to Track Function Time
            3. Doing Symbolic Debugging with gdb
        3. Using the GNU C Compiler
        4. Graphical Development Tools
          1. Using the KDevelop Client
          2. The Glade Client for Developing in GNOME
        5. Reference
      5. 29. Mono
        1. Why Use Mono?
        2. Mono on the Command Line
          1. The Structure of a C# Program
          2. Printing Out the Parameters
          3. Creating Your Own Variables
          4. Adding Some Error Checking
        3. Building on Mono’s Libraries
          1. Searching with Beagle
          2. Creating a GUI with Gtk#
        4. Reference
    12. VI. Fedora Housekeeping
      1. 30. Securing Your Machines
        1. Understanding Computer Attacks
        2. Assessing Your Vulnerability
        3. Protecting Your Machine
          1. Securing a Wireless Network
          2. Passwords and Physical Security
          3. Configuring and Using Tripwire
          4. Devices
        4. Viruses
        5. Configuring Your Firewall
        6. Forming a Disaster Recovery Plan
        7. Keeping Up-to-Date on Linux Security Issues
        8. Understanding SELinux
        9. Reference
      2. 31. Performance Tuning
        1. Hard Disk
          1. Using the BIOS and Kernel to Tune the Disk Drives
          2. The hdparm Command
          3. File System Tuning
          4. The tune2fs Command
          5. The e2fsck Command
          6. The badblocks Command
          7. Disabling File Access Time
        2. Kernel
        3. Apache
        4. MySQL
          1. Measuring Key Buffer Usage
          2. Using the Query Cache
          3. Miscellaneous Tweaks
          4. Query Optimization
        5. Reference
      3. 32. Command-Line Master Class
        1. Why Use the Shell?
        2. Basic Commands
          1. Printing the Contents of a File with cat
          2. Changing Directories with cd
          3. Changing File Access Permissions with chmod
          4. Copying Files with cp
          5. Printing Disk Use with du
          6. Finding Files by Searching with find
          7. Searches for a String in Input with grep
          8. Paging Through Output with less
          9. Creating Links Between Files with ln
          10. Finding Files from an Index with locate
          11. Listing Files in the Current Directory with ls
          12. Reading Manual Pages with man
          13. Making Directories with mkdir
          14. Moving Files with mv
          15. Listing Processes with ps
          16. Deleting Files and Directories with rm
          17. Printing the Last Lines of a File with tail
          18. Printing Resource Usage with top
          19. Printing the Location of a Command with which
        3. Combining Commands
        4. Multiple Terminals
        5. Date and Time
          1. Using the date Command
          2. Using the hwclock Command
        6. Capturing Screen Images
        7. Reference
          1. Books
      4. 33. Writing and Executing a Shell Script
        1. Running a Shell Program
        2. Interpreting Shell Scripts Through Specific Shells
        3. Using Variables in Shell Scripts
          1. Assigning a Value to a Variable
          2. Accessing Variable Values
          3. Positional Parameters
            1. A Simple Example of a Positional Parameter
            2. Accessing and Retrieving Variables
        4. Using a Simple Script to Automate Tasks
        5. Built-In Variables
        6. Special Characters
          1. Using Double Quotes to Resolve Variables in Strings with Embedded Spaces
          2. Using Single Quotes to Maintain Unexpanded Variables
          3. Using the Backslash As an Escape Character
          4. Using the Backtick to Replace a String with Output
        7. Comparison of Expressions in bash
          1. String Comparison
          2. Number Comparison
          3. File Operators
          4. Logical Operators
        8. Special Statements: for, while, and Others
          1. The for Statement
          2. The while Statement
          3. The until Statement
          4. The shift Statement
          5. The if Statement
          6. The case Statement
          7. The break and exit Statements
        9. Using Functions in Shell Scripts
        10. Reference
      5. 34. Advanced Software Management
        1. Using RPM for Software Management
          1. rpm at the Command Line
          2. Two Handy Options
          3. Using rpm on the Command Line
          4. Extracting a Single File from an RPM File
        2. Getting Started with yum
        3. Running yum Noninteractively
        4. Using yum to Remove Packages
        5. Maintaining yum
        6. Using yum to Manage Package Inventory
        7. Configuring yum
        8. Using pirut for Software Management
        9. Using Yum Extender
        10. Creating a Local yum Repository
        11. Reference
      6. 35. Managing the File System
        1. The Fedora File System Basics
          1. Physical Structure of the File System on the Disk
          2. File System Partitions
          3. Network and Disk File Systems
          4. Viewing Your System’s File Systems
        2. Working with the ext3 File System
          1. Understanding the ext3 File System Structure
          2. Journaling Options in ext3
          3. Verifying File Integrity in ext3 File Systems with the fsck Utility
        3. Other File Systems Available to Fedora
          1. The Reiser File System (reiserfs)
          2. JFS and XFS File Systems
          3. DOS File Systems
          4. CD-ROM File Systems
            1. iso9660
            2. Universal Disk Format
        4. Creating a File System
          1. The Disk as a Storage Device
          2. Creating the Partition Table
            1. The fdisk Command
            2. The parted Command
          3. Creating the File System on the Partitioned Disk
            1. Using mke2fs to Create the File System
            2. Using mkfs.ext3
            3. Using mkreiserfs
          4. Creating a DOS File System with mkdosfs
        5. Mounting File Systems
          1. The mount Command
          2. The umount Command
          3. Mounting Automatically with /etc/fstab
        6. Relocating a File System
          1. Installing the New Drive
          2. Creating the Partition Table and Formatting the Disk
          3. Mounting the New Partition and Populating It with the Relocated Files
        7. Logical Volume Management
        8. File System Manipulation
          1. Creating a File System for Testing
            1. Step 1—Make a Blank Image File
            2. Step 2—Make a File System
            3. Step 3—Mount the Test File System
          2. Mounting a Partition as Read-Only on a Running System
          3. Examine an initrd Image File
        9. Reference
      7. 36. Kernel and Module Management
        1. The Linux Kernel
          1. The Linux Source Tree
          2. Types of Kernels
        2. Managing Modules
        3. When to Recompile
        4. Kernel Versions
        5. Obtaining the Kernel Sources
        6. Patching the Kernel
        7. Compiling the Kernel
          1. Using xconfig to Configure the Kernel
          2. Creating an Initial RAM Disk Image
        8. When Something Goes Wrong
          1. Errors During Compile
          2. Runtime Errors, Boot Loader Problems, and Kernel Oops
        9. Reference
    13. VII. Appendices
      1. A. The History of Red Hat and Fedora
        1. What Is Fedora?
        2. Fedora for Business
        3. Fedora in Your Home
        4. 64-Bit Fedora
        5. Fedora on the PPC Platform
        6. Fedora on Multicore Machines
      2. B. Installation Resources
        1. Planning Your Fedora Deployment
          1. Business Considerations
          2. System Considerations
          3. User Considerations
          4. A Predeployment Planning Checklist
          5. Planning the Installation
        2. Hardware Requirements
          1. Meeting the Minimum Fedora Hardware Requirements
          2. Using Legacy Hardware
          3. Planning for Hard Drive Storage for Your Fedora Installation
          4. Checking Hardware Compatibility
          5. Preparing for Potential Hardware Problems
            1. Controllerless Modems
            2. USB Devices
            3. Motherboard-Based Hardware
            4. CPU, Symmetric Multiprocessing, and Memory Problems
          6. Preparing and Using a Hardware Inventory
        3. Preparing for the Install Process
        4. Partitioning Before and During Installation
          1. Choosing a Partitioning Scheme
          2. Hosting Parts of the Linux File System on Separate Partitions
        5. Using Fedora’s kickstart Installation Method
        6. Reference
      3. C. Fedora and Linux Internet Resources
        1. Websites and Search Engines
          1. Web Search Tips
          2. Google Is Your Friend
          3. Fedora Package Listings
          4. Certification
          5. Commercial Support
          6. Documentation
          7. Linux Guides
          8. The Fedora Project
          9. Red Hat Linux
          10. Mini-CD Linux Distributions
          11. Floppy-Based Linux Distributions
          12. Various Intel-Based Linux Distributions
          13. PowerPC-Based Linux Distributions
          14. Linux on Laptops and PDAs
          15. X
        2. Usenet Newsgroups
        3. Mailing Lists
          1. Fedora Project Mailing Lists
          2. Red Hat Mailing Lists
        4. Internet Relay Chat