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

Book Description

You're about to begin your first Linux installation. Or, you may have been using Linux for years and need to know more about adding a network printer or configuring for ADSL. Running Linux, now in its fourth edition, is the book you'll want to reach for. Widely recognized in the Linux community as the getting-started book that people need, it answers the questions and tackles configuration issues that frequently plague users, but are seldom addressed in other books. Running Linux has everything you'll need to understand, install, and start using Linux. The book doesn't draw the line at the OS, or the shell, or the GUI, or even at the point of essential applications. Rather, the authors, experienced Linux enthusiasts, have anticipated problem areas, selected stable and popular solutions, and provided clear discussions and instructions to ensure that you'll have a satisfying experience using Linux. The discussion is direct and complete enough to guide novice users while still providing the additional information experienced users will need to progress in their mastery of Linux. The fourth edition of Running Linux delves deeper into installation, configuring the windowing system, system administration, and networking. New topics include applications ready for prime time, basic security and firewalling, package management on Debian, sound configuration, ADSL, the GNOME desktop, the Postfix mail transfer agent, and the popular LAMP configuration that combines Apache, MySQL, and PHP. A solid foundation text for any Linux user, the book also includes additional resources for dealing with special requirements imposed by hardware, advanced applications, and emerging technologies. Whether you are using Linux on a home workstation or maintaining a network server, Running Linux will provide expert advice just when you need it.

Table of Contents

  1. Running Linux, 4th Edition
    1. Preface
      1. Why People Like Linux
      2. Organization of This Book
      3. Conventions Used in This Book
      4. How to Contact Us
      5. Acknowledgments
    2. 1. Introduction to Linux
      1. About This Book
      2. A Brief History of Linux
      3. Who’s Using Linux?
      4. System Features
        1. A Note on Linux Version Numbers
        2. A Bag of Features
        3. Kernel
      5. Software Features
        1. Basic Commands and Utilities
        2. Text Processing and Word Processing
        3. Commercial Applications
        4. Programming Languages and Utilities
        5. The X Window System
        6. KDE and GNOME
        7. Networking
        8. Laptop Support
        9. Interfacing with Windows and MS-DOS
        10. Other Applications
      6. About Linux’s Copyright
      7. Open Source and the Philosophy of Linux
        1. Hints for Unix Novices
        2. Hints for Unix Gurus
      8. Sources of Linux Information
        1. Online Documents
        2. Books and Other Published Works
        3. Usenet Newsgroups
        4. Internet Mailing Lists
      9. Getting Help
    3. 2. Preparing to Install Linux
      1. Distributions of Linux
        1. Getting Linux via Mail Order or Other Hard Media
        2. Getting Linux from the Internet
      2. Preparing to Install Linux
        1. Installation Overview
        2. Repartitioning Concepts
        3. Linux Partition Requirements
        4. Repartitioning Your Drives
    4. 3. Installation and Initial Configuration
      1. Installing the Linux Software
        1. Booting Linux
        2. Drives and Partitions Under Linux
        3. Creating Linux Partitions
        4. Creating Swap Space
        5. Creating the Filesystems
        6. Installing the Software
        7. Creating the Boot Floppy or Installing LILO
        8. Additional Installation Procedures
      2. Post-Installation Procedures
        1. Creating a User Account
        2. Getting Online Help
        3. Editing /etc/fstab
        4. Shutting Down the System
      3. Running into Trouble
        1. Problems with Booting the Installation Medium
        2. Hardware Problems
          1. Isolating hardware problems
          2. Problems recognizing hard drive or controller
          3. Problems with SCSI controllers and devices
        3. Problems Installing the Software
        4. Problems after Installing Linux
          1. Problems booting Linux from floppy
          2. Problems booting Linux from the hard drive
          3. Problems logging in
          4. Problems using the system
    5. 4. Basic Unix Commands and Concepts
      1. Logging In
      2. Setting a Password
      3. Virtual Consoles
      4. Popular Commands
        1. Directories
        2. Listing Files
        3. Viewing Files, More or Less
        4. Symbolic Links
      5. Shells
      6. Useful Keys and How to Get Them to Work
      7. Typing Shortcuts
        1. Word Completion
        2. Moving Around Among Commands
      8. Filename Expansion
      9. Saving Your Output
      10. What Is a Command?
      11. Putting a Command in the Background
      12. Manual Pages
      13. File Ownership and Permissions
        1. What Permissions Mean
        2. Owners and Groups
      14. Changing the Owner, Group,and Permissions
      15. Startup Files
      16. Important Directories
      17. Programs That Serve You
      18. Processes
    6. 5. Essential System Management
      1. Maintaining the System
      2. Booting the System
        1. Using a Boot Floppy
        2. Using LILO
          1. The /etc/lilo.conf file
          2. Using LILO as a secondary bootloader
          3. Specifying boot time options
          4. Removing LILO
      3. System Startup and Initialization
        1. Kernel Boot Messages
        2. init, inittab, and rc Files
        3. rc Files
      4. Single-User Mode
      5. Shutting Down the System
      6. The /proc Filesystem
      7. Managing User Accounts
        1. The passwd File
        2. Shadow Passwords
        3. PAM and Other Authentication Methods
        4. The Group File
        5. Creating Accounts
        6. Deleting and Disabling Accounts
        7. Modifying User Accounts
    7. 6. Managing Filesystems, Swap Space, and Devices
      1. Managing Filesystems
        1. Filesystem Types
        2. Mounting Filesystems
        3. Automounting Devices
        4. Creating Filesystems
        5. Checking and Repairing Filesystems
      2. Managing Swap Space
        1. Creating Swap Space
        2. Enabling the Swap Space
        3. Disabling Swap Space
      3. Device Files
    8. 7. Upgrading Software and the Kernel
      1. Archive and Compression Utilities
        1. Using gzip and bzip2
        2. Using tar
        3. Using tar with gzip and bzip2
        4. tar Tricks
      2. Upgrading Software
        1. Upgrading Libraries
        2. Upgrading the Compiler
      3. General Upgrade Procedure
        1. Using RPM
        2. Using dpkg and apt
        3. Upgrading Other Software
      4. Building a New Kernel
        1. Obtaining Kernel Sources
          1. Unpacking the sources
          2. Applying patches
        2. Building the Kernel
      5. Loadable Device Drivers
      6. Loading Modules Automatically
    9. 8. Other Administrative Tasks
      1. Making Backups
        1. Simple Backups
          1. Backing up to tape
          2. Backing up to floppy
          3. To compress, or not to compress?
        2. Incremental Backups
      2. Scheduling Jobs Using cron
      3. Managing System Logs
      4. Managing Print Services
        1. Checking Printer Hardware
        2. Gathering Resources
        3. Choosing Printer Software
        4. Checking Print Utilities
        5. Setting Up the Printcap File
          1. Printcap file format rules
          2. Printer names
          3. The rest of the printcap variables
        6. Configuring Ghostscript
        7. Print Filters
        8. The nenscript Filter
        9. Magic Filters: APSfilter and Alternatives
        10. BSD Print System Elements: Files, Directories, and Utilities
          1. Setting up printer directories
          2. File, directory, and utility privileges
        11. Exercising the Printer Daemon
        12. Controlling Printer Services with lpc
        13. Printer Optimization
        14. Printer System Troubleshooting
        15. CUPS
      5. Setting Terminal Attributes
      6. What to Do in an Emergency
        1. Repairing Filesystems
        2. Accessing Damaged Files
        3. Restoring Files from Backup
    10. 9. Editors, Text Tools, Graphics, and Printing
      1. Editing Files Using vi
        1. Starting vi
        2. Inserting Text and Moving Around
        3. Deleting Text and Undoing Changes
        4. Changing Text
        5. Moving Commands
        6. Saving Files and Quitting vi
        7. Editing Another File
        8. Including Other Files
        9. Running Shell Commands
        10. Global Searching and Replacing
        11. Moving Text and Using Registers
        12. Extending vi
      2. The Emacs Editor
        1. Firing It Up
        2. Simple Editing Commands
        3. Tutorial and Online Help
        4. Deleting, Copying, and Moving Text
        5. Searching and Replacing
        6. Macros
        7. Running Commands and Programming within Emacs
        8. Tailoring Emacs
        9. Regular Expressions
      3. Text and Document Processing
        1. Word Processors
        2. TEX and LATEX
          1. Learning the ropes
          2. Formatting and printing
          3. Further reading
        3. SGML, XML, and Docbook
        4. groff
          1. Writing a manual page
          2. Formatting and installing the manual page
        5. Texinfo
          1. Writing the Texinfo source
          2. Formatting Texinfo
      4. Graphics
        1. ImageMagick
        2. The GIMP
        3. POVRAY
      5. Configuring and Using Linux Audio
        1. A Whirlwind Tour of Digital Audio
        2. Audio Under Linux
        3. Installation and Configuration
          1. Collecting hardware information
          2. Configuring ISA Plug and Play (optional)
          3. Configuring the kernel (optional)
          4. Configuring kernel modules
          5. Testing the installation
          6. Troubleshooting and common problems
        4. Linux Multimedia Applications
        5. MP3 Players
        6. References
      6. Printing
        1. How the Printing System Processes a Queued File
        2. nenscript and enscript
    11. 10. Installing the X Window System
      1. X Concepts
      2. Hardware Requirements
      3. Installing XFree86
      4. Configuring XFree86
      5. Running XFree86
      6. Running into Trouble
    12. 11. Customizing Your X Environment
      1. Basics of X Customization
        1. xinit
      2. The K Desktop Environment
        1. General Features
        2. Installing KDE
        3. Using KDE
          1. The KDE panel and the K menu
          2. The KDE Control Center
            1. Configuring the background
            2. Configuring window styles and colors
            3. Internationalization
      3. KDE Applications
        1. konsole: Your Home Base
          1. Starting up konsole
          2. Cutting and pasting selections
          3. More konsole tricks
        2. Clocks
        3. KGhostview: Displaying PostScript
        4. Reading Documentation with Konqueror
      4. The GNOME Desktop Environment
        1. Installing and Updating GNOME
        2. Core Desktop Interface
          1. The panel
          2. Nautilus: your desktop and file manager
      5. GNOME Applications
        1. Ximian Evolution: Mail, Calendar, and Contacts
          1. Evolution mail
          2. Evolution calendar
          3. Evolution contacts
        2. Gnumeric Spreadsheet
        3. gPhoto, the Digital Camera Tool
        4. Abiword Word Processor
        5. Additional Applications and Resources
      6. Other X Applications
        1. The X Resource Database
        2. Emacs and Other Editors
    13. 12. Windows Compatibility and Samba
      1. Sharing Disks with MTools
        1. mattrib
      2. Sharing Partitions
        1. Mounting Windows Shares
        2. Using Samba to Serve SMB Shares
          1. Installing Samba
          2. Configuring Samba
          3. Adding users
          4. Starting the Samba daemons
        3. File Translation Utilities
          1. Other document formats
      3. Running MS-DOS and Windows Applications on Linux
    14. 13. Programming Languages
      1. Programming with gcc
        1. Quick Overview
        2. gcc Features
        3. Basic gcc Usage
        4. Using Multiple Source Files
        5. Optimizing
        6. Enabling Debugging Code
        7. More Fun with Libraries
          1. Creating shared libraries
        8. Using C++
      2. Makefiles
        1. What make Does
        2. Some Syntax Rules
        3. Macros
        4. Suffix Rules and Pattern Rules
        5. Multiple Commands
        6. Including Other makefiles
        7. Interpreting make Messages
        8. Autoconf, Automake, and Other Makefile Tools
      3. Shell Programming
      4. Using Perl
        1. A Sample Program
        2. More Features
        3. Pros and Cons
      5. Java
        1. The Promise of Java, or Why You Might Want to Use Java
        2. Getting Java for Linux
        3. A Working Example of Java
      6. Other Languages
    15. 14. Tools for Programmers
      1. Debugging with gdb
        1. Tracing a Program
        2. Examining a Core File
        3. Debugging a Running Program
        4. Changing and Examining Data
        5. Getting Information
        6. Miscellaneous Features
          1. Breakpoints and watchpoints
          2. Instruction-level debugging
          3. Using Emacs with gdb
      2. Programming Tools
        1. Debuggers
        2. Profiling and Performance Tools
        3. Using strace
        4. Using Valgrind
        5. Interface Building Tools
        6. Revision Control Tools — RCS
        7. Revision Control Tools — CVS
          1. Setting up a CVS repository
          2. Working with CVS
          3. CVS over the Internet
        8. Patching Files
        9. Indenting Code
      3. Integrated Development Environments
    16. 15. TCP/IP and PPP
      1. Networking with TCP/IP
        1. TCP/IP Concepts
        2. Hardware Requirements
        3. Configuring TCP/IP with Ethernet
          1. Your network configuration
          2. The networking rc files
          3. /etc/hosts
          4. /etc/networks
          5. /etc/host.conf
          6. /etc/resolv.conf
          7. Setting your hostname
          8. Trying out your network
      2. Dial-up PPP
        1. Basic PPP Configuration for Modems
          1. Requirements
          2. Serial device names
          3. Setting up PPP
          4. Writing a chat script
          5. Starting up pppd
          6. Configuring DNS
          7. Troubleshooting PPP configuration
          8. PAP and CHAP
      3. PPP over ISDN
        1. Configuring Your ISDN Hardware
        2. Setting Up Synchronous PPP
        3. And If It Does Not Work?
        4. Where to Go from Here?
      4. ADSL
      5. NFS and NIS Configuration
        1. Configuring NFS
        2. Configuring NIS
    17. 16. The World Wide Web and Electronic Mail
      1. The World Wide Web
        1. Using Konqueror and Other Web Browsers
        2. Configuring Your Own Web Server
          1. httpd.conf
          2. srm.conf and access.conf
          3. Starting httpd
      2. Electronic Mail
        1. The Postfix MTA
          1. A word about DNS
          2. Installing Postfix
          3. Postfix configuration
          4. Starting Postfix
          5. Postfix logging
          6. Running Postfix on system startup
          7. Postfix relay control
          8. Additional configurations
        2. Getting the Mail to Your Computer with Fetchmail
        3. Other Email Administrative Issues
          1. Registering an address
          2. Mail system maintenance
        4. Using KMail
        5. Using Mozilla Mail & News
    18. 17. Basic Security
      1. A Perspective on System Security
      2. Initial Steps in Setting Up a Secure System
        1. Shutting Down Unwanted Network Daemons
        2. Top 10 Things You Should Never Do
      3. TCP Wrapper Configuration
        1. Using TCP Wrappers with inetd
        2. Using TCP Wrappers with xinetd
        3. /etc/hosts.allow and /etc/hosts.deny
      4. Firewalls: Filtering IP Packets
        1. netfilter Basics
          1. Using the iptables command
        2. Developing IP Filtering Rulesets
        3. IP Filter Management and Script Files
        4. Sample netfilter Configurations
          1. Simple IP filtering example
          2. IP filtering to protect an entire network
          3. IP masquerading example
    19. 18. LAMP
      1. MySQL
      2. PHP
        1. Some Sample PHP
        2. PHP4 as an Apache Module
      3. The LAMP Server in Action
    20. A. Sources of Linux Information
      1. Linux Documentation Project
      2. FTP Sites
      3. World Wide Web Sites
        1. General Documentation
        2. Open Source Projects
        3. Programming Languages and Tools
        4. News and Information Sites
        5. Linux Software Directories and Download Sites
        6. Linux Distributions
        7. Commercial Linux Software Companies
        8. Internet RFCs and Other Standards
        9. Miscellaneous
    21. B. Installing Linux on Digital/Compaq Alpha Systems
      1. Alpha History and Status
        1. The Linux Port and Distributions
        2. Chipsets
        3. Sources of Information
          1. AlphaLinux sites
          2. AlphaLinux mailing lists
          3. AlphaLinux FTP sites
        4. Minimum Hardware
        5. IDE/ATAPI Drive Support
        6. Mice and Serial Ports
      2. Preparations and General Procedure for Installation
        1. Potential Incompatibilities and Hardware Problems
        2. Installation Choices
          1. Firmware options
          2. Features and limitations of SRM
          3. Features and limitations of ARC Firmware
          4. Features and limitations of AlphaBIOS Firmware
          5. Features and limitations of Milo Miniloader
      3. Installing Linux
        1. General Procedure
        2. Preparing Software for Installation
        3. Preparing Hardware for Installation
        4. Setting Up the System Firmware to Start the Installation
        5. Loading the Linux Boot Kernel
      4. Tuning and Post-Installation Considerations
        1. Kernel Tuning
        2. Performance and Library Tuning
        3. Binary Emulation
        4. Graphical Browser Considerations
    22. 19. Bibliography
      1. Linux Documentation Project Guides
      2. Linux Documentation Project FAQs
      3. Linux Documentation Project HOWTOs (Partial Listing)
      4. General Linux Books
      5. Unix and Unix Shells
      6. Applications
      7. The Internet
      8. Networks and Communications
      9. Programming and Linux Internals
      10. System Administration
      11. Security
    23. Index
    24. Colophon