Preface |
|
xxi | |
Acknowledgments |
|
xxiii | |
Introduction |
|
xxv | |
Chapter 1 An Introduction to Linux |
|
1 | (16) |
|
The Role of an Operating System |
|
|
2 | (1) |
|
|
3 | (1) |
|
|
4 | (1) |
|
|
4 | (3) |
|
|
5 | (1) |
|
Commonly Used Distributions |
|
|
5 | (1) |
|
The Life Cycle of a Linux Distribution |
|
|
6 | (1) |
|
Common Linux Implementations |
|
|
7 | (5) |
|
|
8 | (1) |
|
|
8 | (1) |
|
|
9 | (1) |
|
|
10 | (1) |
|
Linux and Cloud Computing |
|
|
11 | (1) |
|
|
12 | (1) |
|
|
12 | (5) |
|
|
12 | (1) |
|
|
13 | (2) |
|
|
15 | (2) |
Chapter 2 Working with the Linux Shell |
|
17 | (52) |
|
How the Linux Shell Works |
|
|
17 | (5) |
|
|
18 | (2) |
|
Managing Shell Configuration Files |
|
|
20 | (2) |
|
|
22 | (7) |
|
Entering Commands at the Shell Prompt |
|
|
23 | (4) |
|
|
27 | (1) |
|
|
28 | (1) |
|
Getting Help for Linux Shell Commands |
|
|
29 | (11) |
|
|
31 | (6) |
|
|
37 | (3) |
|
Working with Environment Variables |
|
|
40 | (7) |
|
What Are Environment Variables? |
|
|
40 | (1) |
|
Managing Environment Variables |
|
|
41 | (5) |
|
Creating a User-Defined Variable |
|
|
46 | (1) |
|
|
47 | (2) |
|
Using Redirection and Piping |
|
|
49 | (6) |
|
Standard bash File Descriptors |
|
|
50 | (1) |
|
Redirecting Output and Input for Shell Commands |
|
|
50 | (3) |
|
|
53 | (2) |
|
|
55 | (14) |
|
|
57 | (3) |
|
|
60 | (6) |
|
|
66 | (3) |
Chapter 3 Using the vi Text Editor |
|
69 | (18) |
|
The Role and Function of the vi Text Editor |
|
|
69 | (3) |
|
|
72 | (8) |
|
|
72 | (1) |
|
|
73 | (2) |
|
|
75 | (1) |
|
Working in Command-Line Mode |
|
|
75 | (2) |
|
|
77 | (3) |
|
|
80 | (7) |
|
|
82 | (1) |
|
|
83 | (3) |
|
|
86 | (1) |
Chapter 4 Managing Linux Files and Directories |
|
87 | (34) |
|
Understanding Linux File Systems and the Filesystem Hierarchy Standard (FHS) |
|
|
88 | (8) |
|
The Role of the Linux File System |
|
|
88 | (1) |
|
The Hierarchical Structure of the Linux File System |
|
|
88 | (6) |
|
Types of Files Used by Linux |
|
|
94 | (2) |
|
Finding Files in the Linux File System |
|
|
96 | (4) |
|
|
97 | (1) |
|
|
97 | (1) |
|
|
98 | (1) |
|
|
98 | (1) |
|
|
99 | (1) |
|
Managing Directories from the Command Line |
|
|
100 | (5) |
|
Navigating the File System |
|
|
100 | (2) |
|
Viewing Directory Contents |
|
|
102 | (2) |
|
|
104 | (1) |
|
Copying, Moving, and Deleting Directories |
|
|
105 | (1) |
|
Managing Files from the Command Line |
|
|
105 | (4) |
|
|
106 | (1) |
|
|
106 | (1) |
|
|
107 | (1) |
|
|
108 | (1) |
|
Determining the File Type |
|
|
108 | (1) |
|
|
109 | (2) |
|
Finding Content within Files |
|
|
111 | (3) |
|
|
114 | (7) |
|
|
115 | (1) |
|
|
116 | (2) |
|
|
118 | (3) |
Chapter 5 Installing Linux |
|
121 | (48) |
|
Designing a Linux Installation |
|
|
121 | (28) |
|
Conducting a Needs Assessment |
|
|
124 | (3) |
|
|
127 | (1) |
|
Verifying System Requirements and Hardware Compatibility |
|
|
128 | (4) |
|
|
132 | (6) |
|
Selecting Software Packages |
|
|
138 | (3) |
|
Identifying User Accounts |
|
|
141 | (1) |
|
Gathering Network Information |
|
|
141 | (2) |
|
Selecting an Installation Source |
|
|
143 | (6) |
|
|
149 | (1) |
|
Configuring Locale Settings |
|
|
150 | (4) |
|
Configuring Time Zone Settings |
|
|
154 | (3) |
|
|
154 | (1) |
|
Configuring the Time Zone |
|
|
155 | (2) |
|
|
157 | (12) |
|
|
158 | (3) |
|
|
161 | (5) |
|
|
166 | (3) |
Chapter 6 Managing the Linux Boot Process |
|
169 | (54) |
|
|
169 | (7) |
|
|
172 | (1) |
|
|
173 | (1) |
|
|
174 | (2) |
|
Configuring the Bootloader |
|
|
176 | (16) |
|
|
176 | (11) |
|
|
187 | (5) |
|
Managing Linux Runlevels with init |
|
|
192 | (14) |
|
|
192 | (4) |
|
Managing Runlevels and init Scripts |
|
|
196 | (10) |
|
Managing Linux Boot Targets |
|
|
206 | (3) |
|
|
206 | (2) |
|
|
208 | (1) |
|
|
209 | (2) |
|
|
211 | (12) |
|
|
214 | (3) |
|
|
217 | (3) |
|
|
220 | (3) |
Chapter 7 Managing the Graphical Environment |
|
223 | (40) |
|
How the X Environment Works |
|
|
224 | (4) |
|
Configuring the X Environment |
|
|
228 | (13) |
|
|
229 | (10) |
|
Configuring an X Font Server |
|
|
239 | (2) |
|
Configuring a Display Manager |
|
|
241 | (5) |
|
Trying Out Desktop Environments |
|
|
241 | (1) |
|
Managing a Display Manager |
|
|
242 | (4) |
|
Configuring Accessibility |
|
|
246 | (6) |
|
|
247 | (1) |
|
|
247 | (2) |
|
|
249 | (1) |
|
|
249 | (1) |
|
|
250 | (1) |
|
High-Contrast, Large-Text Desktop Themes |
|
|
251 | (1) |
|
|
252 | (11) |
|
|
255 | (4) |
|
|
259 | (2) |
|
|
261 | (2) |
Chapter 8 Managing Linux Software |
|
263 | (52) |
|
Managing Software with RPM |
|
|
263 | (21) |
|
Installing Software with RPM |
|
|
264 | (11) |
|
Managing Installed Software with RPM |
|
|
275 | (5) |
|
Using yum to Install RPM Packages |
|
|
280 | (4) |
|
Installing Software from Source Code |
|
|
284 | (6) |
|
Preparing the Installation Files |
|
|
285 | (2) |
|
|
287 | (1) |
|
Installing the Executable |
|
|
287 | (2) |
|
Uninstalling Software Compiled from Source Code |
|
|
289 | (1) |
|
Managing Debian Software Packages |
|
|
290 | (9) |
|
|
290 | (1) |
|
Installing Packages with dpkg |
|
|
291 | (2) |
|
Viewing Package Information with apt-cache |
|
|
293 | (2) |
|
Installing Packages with apt-get |
|
|
295 | (2) |
|
|
297 | (2) |
|
Managing Shared Libraries |
|
|
299 | (4) |
|
How Shared Libraries Work |
|
|
299 | (1) |
|
Managing Shared Library Dependencies |
|
|
300 | (3) |
|
|
303 | (12) |
|
|
305 | (2) |
|
|
307 | (5) |
|
|
312 | (3) |
Chapter 9 Managing Linux Users and Groups |
|
315 | (26) |
|
Understanding Linux Users and Groups |
|
|
317 | (17) |
|
|
318 | (13) |
|
|
331 | (3) |
|
|
334 | (7) |
|
|
336 | (1) |
|
|
337 | (2) |
|
|
339 | (2) |
Chapter 10 Managing Linux File Systems |
|
341 | (52) |
|
|
341 | (29) |
|
Managing Master Boot Record (MBR) Disk Partitions |
|
|
342 | (4) |
|
Managing Globally Unique Identifier (GUID) Partitions |
|
|
346 | (4) |
|
|
350 | (4) |
|
|
354 | (3) |
|
|
357 | (4) |
|
Maintaining Linux File Systems |
|
|
361 | (9) |
|
|
370 | (2) |
|
Working with Optical Devices |
|
|
370 | (1) |
|
Working with USB and Fire Wire Devices |
|
|
371 | (1) |
|
|
372 | (9) |
|
Selecting a Backup Medium |
|
|
372 | (2) |
|
Selecting a Backup Strategy |
|
|
374 | (2) |
|
Using Linux Backup Utilities |
|
|
376 | (5) |
|
|
381 | (12) |
|
|
383 | (3) |
|
|
386 | (4) |
|
|
390 | (3) |
Chapter 11 Managing Ownership, Permissions, and Quotas |
|
393 | (26) |
|
|
393 | (4) |
|
|
393 | (2) |
|
Managing Ownership from the Command Line |
|
|
395 | (2) |
|
Managing File and Directory Permissions |
|
|
397 | (10) |
|
|
397 | (2) |
|
Managing Permissions from the Command Line |
|
|
399 | (3) |
|
Working with Default Permissions |
|
|
402 | (2) |
|
Working with Special Permissions |
|
|
404 | (3) |
|
Administering Disk Quotas |
|
|
407 | (4) |
|
|
411 | (8) |
|
|
413 | (1) |
|
|
414 | (2) |
|
|
416 | (3) |
Chapter 12 Managing Hardware Under Linux |
|
419 | (40) |
|
|
419 | (17) |
|
Identifying Mass Storage Devices |
|
|
420 | (8) |
|
Working with Removable Hardware Interfaces |
|
|
428 | (2) |
|
Managing System Resources |
|
|
430 | (4) |
|
Managing Integrated Devices |
|
|
434 | (2) |
|
Managing Systems Without External Peripherals |
|
|
436 | (1) |
|
Working with Linux Drivers |
|
|
436 | (11) |
|
What Exactly Is a Driver, Anyway? |
|
|
437 | (1) |
|
How Drivers Are Implemented Under Linux |
|
|
437 | (2) |
|
|
439 | (7) |
|
Working with Hot-Plug and Cold-Plug Devices |
|
|
446 | (1) |
|
|
447 | (12) |
|
|
450 | (3) |
|
|
453 | (3) |
|
|
456 | (3) |
Chapter 13 Managing Linux Processes |
|
459 | (44) |
|
Understanding Linux Processes |
|
|
459 | (6) |
|
How Linux Processes Are Loaded |
|
|
462 | (3) |
|
|
465 | (19) |
|
Starting System Processes |
|
|
465 | (2) |
|
Viewing Running Processes |
|
|
467 | (7) |
|
|
474 | (2) |
|
Managing Foreground and Background Processes |
|
|
476 | (2) |
|
|
478 | (2) |
|
Keeping a Process Running After Logout |
|
|
480 | (4) |
|
|
484 | (8) |
|
|
484 | (2) |
|
|
486 | (5) |
|
|
491 | (1) |
|
|
492 | (11) |
|
|
495 | (3) |
|
|
498 | (4) |
|
|
502 | (1) |
Chapter 14 Writing Shell Scripts |
|
503 | (36) |
|
Working with Shell Scripts |
|
|
503 | (2) |
|
The Components of a Shell Script |
|
|
504 | (1) |
|
How Shell Scripts Are Executed |
|
|
504 | (1) |
|
|
505 | (3) |
|
Displaying Text on the Screen |
|
|
506 | (1) |
|
Adding Commands to a Script |
|
|
506 | (1) |
|
Reading Input from the User |
|
|
506 | (2) |
|
Using Control Structures in Scripts |
|
|
508 | (6) |
|
|
509 | (2) |
|
|
511 | (1) |
|
|
512 | (2) |
|
|
514 | (12) |
|
|
515 | (1) |
|
|
516 | (1) |
|
|
517 | (1) |
|
|
517 | (1) |
|
|
518 | (1) |
|
|
518 | (1) |
|
|
519 | (1) |
|
|
520 | (3) |
|
|
523 | (1) |
|
|
523 | (1) |
|
|
524 | (1) |
|
|
524 | (1) |
|
|
525 | (1) |
|
Using Command Substitution and Shell Functions |
|
|
526 | (3) |
|
Using Command Substitution |
|
|
526 | (1) |
|
|
527 | (2) |
|
|
529 | (10) |
|
|
532 | (2) |
|
|
534 | (3) |
|
|
537 | (2) |
Chapter 15 Managing Linux Network Settings |
|
539 | (54) |
|
Understanding IP Networks |
|
|
540 | (14) |
|
|
540 | (5) |
|
|
545 | (3) |
|
How IPv4 Subnet Masks Work |
|
|
548 | (3) |
|
Specifying the DNS Server and Default Gateway Router Addresses |
|
|
551 | (1) |
|
|
552 | (2) |
|
Configuring Network Addressing Parameters |
|
|
554 | (15) |
|
Installing the Ethernet Board |
|
|
555 | (1) |
|
Configuring IPv4 Parameters |
|
|
556 | (6) |
|
Configuring Routing Parameters |
|
|
562 | (3) |
|
Configuring Name Resolver Settings |
|
|
565 | (3) |
|
|
568 | (1) |
|
Troubleshooting Network Problems |
|
|
569 | (10) |
|
Using a Standardized Troubleshooting Model |
|
|
569 | (2) |
|
|
571 | (2) |
|
|
573 | (1) |
|
|
574 | (1) |
|
|
575 | (1) |
|
Using Name Resolution Tools |
|
|
576 | (1) |
|
|
576 | (1) |
|
|
577 | (2) |
|
|
579 | (14) |
|
|
582 | (3) |
|
|
585 | (5) |
|
|
590 | (3) |
Chapter 16 Managing Network Services on Linux |
|
593 | (50) |
|
Configuring Printing with CUPS |
|
|
594 | (14) |
|
|
594 | (2) |
|
|
596 | (1) |
|
|
597 | (8) |
|
Using the Line Printer Daemon (Ipd) |
|
|
605 | (1) |
|
Troubleshooting Printing Issues |
|
|
605 | (3) |
|
|
608 | (8) |
|
Setting the Hardware Clock with hwclock |
|
|
608 | (1) |
|
Synchronizing Time with netdate |
|
|
609 | (1) |
|
Synchronizing Time with NTP |
|
|
610 | (6) |
|
|
616 | (8) |
|
|
616 | (5) |
|
Using MTA Management Commands on Linux |
|
|
621 | (3) |
|
|
624 | (6) |
|
|
624 | (1) |
|
|
625 | (2) |
|
Managing Data in the SQL Server |
|
|
627 | (3) |
|
|
630 | (13) |
|
|
633 | (4) |
|
|
637 | (4) |
|
|
641 | (2) |
Chapter 17 Securing Linux |
|
643 | (60) |
|
|
643 | (4) |
|
Securing the Physical Environment |
|
|
643 | (2) |
|
Securing Access to the Operating System |
|
|
645 | (2) |
|
|
647 | (12) |
|
|
647 | (3) |
|
Implementing a Strong Password Policy |
|
|
650 | (3) |
|
|
653 | (3) |
|
|
656 | (1) |
|
|
657 | (2) |
|
Defending Against Network Attacks |
|
|
659 | (12) |
|
Mitigating Network Vulnerabilities |
|
|
660 | (5) |
|
Implementing a Firewall with iptables |
|
|
665 | (6) |
|
|
671 | (13) |
|
|
672 | (7) |
|
Using Log Files to Troubleshoot Problems |
|
|
679 | (2) |
|
Using Log Files to Detect Intruders |
|
|
681 | (3) |
|
Configuring xinetd and inetd |
|
|
684 | (5) |
|
|
684 | (3) |
|
|
687 | (2) |
|
|
689 | (14) |
|
|
694 | (4) |
|
|
698 | (3) |
|
|
701 | (2) |
Chapter 18 Using Encryption |
|
703 | (44) |
|
|
704 | (5) |
|
|
705 | (1) |
|
|
706 | (3) |
|
Encrypting Remote Access with OpenSSH |
|
|
709 | (14) |
|
|
709 | (1) |
|
|
710 | (5) |
|
Tunneling Traffic Through SSH |
|
|
715 | (4) |
|
Configuring SSH to Use Public Key Authentication |
|
|
719 | (4) |
|
|
723 | (11) |
|
|
724 | (1) |
|
Using GPG to Encrypt Files |
|
|
725 | (9) |
|
|
734 | (13) |
|
|
738 | (3) |
|
|
741 | (4) |
|
|
745 | (2) |
Appendix A Pre-Assessment Test |
|
747 | (20) |
|
|
747 | (1) |
|
|
747 | (10) |
|
|
757 | (1) |
|
In-Depth Answer Explanations |
|
|
758 | (7) |
|
|
765 | (2) |
|
Certification Exam 1 Objectives: LXO-103 |
|
|
766 | (1) |
|
Certification Exam 2 Objectives: LXO-104 |
|
|
766 | (1) |
Appendix B About the DVD |
|
767 | (6) |
|
|
767 | (1) |
|
Total Tester Premium Practice Exam Software |
|
|
767 | (1) |
|
Installing and Running Total Tester Premium Practice Exam Software |
|
|
768 | (1) |
|
|
768 | (1) |
|
|
768 | (3) |
|
Installing and Configuring the Virtual Machine |
|
|
768 | (3) |
|
|
771 | (1) |
|
|
771 | (1) |
|
|
771 | (2) |
|
Total Seminars Technical Support |
|
|
771 | (1) |
|
McGraw-Hill Education Content Support |
|
|
771 | (2) |
Index |
|
773 | |