Acknowledgments |
|
xxvii | |
Introduction |
|
xxix | |
|
Chapter 1 Introduction to Linux |
|
|
1 | (16) |
|
The Role and Function of Linux |
|
|
2 | (2) |
|
The Historical Development of Linux |
|
|
4 | (2) |
|
|
6 | (2) |
|
|
8 | (3) |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
|
11 | (6) |
|
|
11 | (1) |
|
|
12 | (3) |
|
|
15 | (2) |
|
Chapter 2 Working with the Linux Shell |
|
|
17 | (54) |
|
How the Linux Shell Works |
|
|
18 | (6) |
|
|
19 | (2) |
|
Managing Shell Configuration Files |
|
|
21 | (3) |
|
|
24 | (7) |
|
Entering Commands at the Shell Prompt |
|
|
24 | (4) |
|
|
28 | (2) |
|
|
30 | (1) |
|
Getting Help for Linux Commands |
|
|
31 | (11) |
|
|
33 | (6) |
|
|
39 | (3) |
|
Working with Environment Variables |
|
|
42 | (8) |
|
What Are Environment Variables? |
|
|
42 | (1) |
|
Managing Environment Variables |
|
|
43 | (6) |
|
Creating a User-Defined Variable |
|
|
49 | (1) |
|
|
50 | (2) |
|
Using Redirection and Piping |
|
|
52 | (6) |
|
Standard bash File Descriptors |
|
|
52 | (1) |
|
Redirecting Output and Input for Shell Commands |
|
|
53 | (3) |
|
|
56 | (2) |
|
|
58 | (13) |
|
|
60 | (2) |
|
|
62 | (7) |
|
|
69 | (2) |
|
Chapter 3 Using the vi Text Editor |
|
|
71 | (20) |
|
The Role and Function of the vi Text Editor |
|
|
72 | (3) |
|
|
75 | (8) |
|
|
76 | (1) |
|
|
77 | (2) |
|
|
79 | (1) |
|
Working in Command-Line Mode |
|
|
79 | (1) |
|
|
80 | (3) |
|
|
83 | (8) |
|
|
85 | (1) |
|
|
86 | (3) |
|
|
89 | (2) |
|
Chapter 4 Managing Linux Files and Directories |
|
|
91 | (36) |
|
Linux File Systems and the Filesystem Hierarchy Standard (FHS) |
|
|
92 | (9) |
|
The Role of the Linux File System |
|
|
92 | (1) |
|
The Hierarchical Structure of the Linux File System |
|
|
92 | (7) |
|
Types of Files Used by Linux |
|
|
99 | (2) |
|
Finding Files in the Linux File System |
|
|
101 | (5) |
|
|
101 | (1) |
|
|
102 | (2) |
|
|
104 | (1) |
|
|
104 | (1) |
|
|
104 | (2) |
|
Managing Directories from the Command Line |
|
|
106 | (6) |
|
Navigating the File System |
|
|
106 | (2) |
|
Viewing Directory Contents |
|
|
108 | (3) |
|
|
111 | (1) |
|
Copying, Moving, and Deleting Directories |
|
|
111 | (1) |
|
Managing Files from the Command Line |
|
|
112 | (4) |
|
|
112 | (1) |
|
|
113 | (1) |
|
|
114 | (1) |
|
|
115 | (1) |
|
Determining the File Type |
|
|
115 | (1) |
|
|
116 | (2) |
|
Finding Content Within Files |
|
|
118 | (3) |
|
|
121 | (6) |
|
|
122 | (2) |
|
|
124 | (2) |
|
|
126 | (1) |
|
Chapter 5 Installing Linux |
|
|
127 | (54) |
|
Designing a Linux Installation |
|
|
128 | (28) |
|
Conducting a Needs Assessment |
|
|
130 | (3) |
|
|
133 | (2) |
|
Verifying System Requirements and Hardware Compatibility |
|
|
135 | (4) |
|
|
139 | (7) |
|
Selecting Software Packages |
|
|
146 | (1) |
|
|
147 | (1) |
|
Gathering Network Information |
|
|
148 | (1) |
|
Selecting an Installation Source |
|
|
149 | (7) |
|
|
156 | (7) |
|
Configuring Locale Settings |
|
|
163 | (3) |
|
Configuring Time Zone Settings |
|
|
166 | (3) |
|
|
166 | (2) |
|
Configuring the Time Zone |
|
|
168 | (1) |
|
|
169 | (12) |
|
|
171 | (3) |
|
|
174 | (5) |
|
|
179 | (2) |
|
Chapter 6 Managing the Linux Boot Process |
|
|
181 | (48) |
|
|
181 | (6) |
|
|
183 | (1) |
|
|
184 | (1) |
|
|
185 | (2) |
|
Configuring the Bootloader |
|
|
187 | (16) |
|
|
188 | (4) |
|
|
192 | (11) |
|
|
203 | (14) |
|
|
203 | (3) |
|
Managing Runlevels and ink Scripts |
|
|
206 | (11) |
|
|
217 | (1) |
|
|
218 | (11) |
|
|
221 | (2) |
|
|
223 | (4) |
|
|
227 | (2) |
|
Chapter 7 Managing the Graphical Environment |
|
|
229 | (46) |
|
How the X Environment Works |
|
|
230 | (5) |
|
Configuring the X Environment |
|
|
235 | (13) |
|
|
235 | (10) |
|
Configuring an X Font Server |
|
|
245 | (3) |
|
Configuring a Display Manager |
|
|
248 | (5) |
|
Trying Out Desktop Environments |
|
|
248 | (1) |
|
Configuring a Display Manager |
|
|
249 | (4) |
|
Configuring Accessibility |
|
|
253 | (10) |
|
|
254 | (2) |
|
|
256 | (1) |
|
|
257 | (1) |
|
|
257 | (3) |
|
|
260 | (1) |
|
High-Contrast, Large-Text Themes |
|
|
261 | (2) |
|
|
263 | (12) |
|
|
266 | (4) |
|
|
270 | (3) |
|
|
273 | (2) |
|
Chapter 8 Managing Linux Software |
|
|
275 | (54) |
|
Managing Software with RPM |
|
|
276 | (22) |
|
Installing Software with RPM |
|
|
276 | (12) |
|
Managing Installed Software with RPM |
|
|
288 | (7) |
|
Using yum to Install RPM Packages |
|
|
295 | (3) |
|
Installing Software from Source Code |
|
|
298 | (6) |
|
Preparing the Installation Files |
|
|
299 | (2) |
|
|
301 | (1) |
|
Installing the Executable |
|
|
302 | (1) |
|
Uninstalling Software Compiled from Source Code |
|
|
303 | (1) |
|
Managing Debian Software Packages |
|
|
304 | (9) |
|
|
305 | (1) |
|
Installing Packages with dpkg |
|
|
305 | (3) |
|
Viewing Package Information with apt-cache |
|
|
308 | (2) |
|
Installing Packages with apt-get |
|
|
310 | (2) |
|
|
312 | (1) |
|
Managing Shared Libraries |
|
|
313 | (5) |
|
How Shared Libraries Work |
|
|
314 | (1) |
|
Managing Shared Library Dependencies |
|
|
315 | (3) |
|
|
318 | (11) |
|
|
320 | (2) |
|
|
322 | (5) |
|
|
327 | (2) |
|
Chapter 9 Managing Linux Users and Groups |
|
|
329 | (28) |
|
Understanding Linux Users and Groups |
|
|
331 | (19) |
|
|
332 | (15) |
|
|
347 | (3) |
|
|
350 | (2) |
|
|
352 | (5) |
|
|
353 | (2) |
|
|
355 | (2) |
|
Chapter 10 Managing Linux File Systems |
|
|
357 | (46) |
|
|
357 | (24) |
|
Using fdisk to Manage Disk Partitions |
|
|
358 | (5) |
|
Building a File System with mkfs |
|
|
363 | (4) |
|
|
367 | (1) |
|
Mounting a Partition with mount |
|
|
368 | (3) |
|
Maintaining Linux File Systems |
|
|
371 | (10) |
|
|
381 | (3) |
|
|
381 | (1) |
|
Working with Optical Devices |
|
|
382 | (1) |
|
Working with USB and FireWire Devices |
|
|
383 | (1) |
|
|
384 | (10) |
|
Selecting a Backup Medium |
|
|
385 | (1) |
|
Selecting a Backup Strategy |
|
|
386 | (3) |
|
Using Linux Backup Utilities |
|
|
389 | (5) |
|
|
394 | (9) |
|
|
396 | (2) |
|
|
398 | (3) |
|
|
401 | (2) |
|
Chapter 11 Managing Ownership, Permissions, and Quotas |
|
|
403 | (26) |
|
|
403 | (4) |
|
|
403 | (1) |
|
Managing Ownership from the Command Line |
|
|
404 | (3) |
|
Managing File and Directory Permissions |
|
|
407 | (10) |
|
|
407 | (2) |
|
Managing Permissions from the Command Line with chmod |
|
|
409 | (4) |
|
Working with Default Permissions |
|
|
413 | (2) |
|
Working with Special Permissions |
|
|
415 | (2) |
|
|
417 | (5) |
|
|
422 | (7) |
|
|
424 | (1) |
|
|
425 | (2) |
|
|
427 | (2) |
|
Chapter 12 Managing Hardware Under Linux |
|
|
429 | (46) |
|
|
429 | (22) |
|
Identifying Mass Storage Devices |
|
|
430 | (11) |
|
Working with Removable Hardware Interfaces |
|
|
441 | (3) |
|
Managing System Resources |
|
|
444 | (5) |
|
Managing Integrated Devices |
|
|
449 | (2) |
|
Managing Systems Without External Peripherals |
|
|
451 | (1) |
|
Working with Linux Drivers |
|
|
451 | (12) |
|
What Exactly Is a Driver Anyway? |
|
|
452 | (2) |
|
How Drivers Are Implemented Under Linux |
|
|
454 | (1) |
|
|
455 | (7) |
|
Working with Hotplug and Coldplug Devices |
|
|
462 | (1) |
|
|
463 | (12) |
|
|
466 | (3) |
|
|
469 | (4) |
|
|
473 | (2) |
|
Chapter 13 Managing Linux Processes |
|
|
475 | (42) |
|
How Linux Handles Processes |
|
|
475 | (7) |
|
What Exactly Is a Process? |
|
|
476 | (2) |
|
The Heredity of Linux Processes |
|
|
478 | (4) |
|
Managing Running Processes |
|
|
482 | (16) |
|
Starting System Processes |
|
|
482 | (2) |
|
Viewing Running Processes |
|
|
484 | (5) |
|
|
489 | (2) |
|
Managing Foreground and Background Processes |
|
|
491 | (3) |
|
|
494 | (1) |
|
Keeping a Process Running After Logout |
|
|
495 | (3) |
|
|
498 | (8) |
|
|
498 | (3) |
|
|
501 | (5) |
|
|
506 | (11) |
|
|
509 | (3) |
|
|
512 | (3) |
|
|
515 | (2) |
|
Chapter 14 Writing Shell Scripts |
|
|
517 | (38) |
|
Working with Shell Scripts |
|
|
517 | (3) |
|
The Components of a Shell Script |
|
|
517 | (1) |
|
How Shell Scripts Are Executed |
|
|
518 | (2) |
|
|
520 | (3) |
|
Displaying Text on the Screen |
|
|
520 | (1) |
|
Adding Commands to a Script |
|
|
520 | (1) |
|
Reading Input from the User |
|
|
521 | (2) |
|
Using Control Structures in Scripts |
|
|
523 | (6) |
|
|
523 | (2) |
|
|
525 | (2) |
|
|
527 | (2) |
|
|
529 | (13) |
|
|
530 | (1) |
|
|
530 | (1) |
|
|
531 | (1) |
|
|
532 | (1) |
|
|
533 | (1) |
|
|
533 | (2) |
|
|
535 | (1) |
|
|
535 | (4) |
|
|
539 | (1) |
|
|
539 | (1) |
|
|
540 | (1) |
|
|
540 | (1) |
|
|
541 | (1) |
|
Using Command Substitution and Shell Functions |
|
|
542 | (2) |
|
Using Command Substitution |
|
|
542 | (1) |
|
|
543 | (1) |
|
|
544 | (11) |
|
|
548 | (1) |
|
|
549 | (4) |
|
|
553 | (2) |
|
Chapter 15 Managing Linux Network Settings |
|
|
555 | (46) |
|
|
556 | (12) |
|
|
557 | (4) |
|
|
561 | (3) |
|
How the Subnet Mask Works |
|
|
564 | (2) |
|
Specifying the DNS Server and Default Gateway Router Addresses |
|
|
566 | (2) |
|
Configuring Network Addressing Parameters |
|
|
568 | (13) |
|
Installing the Ethernet Board |
|
|
569 | (1) |
|
Configuring IP Parameters |
|
|
570 | (6) |
|
Configuring Routing Parameters |
|
|
576 | (2) |
|
Configuring Name Resolver Settings |
|
|
578 | (3) |
|
Troubleshooting Network Problems |
|
|
581 | (8) |
|
Using a Standardized Troubleshooting Model |
|
|
581 | (2) |
|
|
583 | (2) |
|
|
585 | (1) |
|
|
585 | (2) |
|
Using Name Resolution Tools |
|
|
587 | (1) |
|
|
588 | (1) |
|
|
589 | (12) |
|
|
592 | (2) |
|
|
594 | (4) |
|
|
598 | (3) |
|
Chapter 16 Managing Network Services on Linux |
|
|
601 | (50) |
|
Configuring Printing with CUPS |
|
|
602 | (14) |
|
|
602 | (2) |
|
|
604 | (1) |
|
|
605 | (8) |
|
Using the Line Printer Daemon (lpd) |
|
|
613 | (1) |
|
Troubleshooting Printing Issues |
|
|
613 | (3) |
|
|
616 | (9) |
|
Setting the Hardware Clock with hwclock |
|
|
617 | (1) |
|
Synchronizing Time with netdate |
|
|
618 | (1) |
|
Synchronizing Time with NTP |
|
|
618 | (7) |
|
|
625 | (7) |
|
|
625 | (4) |
|
Using MTA Management Commands on Linux |
|
|
629 | (3) |
|
|
632 | (6) |
|
|
632 | (1) |
|
|
633 | (2) |
|
Managing Data in the SQL Server |
|
|
635 | (3) |
|
|
638 | (13) |
|
|
642 | (4) |
|
|
646 | (3) |
|
|
649 | (2) |
|
Chapter 17 Securing Linux |
|
|
651 | (58) |
|
|
651 | (4) |
|
Securing the Physical Environment |
|
|
651 | (2) |
|
Securing Access to the Operating System |
|
|
653 | (2) |
|
|
655 | (13) |
|
|
655 | (4) |
|
Implementing a Strong Password Policy |
|
|
659 | (2) |
|
|
661 | (2) |
|
|
663 | (2) |
|
|
665 | (3) |
|
Defending Against Network Attacks |
|
|
668 | (11) |
|
Mitigating Network Vulnerabilities |
|
|
668 | (4) |
|
Implementing a Firewall with iptables |
|
|
672 | (7) |
|
|
679 | (9) |
|
|
679 | (5) |
|
Using Log Files to Troubleshoot Problems |
|
|
684 | (2) |
|
Using Log Files to Detect Intruders |
|
|
686 | (2) |
|
Configuring xinetd and inetd |
|
|
688 | (7) |
|
|
689 | (3) |
|
|
692 | (3) |
|
|
695 | (14) |
|
|
700 | (4) |
|
|
704 | (3) |
|
|
707 | (2) |
|
Chapter 18 Using Encryption |
|
|
709 | (42) |
|
|
710 | (5) |
|
|
711 | (1) |
|
|
712 | (3) |
|
Encrypting Remote Access with OpenSSH |
|
|
715 | (15) |
|
|
715 | (2) |
|
|
717 | (4) |
|
Tunneling Traffic Through SSH |
|
|
721 | (5) |
|
Configuring SSH to Use Public Key Authentication |
|
|
726 | (4) |
|
|
730 | (7) |
|
|
730 | (1) |
|
Using GPG to Encrypt Files |
|
|
731 | (6) |
|
|
737 | (14) |
|
|
742 | (3) |
|
|
745 | (3) |
|
|
748 | (3) |
|
Appendix A Exam Objective Reference |
|
|
751 | (18) |
|
|
751 | (9) |
|
|
760 | (9) |
|
|
769 | (4) |
|
|
769 | (1) |
|
Accessing the MasterExam Practice |
|
|
|
|
769 | (1) |
|
Installing and Running MasterExam |
|
|
770 | (1) |
|
|
770 | (1) |
|
|
771 | (1) |
|
|
771 | (1) |
|
|
771 | (1) |
|
|
771 | (1) |
|
|
771 | (2) |
|
LearnKey Technical Support |
|
|
771 | (2) |
Index |
|
773 | |