Linux Shell Scripting with Bash (Paperback)
內容描述
With the proliferation of Linux as both a server and desktop operating
system, users are looking for more advanced methods of getting up and running
quickly and efficiently solving problems. The most powerful way of achieving
this is to employ the command line interface known as the shell. Bash, the
Bourne Again Shell, is the most popular Linux shell today.
Linux Shell Scripting with Bash emphasizes professional scripting
solutions through the use of structured programming and standard Linux
development tools. The book focuses on the Linux environment and the robust tool
set therein. Because the shell relies on the operating system for its
functionality this is the ideal methodology to learn shell scripting and sets
the book apart from general scripting titles. Promoting good programming
practices with real-world scripts, which are readable, extendable, and easy to
debug, this book will be an essential asset to any Linux user.
Table of Contents
- The Linux Environment.
The Origin of Linux. Files and File Systems.
Directories. Inodes and Links. Pipe and Socket Files. Device Files.
- Operating the Shell.
Bash Keywords. Command Basics. Command-Line
Editing. Variable Assignments and Displaying Messages. Multiple Commands.
Command History. Directory Commands. Specialized Navigation and History. The
Colon Command. Reference Section. 3. Files, Users, and Shell
Customization.
Listing Files. printf Command. Getting Help.
Fixing the Display. Working with Files. Working with People. Shell Aliases. The
Bash Hash Table. Customizing Your Prompt. Long Command Lines. Customizing
Command-Line Editing. Your Session Profile. Reference Section. 4.
Script Basics.
Creating a Script. Creating a Well-Behaved
Script. The Header. Global Declarations. Sanity Checks. The Main Script.
Cleanup. Stopping a Script. Reading Keyboard Input. Basic Redirection. Standard
Output, Error, and Input. Built-In Versus Linux Commands. The Set and Shopt
Commands. Reference Section.
- Variables.
Variable Basics. Predefined Variables. The
Effect of Quotations. Variable Attributes. Arrays. Exporting Variables and the
Linux Environment. The eval Command. story.bash: A Story Generator. Reference
Section.
- Expressions.
Expansions. The Basic if Command. File
Expressions. Multiple Tests. Strings. Arithmetic Expressions. Logical
Expressions. Relational Operations. Bitwise Operations. Self-Referential
Operations. Other let Features. temperature.bash: Converting Fahrenheit to
Celsius. Arithmetic Tests. Pattern Recognition. Globbing Options. Filename Brace
Expansion ( {..} ). Dollar Sign Substitutions. Arithmetic Expression
Substitution ( ((..)) ). mixer.bash: HTML Color Mixer. Reference Section.
- Compound Commands.
Command Status Codes. if Command. case Command.
while Loop. until Loop. for Loops. Embedded let ( ((..)) ). Grouping Commands (
{..} ). report.bash: Report Formatter. 8. Debugging and Version
Control.
Shell Debugging Features. Debug Traps. Version
Control (CVS). Creating Transcripts. Watching Running Scripts. Timing Execution
with Time. Creating Man Pages. Source Code Patches. Shell Archives. Reference
Section. 9. Parameters and Subshells.
Positional Parameters. The getopts Command. The
getopt Command. Subshells. Reference Section. 10. Job Control and
Signals.
Job Control. Signals. The suspend Command.
Traps. Exit Handlers. The killall Command. Being Nice. Process Status. Reference
Section. 11. Text File Basics.
Working with Pathnames. File Truncation.
Identifying Files. Creating and Deleting Files. Moving and Copying Files. More
Information about Files. Transferring Files between Accounts (wget).
Transferring Files with FTP. Transferring Files with Secure FTP (sftp).
Verifying Files. Splitting Large Files. Tabs and Spaces. Temporary Files. Lock
Files. Named Pipes. Process Substitution. Opening Files. Using head and tail.
File Statistics. Cutting. Pasting. Columns. Folding. Joining. Merging. Reference
Section. 12. Text File Processing.
Finding Lines. Locating Files. Finding Files.
Sorting. Character Editing (tr). File Editing (sed). Compressing Files.
Reference Section. 13. Console Scripting.
The Linux Console. The Console Keyboard. The
Console Display. tput. select Menus. Custom Menus. Reference Section.
- Functions and Script Execution.
Running Scripts. The Linux Execution
Environment. The Source Command (.). Switching Scripts with exec. Writing
Recurring Scripts. Writing Continually Executing Scripts. Shell Functions. Local
Variables. Recursion and Nested Functions. Function Attributes. Reference
Section. 15. Shell Security.
The Basic Linux Security Model. Knowing Who You
Are (id). Transferring Ownership (chown/chgrp). Changing Access Rights (chmod).
Default Access Rights (umask). setuid/setgid and Scripts. The chroot Command.
Resource Limits (ulimit). Restricted Shells. Secure File Deletion (wipe).
Reference Section.
- Network Programming.
Sockets. Client-Server and Peer-to-Peer. Network
Clients. CGI Scripting. CGI Environment Variables. Processing Forms. Basic Web
Page Stripping (lynx). Reference Section. 17. Data Structures and
Databases.
Associative Arrays Using Bash Arrays. Hash
Tables Using Bash Arrays. Binary Trees Using Bash Arrays. Working with
PostgreSQL Databases (psql). Working with MySQL Databases. Reference Section.
- Final Topics.
The echo Command. More Uses for set. Date
Conversions. Completions. Locales. The du Command. Memory Usage. noclobber and
Forced Overwriting. The fc Command. ! Word Designators and Modifiers. Running
Scripts from C. Journey's End. Reference Section. Appendix A. A
Complete Example. Appendix B. Summary of Bash Built-In Commands.
Appendix C. Bash Options. Appendix D. Error Codes.
Appendix E. Signals. Appendix F. ASCII Table.
Glossary. Index.