| |
| |
Preface | |
| |
| |
| |
Introduction to the Operating System Environment | |
| |
| |
Understanding Operating Systems | |
| |
| |
Defining the Unix and Linux Operating Systems | |
| |
| |
Multiuser Capability | |
| |
| |
Portability | |
| |
| |
Multitasking | |
| |
| |
Ability to Use Multiple Processors | |
| |
| |
Multiple Modes of Operation | |
| |
| |
Text Mode | |
| |
| |
Understanding Classifications of Software | |
| |
| |
System Software | |
| |
| |
Application Software | |
| |
| |
Understanding Data | |
| |
| |
Understanding User Roles | |
| |
| |
Standard Users | |
| |
| |
System Administrator | |
| |
| |
Shell Programmer | |
| |
| |
Understanding Basic Linux Commands | |
| |
| |
Logging In and Logging Out | |
| |
| |
The cal Command | |
| |
| |
The cat Command | |
| |
| |
The date Command | |
| |
| |
The echo Command | |
| |
| |
The history Command | |
| |
| |
The lpr Command | |
| |
| |
The man Command | |
| |
| |
The touch Command | |
| |
| |
The who Command | |
| |
| |
Creating Shell Scripts | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Understanding the Linux File System | |
| |
| |
Understanding the Linux Tree Hierarchy | |
| |
| |
Storage | |
| |
| |
Quick Access | |
| |
| |
The "Garden Store Tree" Analogy | |
| |
| |
Linux System Directories | |
| |
| |
Navigating the Tree Hierarchy | |
| |
| |
Changing Directory Locations | |
| |
| |
Understanding Directory Management Commands | |
| |
| |
The pwd Command | |
| |
| |
The 1s Command | |
| |
| |
The mkdir and rmdir Commands | |
| |
| |
Using Editing Commands | |
| |
| |
The vi Program | |
| |
| |
Understanding File Management Commands | |
| |
| |
The cp Command | |
| |
| |
The mv Command | |
| |
| |
The sort Command | |
| |
| |
The cut Command | |
| |
| |
The paste Command | |
| |
| |
The rm Command | |
| |
| |
The uniq Command | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Shell Basics | |
| |
| |
Understanding the Shell Login and Logout Files | |
| |
| |
The /etc/profile Script File | |
| |
| |
The */.bash_profile Script File | |
| |
| |
The */.bash_logout Script File | |
| |
| |
Learning about Shell Variables | |
| |
| |
Becoming Familiar with the Shell Environment | |
| |
| |
The File System Hierarchy Standard | |
| |
| |
Learning about Shell Builtin Commands | |
| |
| |
Learning about Shell Grammar | |
| |
| |
Understanding Command Types | |
| |
| |
Simple Commands | |
| |
| |
Pipelines | |
| |
| |
List | |
| |
| |
Compound Commands | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
The Shell Environment | |
| |
| |
Understanding Redirection | |
| |
| |
Redirecting Standard Input | |
| |
| |
Redirecting Standard Output | |
| |
| |
Redirecting Standard Error | |
| |
| |
Understanding Pattern Matching | |
| |
| |
Matching Any Character | |
| |
| |
Match a Single Character | |
| |
| |
Match Any One of Several Characters | |
| |
| |
Understanding the Use of Quoting | |
| |
| |
A Backslash (/) | |
| |
| |
A Single Quote (') | |
| |
| |
A Double Quote (") | |
| |
| |
Understanding Expansion | |
| |
| |
Tilde Expansion | |
| |
| |
Parameter (or Variable) Expansion | |
| |
| |
Command Substitution | |
| |
| |
Learning Additional Commands | |
| |
| |
The find Command | |
| |
| |
The tr Command | |
| |
| |
The tee Command | |
| |
| |
The mail Command | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Shell Script Programming Concepts | |
| |
| |
Understanding the Sequential Flow of Shell Scripting | |
| |
| |
Managing Shell Scripts | |
| |
| |
Modification of the File Access Permission of a Shell Script | |
| |
| |
Placement of Shell Scripts | |
| |
| |
Understanding the Basic Components of a Shell Script | |
| |
| |
Specifying the Command Interpreter | |
| |
| |
Comments | |
| |
| |
Variables | |
| |
| |
Understanding Parameters | |
| |
| |
Positional Parameters | |
| |
| |
Special Parameters | |
| |
| |
Creating Interactive Scripts | |
| |
| |
Understanding Debugging | |
| |
| |
Using echo | |
| |
| |
Using set | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Decision Structures | |
| |
| |
Understanding Decision-Structure Theory | |
| |
| |
Flowcharts and Decision Making | |
| |
| |
Understanding the else Decision Structure | |
| |
| |
Understanding if Statements | |
| |
| |
Using Conditional Expressions in an if Statement | |
| |
| |
Using Logical Operators | |
| |
| |
Using the elif Clause in an if Statement | |
| |
| |
Nesting if Statements | |
| |
| |
Understanding the case Statement | |
| |
| |
Pseudologic of the case Statement | |
| |
| |
Syntax for the case Statement | |
| |
| |
Pattern matching and the case Statement | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Looping Structures | |
| |
| |
Understanding Loop Theory | |
| |
| |
An Infinite Loop | |
| |
| |
Understanding the while Statement | |
| |
| |
The while Statement Syntax | |
| |
| |
Using the while Statement | |
| |
| |
The while Statement and Command Exit Status | |
| |
| |
Terminating a Loop | |
| |
| |
Nesting while Loops | |
| |
| |
Understanding the until Statement | |
| |
| |
The until Statement Syntax | |
| |
| |
Using the until Statement with Logical Operations | |
| |
| |
Understanding the for Statement | |
| |
| |
The for Statement Syntax | |
| |
| |
Nesting for Statements | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Functions and Arrays | |
| |
| |
Understanding Functions | |
| |
| |
Function Reusability | |
| |
| |
Functions Reduce Redundancy | |
| |
| |
Modularization | |
| |
| |
Understanding Function Parts | |
| |
| |
Implementing Functions | |
| |
| |
Functions Calling Functions | |
| |
| |
Avoiding Syntax Errors | |
| |
| |
Passing Values to Functions | |
| |
| |
Function Scope | |
| |
| |
Understanding the Return Status of a Function | |
| |
| |
Exporting Functions | |
| |
| |
Implementing a Function Library | |
| |
| |
Unsetting a Function | |
| |
| |
Understanding Arrays | |
| |
| |
Declaring an Array and Assigning Array Values | |
| |
| |
Declaring an Array | |
| |
| |
Assigning Values to the Array | |
| |
| |
Accessing and Clearing Values in an Array | |
| |
| |
Importance of Using Braces | |
| |
| |
Arithmetic Operations and Variable Name Substitution | |
| |
| |
Creating Records Using Arrays | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Advanced Shell Programming | |
| |
| |
Implementing a Bubble Sort | |
| |
| |
Implementing a Shell Sort | |
| |
| |
Comparing the Bubble Sort and Shell Sort | |
| |
| |
Implementing Sequential Search Techniques | |
| |
| |
Implementing Binary Search Techniques | |
| |
| |
Understanding the Here Document | |
| |
| |
Understanding File Access | |
| |
| |
Opening the File | |
| |
| |
Process the Data--Reading Records from a File | |
| |
| |
Process the Data--Writing Records to a File | |
| |
| |
Closing the File | |
| |
| |
Combining Opening, Processing, and Closing a File in a Script | |
| |
| |
Using Loops to Read in Data | |
| |
| |
Validate Data | |
| |
| |
Testing for an Empty Variable | |
| |
| |
Testing for Length | |
| |
| |
Testing for Numeric Values | |
| |
| |
Range Checks | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Incorporating Additional Techniques and Tools | |
| |
| |
Using the Arbitrary Precision Calculator to Perform Arithmetic Operations | |
| |
| |
Running bc Interactively | |
| |
| |
Running bc in a Script | |
| |
| |
Running bc in a Pipeline Command | |
| |
| |
Searching for Text Using the grep Command | |
| |
| |
Understanding the Stream Editor | |
| |
| |
Using sed Options | |
| |
| |
Understanding sed Commands | |
| |
| |
The Print Command | |
| |
| |
The Delete Command | |
| |
| |
The Substitute Command | |
| |
| |
The Append Command | |
| |
| |
The Insert Command | |
| |
| |
Creating sed Scripts | |
| |
| |
Using sed Commands in Shell Scripts | |
| |
| |
Using sed to Modify Command Output | |
| |
| |
Understanding Signals | |
| |
| |
The kill Command | |
| |
| |
The trap Command | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Advanced Techniques and Tools | |
| |
| |
Understanding the awk Pattern-scanning and Processing Language Program | |
| |
| |
Learning About awk Program Execution and Command Structure | |
| |
| |
Patterns | |
| |
| |
Actions | |
| |
| |
Getting Data into the awk Program | |
| |
| |
Passing Data at the Command Line | |
| |
| |
Prompting for User Input of Data | |
| |
| |
Using awk Scripts | |
| |
| |
Creating System Administration Utilities Using awk | |
| |
| |
Working with the dialog Command | |
| |
| |
The Menu Dialog Box | |
| |
| |
Implementing Multiple Dialog Boxes Within a Script | |
| |
| |
The File Selection, Text Box, and Message Dialog Boxes | |
| |
| |
Using the Checklist, Msg, and Calendar Dialog Boxes | |
| |
| |
Creating a Simple Application | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Script Design and Management Issues | |
| |
| |
Designing and Creating Web Page Scripts | |
| |
| |
Preserving Preformatted Output in a Web Page | |
| |
| |
Customizing Web Page Scripts with Additional HTML Tags | |
| |
| |
Adding Web Server Variables to a Web Page Script | |
| |
| |
Using Other Commands in Web Page Scripts | |
| |
| |
Understanding MySQL | |
| |
| |
Selecting Data | |
| |
| |
Inserting Data | |
| |
| |
Deleting Data | |
| |
| |
Updating Data | |
| |
| |
Setting Access to MySQL | |
| |
| |
Creating MySQL Databases and Tables | |
| |
| |
Creating Scripts that Interface with MySQL | |
| |
| |
Creating a Script to Insert Data | |
| |
| |
Creating a Script to Select Data | |
| |
| |
Creating a Script to Delete Data | |
| |
| |
Creating a Script to Update Columns in a Row | |
| |
| |
Enhancing Menu-based Scripts | |
| |
| |
Creating Menus with the select Command | |
| |
| |
Customizing with the tput Command | |
| |
| |
Understanding the Revision Control System | |
| |
| |
Adding a Script as a Launchable Application from the GUI Desktop | |
| |
| |
Understanding Additional Management Techniques | |
| |
| |
Back up and Restore | |
| |
| |
Compression and Uncompression | |
| |
| |
Creating Custom Manual Pages | |
| |
| |
Chapter Summary | |
| |
| |
Review Questions | |
| |
| |
Hands-on Projects | |
| |
| |
Case Projects | |
| |
| |
| |
Guide to Linux Commands | |
| |
| |
Index | |