You are previewing Ubuntu 7.10 Linux Unleashed, Third Edition.
O'Reilly logo
Ubuntu 7.10 Linux Unleashed, Third Edition

Book Description

A new edition of this title is available, ISBN-10: 067232993X ISBN-13: 9780672329937

Ubuntu 7.10 Linux Unleashed

Andrew Hudson

Paul Hudson

DVD Includes

Ubuntu 7.10 “Gutsy Gibbon”

Ubuntu 7.10 Linux Unleashed presents comprehensive coverage of the popular Ubuntu Linux distribution. Windows users, Mac users, and Linux enthusiasts have been increasingly turning to Ubuntu for a user-friendly, easy-to-use Linux distribution.

This book provides detailed information on installing, using, and administering Ubuntu. You’ll learn how to set up a workstation or a server, and you’ll find complete details on Ubuntu’s easy-to-use desktop and productivity software.

Ubuntu 7.10 Linux Unleashed includes a range of coverage: From the software you need in your everyday work, such as the OpenOffice.org productivity suite, to how to configure your Linux desktop to run smoothly using multiple printers, shell scripts, and more.

For the hardcore Linux enthusiast, there is complete coverage of the X Window system, Linux programming, web server administration, and network administration.

  • Install and configure Ubuntu

  • Get all your system’s devices and peripherals up and running

  • Configure and use the X Window System

  • Manage Linux services and users

  • Run a printer server

  • 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

  • Learn shell scripting

  • Share files with Windows users using Samba

  • Get productive with OpenOffice.org

  • Play games on Linux

  • Use Linux multimedia programs

  • Create and maintain a MySQL database

  • Configure a firewall

  • Set up an FTP server

  • Use Ubuntu’s development and programming tools

  • Tune your Ubuntu system for maximum performance

  • Learn to manage and compile the kernel and modules

  • Andrew Hudson is a regular freelance contributor to Linux Format magazine, the UK’s largest Linux magazine. He is the co-author of Fedora Unleashed.

    Paul Hudson is a professional developer and full-time journalist for Future Publishing. His articles have appeared in Mac Format, PC Answers, PC Format, PC Plus, and Linux Format. He is the co-author of Fedora Unleashed.

    DVD includes

  • The full Ubuntu 7.10 distribution for Intel x86 computers

  • The complete OpenOffice.org office suite

  • Hundreds of additional programs and utilities

  • Category: Operating Systems/Linux

    Covers: Ubuntu 7.10 “Gutsy Gibbon”

    User Level: Intermediate—Advanced

    Table of Contents

    1. Copyright
      1. Dedication
    2. About the Authors
    3. Acknowledgments
    4. We Want to Hear from You!
      1. Reader Services
    5. Introduction
      1. Licensing
      2. Who This Book Is For
      3. What This Book Contains
      4. Conventions Used in This Book
    6. I. Installation and Configuration
      1. 1. Installing Ubuntu
        1. Before You Begin the Installation
          1. Research Your Hardware Specifications
          2. Installation Options
          3. Planning Partition Strategies
          4. The Boot Loader
          5. Installing from CD or DVD
        2. Step-by-Step Installation
          1. Starting the Install
          2. First Update
        3. Shutting Down
        4. Reference
      2. 2. Post-Installation Configuration
        1. Troubleshooting Post-Installation Configuration Problems
        2. The sudo command
        3. First Update
        4. Configuring Software Repositories
        5. Installing Graphics Drivers
        6. Changing Ubuntu’s Look and Feel
          1. Changing the Desktop Background
          2. Changing Colors
          3. Modifying System Fonts
          4. Changing How Menus Look
          5. Visual Effects
        7. Preferred Behaviors
          1. Preferred Applications
          2. Removable Drives and Media
        8. Input Devices
          1. Keyboard Shortcuts
          2. Keyboard Layout
          3. Mouse
        9. Detecting and Configuring a Modem
          1. Configuring a Serial-Port Modem
          2. Configuring WinModems for Laptops
        10. Configuring Power Management in Ubuntu
        11. Resetting the Date and Time
          1. Using the date Command
          2. Using the hwclock Command
          3. Changing the Time and Date
        12. Configuring and Using CD, DVD, and CD-RW Drives
          1. Checking Drive Assignment
        13. Configuring Wireless Networks
        14. Configuring Firestarter
        15. Reference
      3. 3. Working with Gnome
        1. The Gnome Desktop Environment
          1. Gnome: The GNU Network Object Model Environment
        2. 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 displayconfig-gtk 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. Changing Window Managers
        6. KDE—The Other Environment
        7. XFce
        8. Reference
      4. 4. Command Line Quickstart
        1. What Is 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 with Permissions
          1. Assigning Permissions
          2. Directory Permissions
          3. Understanding Set User ID and Set Group ID Permissions
        5. Working as Root
          1. Creating Users
          2. Deleting Users
          3. Shutting Down the System
          4. Rebooting the System
        6. Reading Documentation
          1. Using Man Pages
        7. Reference
    7. II. Desktop Ubuntu
      1. 5. On the Internet
        1. Getting Started with Firefox
        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. Introducing OpenOffice.org
          1. Configuring OpenOffice.org
          2. Working with OpenOffice.org Writer
            1. Getting Started with Writer
            2. Working with Styles and Formatting
          3. Working with OpenOffice.org Calc
            1. Getting Started with Calc
            2. Formatting Your Spreadsheets
            3. Summarizing Data with Calc
        2. Office Suites for Ubuntu
          1. Working with Gnome Office
          2. Working with KOffice
        3. Productivity Applications Written for Microsoft Windows
        4. Reference
      3. 7. Multimedia Applications
        1. Listening to Music
        2. Graphics Manipulation
          1. The GNU Image Manipulation Program
          2. Using Scanners in Ubuntu
          3. Working with Graphics Formats
          4. Capturing Screen Images
        3. Using Digital Cameras with Ubuntu
          1. Handheld Digital Cameras
          2. Using F-Spot
        4. Burning CDs and DVDs in Ubuntu
          1. Creating CDs and DVDs with Ubuntu’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 Ubuntu
        1. Overview of Ubuntu Printing
        2. Configuring and Managing Print Services
          1. GUI-Based Printer Configuration Quickstart
          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 Games in Ubuntu
          1. DOOM 3
          2. Unreal Tournament 2004
          3. Quake 4
          4. Wolfenstein: Enemy Territory
          5. Battle for Wesnoth
        3. Playing Windows Games with Cedega
        4. Reference
    8. III. System Administration
      1. 10. Managing Users
        1. User Accounts
          1. The Super User/Root User
          2. User IDs and Group IDs
          3. File Permissions
        2. Managing Groups
          1. Group Management Tools
        3. Managing Users
          1. User Management Tools
          2. Adding New Users
          3. Monitoring User Activity on the System
        4. Managing Passwords
          1. System Password Policy
          2. The Password File
          3. Shadow Passwords
          4. Managing Password Security for Users
          5. Changing Passwords in a Batch
        5. 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
        6. Disk Quotas
          1. Implementing Quotas
          2. Manually Configuring Quotas
        7. 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 Non-Default Runlevel with GRUB
          7. Understanding init Scripts and the Final Stage of Initialization
          8. Controlling Services at Boot with Administrative Tools
          9. Changing Runlevels
          10. Troubleshooting Runlevel Problems
        2. Starting and Stopping Services Manually
        3. Scheduling Tasks
          1. Using at and batch to Schedule Tasks for Later
          2. Using cron to Run Jobs Repeatedly
        4. Basic Shell Control
          1. The Shell Command Line
          2. Shell Pattern-Matching Support
          3. Redirecting Input and Output
          4. Piping Data
          5. Background Processing
        5. Writing and Executing a Shell Script
          1. Running the New Shell Program
          2. Storing Shell Scripts for Systemwide Access
          3. Interpreting Shell Scripts Through Specific Shells
          4. Using Variables in Shell Scripts
          5. Assigning a Value to a Variable
          6. Accessing Variable Values
          7. Positional Parameters
          8. A Simple Example of a Positional Parameter
          9. Using Positional Parameters to Access and Retrieve Variables from the Command Line
          10. Using a Simple Script to Automate Tasks
          11. Built-in Variables
          12. Special Characters
          13. Use Double Quotes to Resolve Variables in Strings with Embedded Spaces
          14. Using Single Quotes to Maintain Unexpanded Variables
          15. Using the Backslash As an Escape Character
          16. Using the Backtick to Replace a String with Output
          17. Comparison of Expressions in pdksh and bash
            1. String Comparison
            2. Number Comparison
            3. File Operators
            4. Logical Operators
          18. Comparing Expressions with tcsh
            1. String Comparison
            2. Number Comparison
            3. File Operators
            4. Logical Operators
          19. The for Statement
          20. The while Statement
          21. The until Statement
          22. The repeat Statement (tcsh)
          23. The select Statement (pdksh)
          24. The shift Statement
          25. The if Statement
          26. The case Statement
          27. The break and exit Statements
          28. Using Functions in Shell Scripts
        6. Reference
      3. 12. System-Monitoring Tools
        1. Console-Based Monitoring
          1. Using the kill Command to Control Processes
          2. Using Priority Scheduling and Control
          3. Displaying Free and Used Memory with free
          4. Disk Space
          5. Disk Quotas
        2. Graphical Process and System Management Tools
        3. KDE Process- and System-Monitoring Tools
        4. 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
            1. The KDE ark Archiving Tool
          3. Using the Amanda Backup Application
          4. Alternative Backup Software
        4. Copying Files
          1. Copying Files Using tar
          2. Compressing, Encrypting, and Sending tar Streams
          3. Copying Files Using cp
          4. Copying Files Using mc
        5. System Rescue
          1. The Ubuntu Rescue Disc
          2. Backing Up and Restoring the Master Boot Record
          3. Booting the System from a Generic Boot Floppy
          4. Using a GRUB Boot Floppy
          5. Using the Recovery Facility
        6. Reference
      5. 14. Networking
        1. Laying the Foundation: The localhost Interface
          1. Checking for the Availability of the Loopback Interface
          2. Configuring the Loopback Interface Manually
        2. Networking with TCP/IP
          1. TCP/IP Addressing
          2. Using IP Masquerading in Ubuntu
          3. Ports
        3. Network Organization
          1. Subnetting
          2. Subnet Masks
          3. Broadcast, Unicast, and Multicast Addressing
        4. Hardware Devices for Networking
          1. Network Interface Cards
            1. Token Ring
            2. 10BASE-T
            3. 100BASE-T
            4. 1000BASE-T
            5. Fiber Optic and Gigabit Ethernet
            6. Wireless Network Interfaces
          2. Network Cable
            1. Unshielded Twisted Pair
            2. Fiber Optic Cable
          3. Hubs and Switches
          4. Routers and Bridges
            1. Bridges
            2. Routers
          5. Initializing New Network Hardware
            1. Editing the /etc/modprobe.conf File
            2. Using modprobe to Manually Load Kernel Modules
        5. Using Network Configuration Tools
          1. Command-Line Network Interface Configuration
          2. 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
          3. Using Graphical Configuration Tools
        6. Dynamic Host Configuration Protocol
          1. How DHCP Works
          2. Activating DHCP at Installation and Boot Time
          3. DHCP Software Installation and Configuration
            1. DHCP dhclient
            2. DHCP Server
          4. Using DHCP to Configure Network Hosts
            1. DHCP Server Configuration
          5. Other Uses for DHCP
        7. Wireless Networking
          1. Support for Wireless Networking in Ubuntu
          2. Advantages of Wireless Networking
          3. Choosing from Among Available Wireless Protocols
        8. Beyond the Network and onto the Internet
        9. Common Configuration Information
        10. Configuring Digital Subscriber Line Access
          1. Understanding Point-to-Point Protocol over Ethernet
          2. Configuring a PPPoE Connection Manually
        11. Configuring Dial-Up Internet Access
          1. Configuring a Dial-Up Connection Manually
        12. Troubleshooting Connection Problems
        13. Reference
          1. General
          2. DHCP
          3. Wireless
          4. Books
      6. 15. Remote Access with SSH and Telnet
        1. Setting Up a Telnet Server
        2. Telnet Versus SSH
        3. Setting Up an SSH Server
        4. 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
        5. Remote X
          1. XDMCP
          2. VNC
        6. Reference
    9. IV. Ubuntu As a Server
      1. 16. File and Print
        1. Using the Network File System
          1. Installing and Starting or Stopping NFS
          2. NFS Server Configuration
          3. NFS Client Configuration
        2. Putting Samba to Work
          1. 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
          2. Testing Samba with the testparm Command
          3. Starting the smbd Daemon
            1. Using the smbstatus Command
            2. Connecting with the smbclient Command
          4. Mounting Samba Shares
          5. Configuring Samba Using SWAT
        3. Network and Remote Printing with Ubuntu
        4. Creating Network Printers
          1. Enabling Network Printing on a LAN
          2. Session Message Block Printing
        5. Using the Common UNIX Printing System GUI
          1. Creating a CUPS Printer Entry
        6. Avoiding Printer Support Problems
          1. All-in-One (Print/Fax/Scan) Devices
          2. Using USB and Legacy Printers
        7. Reference
      2. 17. Apache Web Server Management
        1. About the Apache Web Server
        2. Installing the Apache Server
          1. Installing with APT
          2. 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/init.d/apache2
        4. Runtime Server Configuration Settings
          1. Runtime Configuration Directives
          2. Editing apache2.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
        5. File System Authentication and Access Control
          1. Restricting Access with allow and deny
          2. Authentication
          3. Final Words on Access Control
        6. 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_include
          14. mod_info and mod_log_config
          15. mod_mime and mod_mime_magic
          16. mod_negotiation
          17. mod_proxy
          18. mod_rewrite
          19. mod_setenvif
          20. mod_speling
          21. mod_status
          22. mod_ssl
          23. mod_unique_id
          24. mod_userdir
          25. mod_usertrack
          26. mod_vhost_alias
        7. Virtual Hosting
          1. Address-Based Virtual Hosts
          2. Name-Based Virtual Hosts
        8. Logging
        9. Other Web Servers for Use with Ubuntu
          1. Sun ONE Web Server
          2. Zope
          3. Zeus Web Server
        10. Reference
      3. 18. Remote File Serving with FTP
        1. Choosing an FTP Server
          1. Choosing an Authenticated or Anonymous Server
          2. Ubuntu FTP Server Packages
          3. Other FTP Servers
        2. Installing FTP Software
        3. The FTP User
        4. inetd Configuration for wu-ftpd
          1. 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 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 the ftphosts File 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
      4. 19. Handling Electronic Mail
        1. How Email Is Sent and Received
          1. The Mail Transport Agent
            1. Postfix
            2. Sendmail
            3. Qmail and Exim
          2. Choosing an MTA
          3. The Mail Delivery Agent
          4. The Mail User Agent
        2. Basic Postfix Configuration and Operation
          1. Configuring Masquerading
          2. Using Smart Hosts
          3. Setting Message Delivery Intervals
          4. Mail Relaying
          5. Forwarding Email with Aliases
        3. Using Fetchmail to Retrieve Mail
          1. Installing Fetchmail
          2. Configuring Fetchmail
            1. Configuring Global Options
            2. Configuring Mail Server Options
            3. Configuring User Accounts
        4. Choosing a Mail Delivery Agent
          1. Procmail
          2. Spamassassin
          3. Squirrelmail
          4. Virus Scanners
        5. Mail Daemons
        6. Alternatives to Microsoft Exchange Server
          1. Microsoft Exchange Server/Outlook Client
          2. CommuniGate Pro
          3. Oracle Collaboration Suite
          4. Bynari
          5. Open-Xchange
          6. phpgroupware
          7. PHProjekt
          8. Horde
        7. Reference
          1. Web Resources
          2. Books
      5. 20. Proxying and Reverse Proxying
        1. What Is a Proxy Server?
        2. Installing Squid
        3. Configuring Clients
        4. Access Control Lists
        5. Specifying Client IP Addresses
        6. Example Configurations
        7. Reference
      6. 21. Administering Database Services
        1. A Brief Review of Database Basics
          1. How Relational Databases Work
          2. Understanding SQL Basics
          3. Creating Tables
          4. Inserting Data into Tables
          5. 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
      7. 22. LDAP
        1. Configuring the Server
          1. Populating Your Directory
        2. Configuring Clients
          1. Evolution
          2. Thunderbird
        3. Administration
        4. Reference
    10. V. Programming Linux
      1. 23. 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: if/else and unless
          1. if
          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. Code Examples
          1. Sending Mail
          2. Purging Logs
          3. Posting to Usenet
          4. One-Liners
          5. Command-Line Processing
        10. Reference
          1. Books
          2. Usenet
          3. WWW
          4. Other
      2. 24. 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
        5. The Standard Library and the Vaults of Parnassus
        6. Reference
      3. 25. Writing PHP Scripts
        1. Introduction to PHP
          1. Entering and Exiting PHP Mode
          2. Variables
          3. Arrays
          4. Constants
          5. References
          6. Comments
          7. Escape Sequences
          8. Variable Substitution
          9. Operators
          10. Conditional Statements
          11. Special Operators
          12. Switching
          13. Loops
          14. Including Other Files
        2. Basic Functions
          1. Strings
          2. Arrays
          3. Files
          4. Miscellaneous
        3. Handling HTML Forms
        4. Databases
          1. Introduction to PEAR::DB
        5. Reference
      4. 26. C/C++ Programming Tools for Ubuntu
        1. Programming in C with Linux
        2. Using the C Programming Project Management Tools Provided with Ubuntu
          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. 27. 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
    11. VI. Ubuntu Housekeeping
      1. 28. 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. Reference
      2. 29. 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. 30. Command Line Masterclass
        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 Usage 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. Reference
          1. Books
      4. 31. Managing Software
        1. Using Add/Remove Applications for Software Management
        2. Using Synaptic for Software Management
        3. Staying Up-to-Date
        4. Working on the Command Line
          1. Day-to-Day Usage
          2. Finding Software
        5. Compiling Software from Source
        6. Reference
      5. 32. 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
    12. VII. Appendixes
      1. A. Ubuntu Under the Hood
        1. What Is Linux?
        2. Why Use Linux?
        3. What Is Ubuntu?
          1. Roots of Ubuntu
        4. Ubuntu for Business
        5. Ubuntu in Your Home
        6. 64-Bit Ubuntu
        7. Ubuntu on the PPC Platform
        8. Getting the Most from Ubuntu and Linux Documentation
        9. Ubuntu Developers and Documentation
        10. Reference
      2. B. Installation Resources
        1. Planning Your Ubuntu 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 Ubuntu Hardware Requirements
          2. Using Legacy Hardware
          3. Planning for Hard Drive Storage for Your Ubuntu 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
          1. Preparing to Install from a CD-ROM
        4. Partitioning Before and During Installation
          1. Choosing a Partitioning Scheme
          2. Hosting Parts of the Linux File System on Separate Partitions
        5. Reference
      3. C. Ubuntu and Linux Internet Resources
        1. Websites and Search Engines
          1. Web Search Tips
          2. Google Is Your Friend
          3. Ubuntu Package Listings
          4. Certification
          5. Commercial Support
          6. Documentation
          7. Linux Guides
          8. Ubuntu
          9. Mini-CD Linux Distributions
          10. Various Intel-Based Linux Distributions
          11. PowerPC-Based Linux Distributions
          12. Linux on Laptops and PDAs
          13. The X Window System
        2. Usenet Newsgroups
        3. Mailing Lists
          1. Ubuntu Project Mailing Lists
        4. Internet Relay Chat