文件名称:
A Practical Guide to Ubuntu Linux Ubuntu Linux 实战手册
开发工具:
文件大小: 10mb
下载次数: 0
上传时间: 2010-12-08
详细说明: A Practical Guide to Ubuntu Linux Ubuntu Linux 实战手册 183 7 The Shell 219 PART III Digging into Ubuntu Linux 249 8 Linux GUIs: X and GNOME 251 9 The Bourne Again Shell 275 10 Networking and the Internet 353 11 Programming the Bourne Again Shell 395 x Brief Contents PART IV System Administration 483 12 System Administration: Core Concepts 485 13 Files, Directories, and Filesystems 553 14 Downloading and Installing Software 583 15 Printing with CUPS 611 16 Building a Linux Kernel 635 17 Administration Tasks 657 18 Configuring a LA N 693 PART V Using Clients and Setting Up Servers 705 19 OpenSSH: Secure Network Communication 707 20 FTP: Transferring Files Across a Network 729 21 exim4: Setting Up Mail Servers, Clients, and More 755 22 NIS: Network Information Service 781 23 NFS: Sharing Filesystems 799 24 Samba: Linux and Windows File and Printer Sharing 823 25 DNS/BIND: Tracking Domain Names and Addresses 845 26 firestarter and iptables: Setting Up a Firewall 885 27 Apache: Setting Up a Web Server 915 PART VI Appendixes 969 A Regular Expressions 971 B Help 981 C Security 991 D The Free Software Definition 1011 E The Linux 2.6 Kernel 1015 Glossary 1021 Index 1071 xi Contents Preface xxxvi Chapter 1: Welcome to Linux 1 The GNU–Linux Connection 2 The History of GNU–Linux 2 The Code Is Free 4 Have Fun! 5 The Linux 2.6 Kernel 5 The Heritage of Linux: UNIX 5 What Is So Good About Linux? 6 Why Linux Is Popular with Hardware Companies and Developers 7 Linux Is Portable 8 Standards 9 The C Programming Language 9 Ubuntu Linux 10 Overview of Linux 10 Linux Has a Kernel Programming Interface 10 Linux Can Support Many Users 11 Linux Can Run Many Tasks 11 Linux Provides a Secure Hierarchical Filesystem 12 The Shell: Command Interpreter and Programming Language 12 A Large Collection of Useful Utilities 14 Interprocess Communication 14 System Administration 15 xii Contents Additional Features of Linux 15 GUIs: Graphical User Interfaces 15 (Inter)Networking Utilities 16 Software Development 17 Conventions Used in This Book 17 Chapter Summary 20 Exercises 20 PART I Installing Ubuntu Linux 21 Chapter 2: Installation Overview 23 The Live/Install Desktop CD/DVD 24 More Information 24 Planning the Installation 25 Considerations 25 Requirements 25 Processor Architecture 26 Interfaces: Installer and Installed System 27 Ubuntu Releases 28 Ubuntu Editions 28 Installing a Fresh Copy or Upgrading an Existing Ubuntu System? 29 Setting Up the Hard Disk 30 RAID 34 LVM: Logical Volume Manager 35 The Installation Process 36 Downloading and Burning a CD/DVD 37 The Easy Way to Download a CD ISO Image File 37 Other Ways to Download a CD/DVD ISO Image File 37 Verifying an ISO Image File 40 Burning the CD/DVD 40 Gathering Information About the System 41 Chapter Summary 42 Exercises 43 Advanced Exercises 43 Chapter 3: Step-by-Step Installation 45 Basic Installation from the Live/Install Desktop CD/DVD 46 Booting the System 46 Checking the CD/DVD for Defects 47 Live Session 47 Contents xiii Graphical Partitioners 53 gparted: the GNOME Partition Editor 53 ubiquity: Setting Up Partitions 56 Upgrading to a New Release 59 Installing KDE 60 Setting Up a Dual-Boot System 61 Creating Free Space on a Windows System 61 Installing Ubuntu Linux as the Second Operating System 61 Advanced Installation 62 The Live/Install Desktop CD: The Initial Install Screen 62 The Alternate CD Initial Install Screen Menu 65 The Server CD Initial Install Screen Menu 66 The DVD 67 The Ubuntu Textual Installer 67 The X Window System 74 displayconfig-gtk: Configures the Display 75 The xorg.conf File 77 gdm: Displays a Graphical Login 82 Chapter Summary 83 Exercises 83 Advanced Exercises 84 PART II Getting Started with Ubuntu Linux 85 Chapter 4: Introduction to Ubuntu Linux 87 Curbing Your Power: root Privileges/sudo 88 A Tour of the Ubuntu Linux Desktop 89 Logging In on the System 89 Introduction 90 Launching Programs from the Desktop 91 Switching Workspaces 93 Setting Personal Preferences 94 Mouse Preferences 95 Working with Windows 96 Using Nautilus to Work with Files 96 The Update Notifier 100 Changing Appearances (Themes) 102 Session Management 104 Getting Help 104 Feel Free to Experiment 105 Logging Out 105 xiv Contents Getting the Most out of the Desktop 105 GNOME Desktop Terminology 105 Opening Files 106 Panels 107 The Main Menu 110 Windows 111 The Object Context Menu 115 Updating, Installing, and Removing Software Packages 119 Software Sources Window 119 Add/Remove Applications 120 Synaptic: Finds, Installs, and Removes Software 121 Where to Find Documentation 124 Ubuntu Help Center 124 man: Displays the System Manual 124 info: Displays Information About Utilities 126 The ––help Option 129 HOWTOs: Finding Out How Things Work 129 Getting Help with the System 130 More About Logging In 132 The Login Screen 132 What to Do if You Cannot Log In 133 Logging In Remotely: Terminal Emulators, ssh, and Dial-Up Connections 133 Logging In from a Terminal (Emulator) 134 Changing Your Password 135 Using Virtual Consoles 136 Working from the Command Line 136 Correcting Mistakes 137 Repeating/Editing Command Lines 139 Controlling Windows: Advanced Operations 139 Changing the Input Focus 139 Changing the Resolution of the Display 140 The Window Manager 141 Chapter Summary 142 Exercises 143 Advanced Exercises 144 Chapter 5: The Linux Utilities 145 Special Characters 146 Basic Utilities 147 ls: Lists the Names of Files 147 cat: Displays a Text File 147 rm: Deletes a File 148 less Is more: Display a Text File One Screen at a Time 148 hostname: Displays the System Name 149 Contents xv Working with Files 149 cp: Copies a File 149 mv: Changes the Name of a File 150 lpr: Prints a File 151 grep: Searches for a String 151 head: Displays the Beginning of a File 152 tail: Displays the End of a File 152 sort: Displays a File in Order 153 uniq: Removes Duplicate Lines from a File 154 diff: Compares Two Files 154 file: Tests the Contents of a File 155 | (Pipe): Communicates Between Processes 156 Four More Utilities 157 echo: Displays Text 157 date: Displays the Time and Date 157 script: Records a Shell Session 158 unix2dos: Converts Linux and Macintosh Files to Windows Format 159 Compressing and Archiving Files 159 bzip2: Compresses a File 160 bunzip2 and bzcat: Decompress a File 160 gzip: Compresses a File 161 tar: Packs and Unpacks Archives 161 Locating Commands 164 which and whereis: Locate a Utility 164 apropos: Searches for a Keyword 165 slocate: Searches for a File 166 Obtaining User and System Information 166 who: Lists Users on the System 167 finger: Lists Users on the System 167 w: Lists Users on the System 169 Communicating with Other Users 170 write: Sends a Message 170 mesg: Denies or Accepts Messages 171 Email 171 Tutorial: Creating and Editing a File with vim 172 Starting vim 172 Command and Input Modes 174 Entering Text 175 Getting Help 176 Ending the Editing Session 178 The compatible Parameter 179 Chapter Summary 179 Exercises 181 Advanced Exercises 182 xvi Contents Chapter 6: The Linux Filesystem 183 The Hierarchical Filesystem 184 Directory Files and Ordinary Files 184 Filenames 185 The Working Directory 188 Your Home Directory 188 Pathnames 189 Absolute Pathnames 189 Relative Pathnames 190 Directory Commands 191 mkdir: Creates a Directory 191 Important Standard Directories and Files 194 Working with Directories 196 rmdir: Deletes a Directory 196 Using Pathnames 197 mv, cp: Move or Copy Files 197 mv: Moves a Directory 198 Access Permissions 199 ls –l: Displays Permissions 199 chmod: Changes Access Permissions 200 Setuid and Setgid Permissions 201 Directory Access Permissions 202 ACLs: Access Control Lists 203 Enabling ACLs 204 Working with Access Rules 204 Setting Default Rules for a Directory 207 Links 209 Hard Links 210 Symbolic Links 212 rm: Removes a Link 214 Chapter Summary 214 Exercises 216 Advanced Exercises 218 Chapter 7: The Shell 219 The Command Line 220 Syntax 220 Processing the Command Line 223 Executing the Command Line 225 Editing the Command Line 225 Standard Input and Standard Output 226 The Screen as a File 226 The Keyboard and Screen as Standard Input and Standard Output 227 Redirection 228 Pipes 234 Contents xvii Running a Program in the Background 237 Filename Generation/Pathname Expansion 239 The ? Special Character 239 The * Special Character 240 The [ ] Special Characters 241 Builtins 243 Chapter Summary 244 Utilities and Builtins Introduced in This Chapter 245 Exercises 245 Advanced Exercises 247 PART III Digging into Ubuntu Linux 249 Chapter 8: Linux GUIs: X and GNOME 251 X Window System 252 Using X 254 Window Managers 259 The Nautilus File Browser Window 260 The View Pane 261 The Side Pane 261 Control Bars 262 Menubar 263 GNOME Utilities 266 Deskbar Applet 266 Font Preferences 267 Pick a Font Window 268 Pick a Color Window 268 Run Application Window 269 Searching for Files 269 GNOME Terminal Emulator/Shell 270 Chapter Summary 271 Exercises 272 Advanced Exercises 272 Chapter 9: The Bourne Again Shell 275 Background 276 Shell Basics 277 Startup Files 277 Commands That Are Symbols 280 Redirecting Standard Error 280 Writing a Simple Shell Script 282 Separating and Grouping Commands 286 Job Control 290 Manipulating the Directory Stack 292 xviii Contents Parameters and Variables 295 User-Created Variables 296 Variable Attributes 299 Keyword Variables 301 Special Characters 309 Processes 310 Process Structure 310 Process Identification 310 Executing a Command 312 History 312 Variables That Control History 312 Reexecuting and Editing Commands 314 The Readline Library 322 Aliases 328 Single Versus Double Quotation Marks in Aliases 329 Examples of Aliases 330 Functions 331 Controlling bash Features and Options 334 Command Line Options 334 Shell Features 334 Processing the Command Line 338 History Expansion 338 Alias Substitution 338 Parsing and Scanning the Command Line 338 Command Line Expansion 339 Chapter Summary 347 Exercises 349 Advanced Exercises 351 Chapter 10: Networking and the Internet 353 Types of Networks and How They Work 355 Broadcast Networks 356 Point-to-Point Networks 356 Switched Networks 356 LAN: Local Area Network 357 WAN: Wide Area Network 358 Internetworking Through Gateways and Routers 358 Network Protocols 361 Host Address 363 CIDR: Classless Inter-Domain Routing 367 Hostnames 368 Communicate Over a Network 370 finger: Displays Information About Remote Users 370 Sending Mail to a Remote User 371 Mailing List Servers 372 Contents xix Network Utilities 372 Trusted Hosts 372 OpenSSH Tools 373 telnet: Logs In on a Remote System 373 ftp: Transfers Files Over a Network 375 ping: Tests a Network Connection 375 traceroute: Traces a Route Over the Internet 376 host and dig: Query Internet Nameservers 378 jwhois: Looks Up Information About an Internet Site 378 Distributed Computing 379 The Client/Server Model 380 DNS: Domain Name Service 381 Ports 383 NIS: Network Information Service 383 NFS: Network Filesystem 383 Internet Services 384 Proxy Servers 387 RPC Network Services 387 Usenet 388 WWW: World Wide Web 390 URL: Uniform Resource Locator 391 Browsers 392 Search Engines 392 Chapter Summary 392 Exercises 393 Advanced Exercises 394 Chapter 11: Programming the Bourne Again Shell 395 Control Structures 396 if...then 396 if...then...else 400 if...then...elif 403 for...in 409 for 410 while 412 until 416 break and continue 418 case 419 select 425 Here Document 427 File Descriptors 429 Parameters and Variables 432 Array Variables 432 Locality of Variables 434 Special Parameters 436 Positional Parameters 438 Expanding Null and Unset Variables 443 xx Contents Builtin Commands 444 type: Displays Information About a Command 445 read: Accepts User Input 445 exec: Executes a Command 448 trap: Catches a Signal 451 kill: Aborts a Process 454 getopts: Parses Options 454 A Partial List of Builtins 457 Expressions 458 Arithmetic Evaluation 458 Logical Evaluation (Conditional Expressions) 459 String Pattern Matching 460 Operators 461 Shell Programs 466 A Recursive Shell Script 467 The quiz Shell Script 470 Chapter Summary 476 Exercises 478 Advanced Exercises 480 PART IV System Administration 483 Chapter 12: System Administration: Core Concepts 485 Running Commands with root Privileges 487 sudo: Running a Command with root Privileges 490 sudoers: Configuring sudo 494 Unlocking the root Account (Assigning a Password to root) 499 su: Gives You Another User’s Privileges 499 The Upstart Event-Based init Daemon 500 Software Packages 501 Definitions 501 Jobs 503 SysVinit (rc) Scripts: Start and Stop System Services 507 System Operation 510 Runlevels 510 Booting the System 511 Recovery (Single-User) Mode 512 Going to Multiuser Mode 515 Logging In 516 Contents xxi Logging Out 517 Bringing the System Down 518 Crash 519 Avoiding a Trojan Horse 520 Getting Help 522 Textual System Administration Utilities 522 kill: Sends a Signal to a Process 522 Other Textual Utilities 525 Setting Up a Server 527 Standard Rules in Configuration Files 528 rpcinfo: Displays Information About portmap 530 The inetd and xinetd Superservers 531 Securing a Server 532 DHCP: Configures Network Interfaces 538 nsswitch.conf: Which Service to Look at First 542 How nsswitch.conf Works 542 PAM 545 More Information 546 Configuration Files, Module Types, and Control Flags 546 Example 548 Modifying the PAM Configuration 549 Chapter Summary 550 Exercises 551 Advanced Exercises 551 Chapter 13: Files, Directories, and Filesystems 553 Important Files and Directories 554 File Types 566 Ordinary Files, Directories, Links, and Inodes 566 Special Files 567 Filesystems 570 mount: Mounts a Filesystem 572 umount: Unmounts a Filesystem 575 fstab: Keeps Track of Filesystems 576 fsck: Checks Filesystem Integrity 577 tune2fs: Changes Filesystem Parameters 578 RAID Filesystem 580 Chapter Summary 580 Exercises 580 Advanced Exercises 581 xxii Contents Chapter 14: Downloading and Installing Software 583 JumpStart: Installing and Removing Packages Using aptitude 585 Finding the Package That Holds a File You Need 587 APT: Keeps the System Up-to-Date 588 Repositories 588 sources.list: Specifies Repositories for APT to Search 589 The APT Local Package Indexes and the APT Cache 590 The apt cron Script and APT Configuration Files 590 aptitude: Works with Packages and the Local Package Index 592 apt-cache: Displays Package Information 596 apt-get source: Downloads Source Files 598 dpkg: The Debian Package Management System 598 deb Files 599 dpkg: The Foundation of the Debian Package Management System 600 BitTorrent 604 Installing Non-dpkg Software 607 The /opt and /usr/local Directories 607 GNU Configure and Build System 607 wget: Downloads Files Noninteractively 609 Chapter Summary 610 Exercises 610 Advanced Exercises 610 Chapter 15: Printing with CUPS 611 Introduction 612 Prerequisites 612 More Information 613 Notes 613 JumpStart I: Configuring a Local Printer 614 system-config-printer: Configuring a Printer 614 Configuration Tabs 614 Setting Up a Remote Printer 616 JumpStart II: Configuring a Remote Printer Using the CUPS Web Interface 618 Traditional UNIX Printing 622 Configuring Printers 624 The CUPS Web Interface 624 CUPS on the Command Line 626 Sharing CUPS Printers 629 Printing from Windows 630 Printing Using CUPS 631 Printing Using Samba 631 Contents xxiii Printing to Windows 632 Chapter Summary 633 Exercises 633 Advanced Exercises 633 Chapter 16: Building a Linux Kernel 635 Prerequisites 636 Downloading the Kernel Source Code 637 aptitude: Downloading and Installing the Kernel Source Code 637 git: Obtaining the Latest Kernel Source Code 637 Read the Documentation 638 Configuring and Compiling the Linux Kernel 639 .config: Configures the Kernel 639 Customizing a Kernel 640 Cleaning the Source Tree 642 Compiling a Kernel Image File and Loadable Modules 643 Using Loadable Kernel Modules 643 Installing the Kernel, Modules, and Associated Files 646 Rebooting 647 grub: The Linux Boot Loader 647 menu.lst: Configures grub 648 update-grub: Updates the menu.lst file 651 grub-install: Installs the MBR and grub Files 653 dmesg: Displays Kernel Messages 654 Chapter Summary 655 Exercises 656 Advanced Exercises 656 Chapter 17: Administration Tasks 657 Configuring User and Group Accounts 658 users-admin: Manages User Accounts 658 useradd: Adds a User Account 660 userdel: Removes a User Account 661 usermod: Modifies a User Account 661 groupadd: Adds a Group 661 groupdel: Removes a Group 661 Backing Up Files 662 Choosing a Backup Medium 663 Backup Utilities 663 Performing a Simple Backup 665 dump, restore: Back Up and Restore Filesystems 666 xxiv Contents Scheduling Tasks 668 cron and anacron: Schedule Routine Tasks 668 at: Runs Occasional Tasks 671 System Reports 671 vmstat: Reports Virtual Memory Statistics 671 top: Lists Processes Using the Most Resources 672 parted: Reports on and Partitions a Hard Disk 673 Keeping Users Informed 677 Creating Problems 678 Solving Problems 679 Helping When a User Cannot Log In 679 Speeding Up the System 680 lsof: Finds Open Files 681 Keeping a Machine Log 681 Keeping the System Secure 682 Log Files and Mail for root 683 Monitoring Disk Usage 683 logrotate: Manages Log Files 684 Removing Unused Space from Directories 686 Disk Quota System 687 syslogd: Logs System Messages 688 Chapter Summary 690 Exercises 690 Advanced Exercises 691 Chapter 18: Configuring a LAN 693 Setting Up the Hardware 694 Connecting the Computers 694 Routers 695 NIC: Network Interface Card 695 Tools 695 Configuring the Systems 697 network-admin: Configures Network Connections 698 nm-applet: Configures Network Connections Automatically 700 iwconfig: Configures a Wireless NIC 700 Setting Up Servers 702 More Information 703 Chapter Summary 703 Exercises 704 Advanced Exercises 704 Contents xxv PART V Using Clients and Setting Up Servers 705 Chapter 19: OpenSSH: Secure Network Communication 707 Introduction 708 About OpenSSH 708 Files 708 How OpenSSH Works 710 More Information 711 OpenSSH Clients 711 Prerequisites 711 JumpStart: Using ssh and scp 711 Setup 712 ssh: Connects to or Executes Commands on a Remote System 714 scp: Copies Files to and from a Remote System 716 sftp: A Secure FTP Client 718 ~/.ssh/config and /etc/ssh/ssh_config Configuration Files 718 sshd: OpenSSH Server 720 Prerequisites 720 Note 720 JumpStart: Starting the sshd Daemon 720 Authorized Keys: Automatic Login 721 Command Line Options 722 /etc/ssh/sshd_config Configuration File 722 Troubleshooting 724 Tunneling/Port Forwarding 725 Chapter Summary 727 Exercises 728 Advanced Exercises 728 Chapter 20: FTP: Transferring Files Across a Network 729 Introduction 730 More Information 731 FTP Client 731 Prerequisites 731 JumpStart I: Downloading Files Using ftp 732 Notes 735 Anonymous FTP 735 Automatic Login 735 Binary Versus ASCII Transfer Mode 736 ftp Specifics 736 xxvi Contents FTP Server (vsftpd) 740 Prerequisites 740 Notes 740 JumpStart II: Starting a vsftpd Server 741 Testing the Setup 741 vsftpd.conf: The vsftpd Configuration File 742 Chapter Summary 753 Exercises 753 Advanced Exercises 754 Chapter 21: exim4: Setting Up Mail Servers, Clients, and More 755 Introduction to exim4 756 Prerequisites 757 Notes 757 More Information 758 JumpStart I: Configuring exim4 to Use a Smarthost 758 JumpStart II: Configuring exim4 to Send and Receive Email 760 How exim4 Works 761 Mail Logs 762 Working with Messages 763 Aliases and Forwarding 763 Related Programs 765 Configuring exim4 765 Using a Text Editor to Configure exim4 766 The update-exim4.conf.conf Configuration File 766 dpkg-reconfigure: Configures exim4 768 SpamAssassin 768 Prerequisites 769 How SpamAssassin Works 769 Testing SpamAssassin 770 Configuring SpamAssassin 771 Additional Email Tools 772 Webmail 772 Mailing Lists 774 Setting Up an IMAP or POP3 Server 776 Authenticated Relaying 777 Alternatives to exim4 779 Chapter Summary 779 Exercises 780 Advanced Exercises 780 Contents xxvii Chapter 22: NIS: Network Information Service 781 Introduction to NIS 782 How NIS Works 782 More Information 784 Setting Up an NIS Client 784 Prerequisites 785 Notes 785 Step-by-Step Setup 786 Testing the Setup 787 yppasswd: Changes NIS Passwords 788 Setting Up an NIS Server 790 Prerequisites 790 Notes 791 Step-by-Step Setup 791 Testing 796 yppasswdd: The NIS Password Update Daemon 797 Chapter Summary 798 Exercises 798 Advanced Exercises 798 Chapter 23: NFS: Sharing Filesystems 799 Introduction 800 More Information 802 Setting Up an NFS Client 802 Prerequisites 802 JumpStart I: Mounting a Remote Directory Hierarchy 803 mount: Mounts a Directory Hierarchy 804 Improving Performance 806 /etc/fstab: Mounts Directory Hierarchies Automatically 807 Setting Up an NFS Server 808 Prerequisites 808 Notes 808 JumpStart II: Configuring an NFS Server Using shares-admin 809 Manually Exporting a Directory Hierarchy 811 Where the System Keeps NFS Mount Information 815 exportfs: Maintains the List of Exported Directory Hierarchies 817 Testing the Server Setup 818 automount: Mounts Directory Hierarchies on Demand 818 Chapter Summary 821 Exercises 822 Advanced Exercises 822 xxviii Contents Chapter 24: Samba: Linux and Windows File and Printer Sharing 823 Introduction 824 About Samba 825 Prerequisites 825 More Information 825 Notes 825 Samba Users, User Maps, and Passwords 826 JumpStart: Configuring a Samba Server Using shares-admin 826 swat: Configures a Samba Server 828 smb.conf: Manually Configuring a Samba Server 832 Parameters in the smbd.conf File 832 The [homes] Share: Sharing Users’ Home Directories 838 Accessing Linux Shares from Windows 838 Browsing Shares 838 Mapping a Share 839 Accessing Windows Shares from Linux 839 smbtree: Displays Windows Shares 839 smbclient: Connects to Windows Shares 840 Browsing Windows Networks 840 Mounting Windows Shares 841 Troubleshooting 841 Chapter Summary 844 Exercises 844 Advanced Exercises 844 Chapter 25: DNS/BIND: Tracking Domain Names and Addresses 845 Introduction to DNS 846 Nodes, Domains, and Subdomains 846 Zones 848 Queries 849 Servers 850 Resource Records 851 DNS Query and Response 854 Reverse Name Resolution 855 About DNS 857 How DNS Works 857 Prerequisites 857 More Information 858 Notes 858 Contents xxix JumpStart I: Setting Up a DNS Cache 858 Setting Up BIND 860 named.conf: The named Configuration File 860 Zone Files 863 A DNS Cache 864 DNS Glue Records 868 TSIGs: Transaction Signatures 868 Running BIND in a chroot Jail 870 Troubleshooting 872 A Full-Functioned Nameserver 873 A Slave Server 877 A Split Horizon Server 878 Chapter Summary 883 Exercises 883 Advanced Exercises 884 Chapter 26: firestarter and iptables: Setting Up a Firewall 885 About firestarter 886 Prerequisites 886 Notes 887 More Information 888 JumpStart: Building a Firewall Using the firestarter Firewall Wizard 888 firestarter: Maintains a Firewall 890 The Status Tab 890 The Events Tab 892 The Policy Tab 894 How iptables Works 896 About iptables 899 More Information 899 Prerequisites 899 Notes 899 Anatomy of an iptables Command 900 Building a Set of Rules 901 Commands 901 Packet Match Criteria 903 Display Criteria 903 Match Extensions 903 Targets 906 Copying Rules to and from the Kernel 907 xxx Contents Sharing an Internet Connection Using NAT 908 Connecting Several Clients to a Single Internet Connection 910 Connecting Several Servers to a Single Internet Connection 912 Chapter Summary 912 Exercises 913 Advanced Exercises 913 Chapter 27: Apache: Setting Up a Web Server 915 Introduction 916 About Apache 917 Prerequisites 917 More Information 918 Notes 918 JumpStart: Getting Apache Up and Running 919 Modifying the Configuration Files 919 Testing Apache 920 Putting Your Content in Place 920 Configuring Apache 921 Configuration Tools 921 Include Directives 922 Filesystem Layout 923 Configuration Directives 925 Directives I: Directives You May Want to Modify as You Get Started 926 Contexts and Containers 931 Directives II: Advanced Directives 935 The Ubuntu apache2.conf File 948 The Ubuntu default Configuration File 950 Redirects 951 Content Negotiation 951 Type Maps 951 MultiViews 952 Server-Generated Directory Listings (Indexing) 953 Virtual Hosts 953 Setting Up a Virtual Host 954 Types of Virtual Hosts 954 The default Virtual Host 954 Examples 954 Troubleshooting 956 Modules 957 mod_cgi and CGI Scripts 958 mod_ssl 959 Authentication Modules and .htaccess 961 Scripting Modules 962 Multiprocessing Modules (MPMs) 963 Contents xxxi webalizer: Analyzes Web Traffic 964 MRTG: Monitors Traffic Loads 964 Error Codes 964 Chapter Summary 965 Exercises 966 Advanced Exercises 966 PART VI Appendixes 969 Appendix A: Regular Expressions 971 Characters 972 Delimiters 972 Simple Strings 972 Special Characters 972 Periods 973 Brackets 973 Asterisks 974 Carets and Dollar Signs 974 Quoting Special Characters 975 Rules 975 Longest Match Possible 975 Empty Regular Expressions 976 Bracketing Expressions 976 The Replacement String 976 Ampersand 977 Quoted Digit 977 Extended Regular Expressions 977 Appendix Summary 979 Appendix B: Help 981 Solving a Problem 982 Finding Linux-Related Information 983 Documentation 983 Useful Linux Sites 984 Linux Newsgroups 985 Mailing Lists 985 Words 986 Software 986 Office Suites and Word Processors 988 Specifying a Terminal 988 xxxii Contents Appendix C: Security 991 Encryption 992 Public Key Encryption 993 Symmetric Key Encryption 994 Encryption Implementation 995 GnuPG/PGP 995 File Security 997 Email Security 997 MTAs (Mail Transfer Agents) 997 MUAs (Mail User Agents) 998 Network Security 998 Network Security Solutions 999 Network Security Guidelines 999 Host Security 1001 Login Security 1002 Remote Access Security 1003 Viruses and Worms 1004 Physical Security 1004 Security Resources 1006 Appendix Summary 1009 Appendix D: The Free Software Definition 1011 Appendix E: The Linux 2.6 Kernel 1015 Native Posix Thread Library (NPTL) 1016 IPSecurity (IPSec) 1016 Asynchronous I/O (AIO) 1016 O(1) Scheduler 1017 OProfile 1017 kksymoops 1017 Reverse Map Virtual Memory (rmap VM) 1017 HugeTLBFS: Translation Look-Aside Buffer Filesystem 1018 remap_file_pages 1018 2.6 Network Stack Features (IGMPv3, IPv6, and Others) 1018 Internet Protocol Virtual Server (IPVS) 1019 Access Control Lists (ACLs) 1019 4GB-4GB Memory Split: Physical Address Extension (PAE) 1019 Scheduler Support for HyperThreaded CPUs 1019 Contents xxxiii Block I/O (BIO) Block Layer 1019 Support for Filesystems Larger Than 2 Terabytes 1020 New I/O Elevators 1020 Interactive Scheduler Response Tuning 1020 Glossary 1021 Index 1071 This page intentionally left blank xxxv M Preface Preface The book Whether you are an end user, a system administrator, or a little of both, this book explains with step-by-step examples how to get the most out of an Ubuntu Linux system. In 27 chapters, this book takes you from installing an Ubuntu system through understanding its inner workings to setting up secure servers that run on the system. The audience This book is designed for a wide range of readers. It does not require you to have programming experience, although having some experience using a general-purpose computer, such as a Windows, Macintosh, UNIX, or another Linux system is certainly helpful. This book is appropriate for • Students who are taking a class in which they use Linux • Home users who want to set up and/or run Linux • Professionals who use Linux at work • System administrators who need an understanding of Linux and the tools that are available to them • Computer science students who are studying the Linux operating system • Technical executives who want to get a grounding in Linux Benefits A Practical Guide to Ubuntu Linux® gives you a broad understanding of many facets of Linux, from installing Ubuntu Linux through using and customizing it. No matter what your background, this book provides the knowledge you need to get on with your work. You will come away from this book understanding how to use Linux, and this book will remain a valuable reference for years to come. xxxvi Preface Overlap If you read A Practical Guide to Linux® Commands, Editors, and Shell Programming, you will notice some overlap between that book and the one you are reading now. The first chapter, the chapters on the utilities and the filesystem, and the appendix on regular expressions are very similar in the two books, as are the three chapters on the Bourne Again Shell (bash). Chapters that appear in this book but do not appear in A Practical Guide to Linux® Commands, Editors, and Shell Programming include Chapters 2 and 3 (installation), Chapters 4 and 8 (Ubuntu Linux and the GUI), Chapter 10 (networking), all of the chapters in Part IV (system administration) and Part V (servers), and Appendix C (security). Differences While this book explains how to use Linux from a graphical interface and from the command line (a textual interface), A Practical Guide to Linux® Commands, Editors, and Shell Programming works exclusively with the command line. It includes full chapters on the vi and emacs editors, as well as chapters on the gawk pattern processing language and the sed stream editor. In addition, it has a command reference section that provides extensive examples of the use of more than 80 of the most important Linux utilities. You can use these utilities to solve problems without resorting to programming in C. This Book Includes Ubuntu Gutsy Gibbon (7.10) on a Live/Install DVD This book includes a live/install DVD that holds the Gutsy Gibbon (7.10) release of Ubuntu Linux. You can use this DVD to run a live Ubuntu session that displays the GNOME desktop without making any changes to your computer: Boot from the DVD, run an Ubuntu live session, and log off. Your system remains untouched: When you reboot, it is exactly as it was before you ran the Ubuntu live session. Alternatively, you can install Ubuntu from the live session. Chapter 2 helps you get ready to install Ubuntu. Chapter 3 provides step-by-step instructions for installing Ubuntu from this DVD. This book guides you through learning about, using, and administrating an Ubuntu Linux session. DVD features The included DVD incorporates all the features of the live/install Desktop CD as well as the Alternate and Server CDs. It also includes all software packages supported by Ubuntu. You can use it to perform a graphical or textual (command line) installation of either a graphical or a textual Ubuntu system. If you do not have an Internet connection, you can use the DVD as a software repository and install any supported software packages from it. Features of This Book This book is designed and organized so you can get the most out of it in the shortest amount of time. You do not have to read this book straight through in page order. Instead, once you are comfortable using Linux, you can use this book as a reference: Features of This Book xxxvii Look up a topic of interest in the table of contents or index and read about it. Or think of the book as a catalog of Linux topics: Flip through the pages until a topic catches your eye. The book includes many pointers to Web sites where you can get additional information: Consider the Internet an extension of this book. A Practical Guide to Ubuntu Linux® is structured with the following features: • Optional sections enable you to read the book at different levels, returning to more difficult material when you are ready to delve into it. • Caution boxes highlight procedures that can easily go wrong, giving you guidance before you run into trouble. • Tip boxes highlight ways you can save time by doing something differently or situations when it may be useful or just interesting to have additional information. • Security boxes point out places where you can make a system more secure. The security appendix presents a quick background in system security issues. • Concepts are illustrated by practical examples throughout the book. • Chapter summaries review the important points covered in each chapter. • Review exercises are included at the end of each chapter for readers who want to further hone their skills. Answers to even-numbered exercises are available at www.sobell.com. • The glossary defines more than 500 common terms. • The chapters that cover servers include JumpStart sections that get you off to a quick start using clients and setting up servers. Once a server is up and running, you can test and modify its configuration as explained in the rest of the chapter. • This book provides resources for finding software on the Internet. It also explains how to download and install software using Synaptic, aptitude, the GNOME Add/Remove Applications window, and BitTorrent. It details controlling automatic updates using the Update Notifier and the Update Manager window. • This book describes in detail many important GNU tools, including the GNOME desktop, the Nautilus File Browser, the parted and gparted partition editors, the gzip compression utility, and many command line utilities that come from the GNU project. • Pointers throughout the text provide help in obtaining online documentation from many sources, including the local system, the Ubuntu Web site, and other locations on the Internet. • Many useful URLs point to Web sites where you can obtain software, security programs and information, and more. • The comprehensive index helps you locate topics quickly and easily. xxxviii Preface Key Topics Covered in This Book This book contains a lot of information. This section distills and summarizes its contents. In addition, “Details” (starting on page xli) describes what each chapter covers. Finally, the table of contents provides more detail. This book: Installation • Describes how to download Ubuntu Linux ISO images from the Internet and burn the Ubuntu live/install Desktop CD, the DVD, or the Ubuntu Alternate or Server installation CD. • Helps you plan the layout of the system’s hard disk. It includes a discussion of partitions, partition tables, and mount points, and assists you in using the ubiquity or gparted graphical partitioner or the Ubuntu textual partitioner to partition the hard disk. • Explains how to set up a dual-boot system so you can install Ubuntu Linux on a Windows system and boot either operating system. • Describes in detail how to install Ubuntu Linux from a live/install Desktop CD or the live/install DVD using the ubiquity graphical installer. It also explains how to use the textual installer found on the Alternate CD, the Server CD, and the DVD. The graphical installer is fast and easy to use. The textual installer gives you more options and works on systems with less RAM (system memory). • Covers testing an Ubuntu CD/DVD for defects, setting boot command line parameters (boot options), and creating a RAID array. • Covers the details of installing and customizing the X.org version of the X Window System either graphically using the Screen and Graphics Preferences window or manually with a text editor. Working with Ubuntu Linux • Introduces the GNOME desktop (GUI) and explains how to use desktop tools, including the Top and Bottom panels, panel objects, the Main menu, object context menus, the Workspace Switcher, the Nautilus File Browser, and the GNOME Terminal emulator. • Explains how to use the Appearance Preferences window to add and modify themes to customize your desktop to please your senses and help you work more efficiently. • Details how to set up 3D desktop visual effects that take advantage of Compiz Fusion. • Covers the Bourne Again Shell (bash) in three chapters, including an entire chapter on shell programming that includes many sample shell scripts. These chapters provide clear explanations and extensive examples of how bash works both from the command line in day-to-day work and as a programming language to write shell scripts. Key Topics Covered in This Book xxxix • Explains the textual (command line) interface and introduces more than 30 command line utilities. • Presents a tutorial on the vim textual editor. • Covers types of networks, network protocols, and network utilities. • Explains hostnames, IP addresses, and subnets, and explores how to use host and dig to look up domain names and IP addresses on the Internet. • Covers distributed computing and the client/server model. • Explains how to use ACLs (Access Control Lists) to fine-tune user access permissions. System administration • Explains how to use the Ubuntu graphical and textual (command line) tools to configure the display, DNS, NFS, Samba, Apache, a firewall, a network interface, and more. You can also use these tools to add users and manage local and remote printers. • Goes into detail about using sudo to allow specific users to work with root privileges (become Superuser) and customizing the way sudo works by editing the sudoers configuration file. It also explains how you can unlock the root account if necessary. • Describes how to use the following tools to download and install software to keep a system up-to-date and to install new software: ◆ The Software Sources window controls which Ubuntu and third-party software repositories Ubuntu downloads software packages from and whether Ubuntu downloads updates automatically. You can also use this window to cause Ubuntu to download and install security updates automatically. ◆ If you do not have an Internet connection, you can use the Software Sources window to set up the DVD included with this book as a software repository. You can then install any software packages that Ubuntu supports from this repository. ◆ Based on how you set up updates in the Software Sources window, the Update Notifier pops up on the desktop to let you know when software updates are available. Click the Update Notifier to open the Update Manager window, from which you can download and install updates. ◆ The Add/Remove Applications window provides an easy way to select, download, and install a wide range of software packages. ◆ Synaptic allows you to search for, install, and remove software packages. It gives you more ways to search for packages than does the Add/Remove Applications window. xl Preface ◆ APT downloads and installs software packages from the Internet (or the included DVD), keeping a system up-to-date and resolving dependencies as it processes the packages. You can use APT from a graphical interface (Synaptic) or from several textual interfaces (e.g., aptitude and apt-get). ◆ BitTorrent is a good choice for distributing large amounts of data such as the Ubuntu installation DVD and CDs. The more people who use BitTorrent to download a file, the faster it works. • Covers graphical system administration tools, including the many tools available from the GNOME Main menu. • Explains system operation, including the boot process, init scripts, recovery (single-user) and multiuser modes, and steps to take if the system crashes. • Describes how to use and program the new Upstart init daemon, which replaces the System V init daemon. • Describes files, directories, and filesystems, including types of files and filesystems, fstab (the filesystem table), and automatically mounted filesystems, and explains how to fine-tune and check the integrity of filesystems. • Covers backup utilities, including tar, cpio, dump, and restore. • Describes compression/archive utilities, including gzip, bzip2, compress, and zip. • Explains how to customize and build a Linux kernel. Security • Helps you manage basic system security issues using ssh (secure shell), vsftpd (secure FTP server), Apache (Web server), iptables (firewalls), and more. • Covers using firestarter to share an Internet connection over a LAN, run a DHCP server, and set up a basic firewall to protect the system. • Provides instructions on using iptables to share an Internet connection over a LAN and to build advanced firewalls. • Describes how to set up a chroot jail to help protect a server system. • Explains how to use TCP wrappers to control who can access a server. Clients and servers • Explains how to set up and use the most popular Linux servers, providing a chapter on each: Apache, Samba, OpenSSH, exim4, DNS, NFS, FTP, firestarter and iptables, and NIS (all of which are supported by Ubuntu Linux). • Describes how to set up a CUPS printer server. • Describes how to set up and use a DHCP server either by itself or from firestarter. Programming • Provides a full chapter covering shell programming using bash, including many examples. Key Topics Covered in This Book xli Details Chapter 1 Chapter 1 presents a brief history of Linux and explains some of the features that make it a cutting-edge operating system. The “Conventions Used in This Book” (page 17) section details the typefaces and terminology this book uses. Part I Part I, “Installing Ubuntu Linux,” discusses how to install Ubuntu Linux. Chapter 2 presents an overview of the process of installing Ubuntu Linux, including hardware requirements, downloading and burning a CD or DVD, and planning the layout of the hard disk. Chapter 3 is a step-by-step guide to installing Ubuntu Linux from a CD or DVD, using the graphical or textual installer. It also shows how to set up the X Window System and customize your desktop (GUI). Part II Part II, “Getting Started with Ubuntu Linux,” familiarizes you with Ubuntu Linux, covering logging in, the GUI, utilities, the filesystem, and the shell. Chapter 4 introduces desktop features, including the Top and Bottom panels and the Main menu; explains how to use the Nautilus File Browser to manage files, run programs, and connect to FTP and HTTP servers; covers finding documentation, dealing with login problems, and using the window manager; and presents some suggestions on where to find documentation, including manuals, tutorials, software notes, and HOWTOs. Chapter 5 introduces the shell command line interface, describes more than 30 useful utilities, and presents a tutorial on the vim text editor. Chapter 6 discusses the Linux hierarchical filesystem, covering files, filenames, pathnames, working with directories, access permissions, and hard and symbolic links. Chapter 7 introduces the Bourne Again Shell (bash) and discusses command line arguments and options, redirecting input to and output from commands, running programs in the background, and using the shell to generate and expand filenames. Part III Part III, “Digging into Ubuntu Linux,” goes into more detail about working with the system. Chapter 8 discusses the GUI (desktop) and includes a section on how to run a graphical program on a remote system and have the display appear locally. The section on GNOME describes several GNOME utilities, including the new Deskbar applet, and goes into more depth about the Nautilus File Browser. Chapter 9 extends the bash coverage from Chapter 7, explaining how to redirect error output, avoid overwriting files, and work with job control, processes, startup files, important shell builtin commands, parameters, shell variables, and aliases. Chapter 10 explains networks, network security, and the Internet and discusses types of networks, subnets, protocols, addresses, hostnames, and various network utilities. The section on distributed computing describes the client/server model and some of the servers you can use on a network. Chapter 11 goes into greater depth about shell programming Experienced users may want to skim Part II tip If you have used a UNIX or Linux system before, you may want to skim or skip some or all of the chapters in Part II. Part I has two sections that all readers should take a look at: “Conventions Used in This Book” (page 17), which explains the typographic and layout conventions used in this book, and “Where to Find Documentation” (page 124), which points out both local and remote sources of Linux and Ubuntu documentation. xlii Preface using bash, with the discussion enhanced by extensive examples. Details of setting up and using clients and servers are reserved until Part V. Part IV Part IV covers system administration. Chapter 12 discusses core concepts such as the use of sudo, working with root privileges, system operation, chroot jails, TCP wrappers, general information about how to set up a server, DHCP, and PAM. Chapter 13 explains the Linux filesystem, going into detail about types of files, including special and device files; the use of fsck to verify the integrity of and repair filesystems; and the use of tune2fs to change filesystem parameters. Chapter 14 explains how to keep a system up-to-date by downloading software from the Internet and installing it, including examples of using APT programs such as aptitude, apt-get, and apt-cache. It also covers the dpkg software packaging system and the use of some dpkg utilities. Finally, it explains how to use BitTorrent from the command line to download files. Chapter 15 explains how to set up the CUPS printing system so you can print on both local and remote systems. Chapter 16 details customizing and building a Linux kernel. Chapter 17 covers additional administration tasks, including setting up user accounts, backing up files, scheduling automated tasks, tracking disk usage, and solving general problems. Chapter 18 explains how to set up a local area network (LAN), including both hardware (including wireless) and software configuration. Part V Part V goes into detail about setting up and running servers and connecting to them with clients. Where appropriate, these chapters include JumpStart sections that get you off to a quick start in using clients and setting up servers. The chapters in Part V cover the following clients/servers: • OpenSSH Set up an OpenSSH server and use ssh, scp, and sftp to communicate securely over the Internet. • FTP Set up a vsftpd secure FTP server and use any of several FTP clients to exchange files with the server. • Mail Configure exim4 and use Webmail, POP3, or IMAP to retrieve email; use SpamAssassin to combat spam. • NIS Set up NIS to facilitate system administration of a LAN. • NFS Share filesystems between systems on a network. • Samba Share filesystems and printers between Windows and Linux systems. • DNS/BIND Set up a domain nameserver to let other systems on the Internet know the names and IP addresses of local systems they may need to contact. • firestarter and iptables Share a single Internet connection between systems on a LAN, run a DHCP server, and set up a firewall to protect local systems. • Apache Set up an HTTP server that serves Web pages that browsers can display. This chapter includes many suggestions for increasing Apache security. Thanks xliii Part VI Part VI includes appendixes on regular expressions, helpful Web sites, system security, and free software. This part also includes an extensive glossary with more than 500 entries plus a comprehensive index. Supplements The author’s home page (www.sobell.com) contains downloadable listings of the longer programs from this book as well as pointers to many interesting and useful Linux sites on the World Wide Web, a list of corrections to the book, answers to evennumbered exercises, and a solicitation for corrections, comments, and suggestions. Thanks First and foremost, I want to thank Mark L. Taub, Editor-in-Chief, Prentice Hall, who provided encouragement and support through the hard parts of this project. Mark is unique in my 25 years of book writing experience: an editor who works with the tools I write about. Because Mark runs Ubuntu on his home computer, we shared experiences as I wrote this book. Mark, your comments and direction are invaluable; this book would not exist without your help. Thank you, Mark T. Molly Sharp of ContentWorks worked with me day-by-day during production of this book providing help, listening to my rants, and keeping everything on track. Thanks to Jill Hobbs, Copyeditor, who made the book readable, understandable, and consistent; and Linda Seifert, Proofreader, who made each page sparkle. Thanks also to the folks at Prentice Hall who helped bring this book to life, especially Julie Nahil, Full-Service Production Manager, who oversaw production of the book; John Fuller, Managing Editor, who kept the large view in check; Marie McKinley, Marketing Manager; Noreen Regina, Editorial Assistant, who attended to the many details involved in publishing this book, including keeping the review team on schedule (no small task); Heather Fox, Publicist; Dan Scherf, Media Developer; Sandra Schroeder, Design Manager; Chuti Prasertsith, Cover Designer; and everyone else who worked behind the scenes to make this book come into being. I am also indebted to Denis Howe, Editor of The Free On-line Dictionary of Computing (FOLDOC). Denis has graciously permitted me to use entries from his compilation. Be sure to look at this dictionary (www.foldoc.org). A big “thank you” to the folks who read through the drafts of the book and made comments that caused me to refocus parts of the book where things were not clear or were left out altogether: David Chisnall, Swansea University; Scott Mann, Aztek Networks; Matthew Miller, Senior Systems Analyst/Administrator, BU Linux Project, Boston University Office of Information Technology; George xliv Preface Vish II, Senior Education Consultant, Hewlett-Packard; Thomas Achtemichuk, Mansueto Ventures; John Dong, Ubuntu Forum Council Member/Backports Team Leader; Scott James Remnant, Ubuntu Development Manager and Desktop Team Leader; Daniel R. Arfsten, Pro/Engineer Drafter/Designer; Chris Cooper, Senior Education Consultant, Hewlett-Packard Education Services; Sameer Verma, Associate Professor of Information Systems, San Francisco State University; Valerie Chau, Palomar College and Programmers Guild; James Kratzer; Sean McAllister; Nathan Eckenrode, New York Ubuntu Local Community Team; Christer Edwards; Nicolas Merline; and Michael Price. Thanks also to the following people who helped with my previous Linux books, which provided a foundation for this book: Chris Karr, Northwestern University; Jesse Keating, Fedora Project; Carsten Pfeiffer, Software Engineer and KDE Developer; Aaron Weber, Ximian; Cristof Falk, Software Developer at CritterDesign; Steve Elgersma, Computer Science Department, Princeton University; Scott Dier, University of Minnesota; Robert Haskins, Computer Net Works; Lars Kellogg- Stedman, Harvard University; Jim A. Lola, Principal Systems Consultant, Privateer Systems; Eric S. Raymond, Cofounder, Open Source Initiative; Scott Mann; Randall Lechlitner, Independent Computer Consultant; Jason Wertz, Computer Science Instructor, Montgomery County Community College; Justin Howell, Solano Community College; Ed Sawicki, The Accelerated Learning Center; David Mercer; Jeffrey Bianchine, Advocate, Author, Journalist; John Kennedy; and Jim Dennis, Starshine Technical Services. Thanks also to Dustin Puryear, Puryear Information Technology; Gabor Liptak, Independent Consultant; Bart Schaefer, Chief Technical Officer, iPost; Michael J. Jordan, Web Developer, Linux Online; Steven Gibson, Owner, SuperAnt.com; John Viega, Founder and Chief Scientist, Secure Software; K. Rachael Treu, Internet Security Analyst, Global Crossing; Kara Pritchard, K & S Pritchard Enterprises; Glen Wiley, Capital One Finances; Karel Baloun, Senior Software Engineer, Looksmart; Matthew Whitworth; Dameon D. Welch-Abernathy, Nokia Systems; Josh Simon, Consultant; Stan Isaacs; and Dr. Eric H. Herrin II, Vice President, Herrin Software Development. And thanks to Doug Hughes, long-time system designer and administrator, who gave me a big hand with the sections on system administration, networks, the Internet, and programming. More thanks go to consultants Lorraine Callahan and Steve Wampler; Ronald Hiller, Graburn Technology; Charles A. Plater, Wayne State University; Bob Palowoda; Tom Bialaski, Sun Microsystems; Roger Hartmuller, TIS Labs at Network Associates; Kaowen Liu; Andy Spitzer; Rik Schneider; Jesse St. Laurent; Steve Bellenot; Ray W. Hiltbrand; Jennifer Witham; Gert-Jan Hagenaars; and Casper Dik. A Practical Guide to Ubuntu Linux® is based in part on two of my previous UNIX books: UNIX System V: A Practical Guide and A Practical Guide to the UNIX System. Many people helped me with those books, and thanks here go to Pat Parseghian; Dr. Kathleen Hemenway; Brian LaRose; Byron A. Jeff, Clark Atlanta University; Charles Stross; Jeff Gitlin, Lucent Technologies; Kurt Hockenbury; Maury Bach, Intel Thanks xlv Israel; Peter H. Salus; Rahul Dave, University of Pennsylvania; Sean Walton, Intelligent Algorithmic Solutions; Tim Segall, Computer Sciences Corporation; Behrouz Forouzan, DeAnza College; Mike Keenan, Virginia Polytechnic Institute and State University; Mike Johnson, Oregon State University; Jandelyn Plane, University of Maryland; Arnold Robbins and Sathis Menon, Georgia Institute of Technology; Cliff Shaffer, Virginia Polytechnic Institute and State University; and Steven Stepanek, California State University, Northridge, for reviewing the book. I continue to be grateful to the many people who helped with the early editions of my UNIX books. Special thanks are due to Roger Sippl, Laura King, and Roy Harrington for introducing me to the UNIX system. My mother, Dr. Helen Sobell, provided invaluable comments on the original manuscript at several junctures. Also, thanks go to Isaac Rabinovitch, Professor Raphael Finkel, Professor Randolph Bentson, Bob Greenberg, Professor Udo Pooch, Judy Ross, Dr. Robert Veroff, Dr. Mike Denny, Joe DiMartino, Dr. John Mashey, Diane Schulz, Robert Jung, Charles Whitaker, Don Cragun, Brian Dougherty, Dr. Robert Fish, Guy Harris, Ping Liao, Gary Lindgren, Dr. Jarrett Rosenberg, Dr. Peter Smith, Bill Weber, Mike Bianchi, Scooter Morris, Clarke Echols, Oliver Grillmeyer, Dr. David Korn, Dr. Scott Weikart, and Dr. Richard Curtis. Finally, thanks to Peter and his family for providing nourishment and a very comfortable place to work. I spent many hours reading the manuscript at JumpStart, Peter’s neighborhood coffee and sandwich shop. If you are in the neighborhood (24th & Guerrero in San Francisco), stop by and say “Hi.” I take responsibility for any errors and omissions in this book. If you find one or just have a comment, let me know (mgs@sobell.com) and I will fix it in the next printing. My home page (www.sobell.com) contains a list of errors and credits those who found them. It also offers copies of the longer scripts from the book and pointers to interesting Linux pages on the Internet. Mark G. Sobell San Francisco, California ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.