Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Classic Shell Scripting
A Note Regarding Supplemental Files Foreword Preface
Intended Audience What You Should Already Know Chapter Summary Conventions Used in This Book Code Examples Unix Tools for Windows Systems
Cygwin DJGPP MKS Toolkit AT&T UWIN
Safari Enabled We'd Like to Hear from You Acknowledgments
1. Background
1.1. Unix History 1.2. Software Tools Principles 1.3. Summary
2. Getting Started
2.1. Scripting Languages Versus Compiled Languages 2.2. Why Use a Shell Script? 2.3. A Simple Script 2.4. Self-Contained Scripts: The #! First Line 2.5. Basic Shell Constructs
2.5.1. Commands and Arguments 2.5.2. Variables 2.5.3. Simple Output with echo 2.5.4. Fancier Output with printf 2.5.5. Basic I/O Redirection
2.5.5.1. Redirection and pipelines 2.5.5.2. Special files: /dev/null and /dev/tty
2.5.6. Basic Command Searching
2.6. Accessing Shell Script Arguments 2.7. Simple Execution Tracing 2.8. Internationalization and Localization 2.9. Summary
3. Searching and Substitutions
3.1. Searching for Text
3.1.1. Simple grep
3.2. Regular Expressions
3.2.1. What Is a Regular Expression?
3.2.1.1. POSIX bracket expressions
3.2.2. Basic Regular Expressions
3.2.2.1. Matching single characters 3.2.2.2. Backreferences 3.2.2.3. Matching multiple characters with one expression 3.2.2.4. Anchoring text matches 3.2.2.5. BRE operator precedence
3.2.3. Extended Regular Expressions
3.2.3.1. Matching single characters 3.2.3.2. Backreferences don't exist 3.2.3.3. Matching multiple regular expressions with one expression 3.2.3.4. Alternation 3.2.3.5. Grouping 3.2.3.6. Anchoring text matches 3.2.3.7. ERE operator precedence
3.2.4. Regular Expression Extensions 3.2.5. Which Programs Use Which Regular Expressions? 3.2.6. Making Substitutions in Text Files 3.2.7. Basic Usage
3.2.7.1. Substitution details
3.2.8. sed Operation
3.2.8.1. To print or not to print
3.2.9. Matching Specific Lines 3.2.10. How Much Text Gets Changed? 3.2.11. Lines Versus Strings
3.3. Working with Fields
3.3.1. Text File Conventions 3.3.2. Selecting Fields with cut 3.3.3. Joining Fields with join 3.3.4. Rearranging Fields with awk
3.3.4.1. Patterns and actions 3.3.4.2. Fields 3.3.4.3. Setting the field separators 3.3.4.4. Printing lines 3.3.4.5. Startup and cleanup actions
3.4. Summary
4. Text Processing Tools
4.1. Sorting Text
4.1.1. Sorting by Lines 4.1.2. Sorting by Fields 4.1.3. Sorting Text Blocks 4.1.4. Sort Efficiency 4.1.5. Sort Stability 4.1.6. Sort Wrap-Up
4.2. Removing Duplicates 4.3. Reformatting Paragraphs 4.4. Counting Lines, Words, and Characters 4.5. Printing
4.5.1. Evolution of Printing Technology 4.5.2. Other Printing Software
4.6. Extracting the First and Last Lines 4.7. Summary
5. Pipelines Can Do Amazing Things
5.1. Extracting Data from Structured Text Files 5.2. Structured Data for the Web 5.3. Cheating at Word Puzzles 5.4. Word Lists 5.5. Tag Lists 5.6. Summary
6. Variables, Making Decisions, and Repeating Actions
6.1. Variables and Arithmetic
6.1.1. Variable Assignment and the Environment 6.1.2. Parameter Expansion
6.1.2.1. Expansion operators 6.1.2.2. Positional parameters 6.1.2.3. Special variables
6.1.3. Arithmetic Expansion
6.2. Exit Statuses
6.2.1. Exit Status Values 6.2.2. if-elif-else-fi 6.2.3. Logical NOT, AND, and OR 6.2.4. The test Command
6.3. The case Statement 6.4. Looping
6.4.1. for Loops 6.4.2. while and until Loops 6.4.3. break and continue 6.4.4. shift and Option Processing
6.5. Functions 6.6. Summary
7. Input and Output, Files, and Command Evaluation
7.1. Standard Input, Output, and Error 7.2. Reading Lines with read 7.3. More About Redirections
7.3.1. Additional Redirection Operators 7.3.2. File Descriptor Manipulation
7.4. The Full Story on printf 7.5. Tilde Expansion and Wildcards
7.5.1. Tilde Expansion 7.5.2. Wildcarding
7.5.2.1. Hidden files
7.6. Command Substitution
7.6.1. Using sed for the head Command 7.6.2. Creating a Mailing List 7.6.3. Simple Math: expr
7.7. Quoting 7.8. Evaluation Order and eval
7.8.1. The eval Statement 7.8.2. Subshells and Code Blocks
7.9. Built-in Commands
7.9.1. The set Command
7.10. Summary
8. Production Scripts
8.1. Path Searching 8.2. Automating Software Builds 8.3. Summary
9. Enough awk to Be Dangerous
9.1. The awk Command Line 9.2. The awk Programming Model 9.3. Program Elements
9.3.1. Comments and Whitespace 9.3.2. Strings and String Expressions 9.3.3. Numbers and Numeric Expressions 9.3.4. Scalar Variables 9.3.5. Array Variables 9.3.6. Command-Line Arguments 9.3.7. Environment Variables
9.4. Records and Fields
9.4.1. Record Separators 9.4.2. Field Separators 9.4.3. Fields
9.5. Patterns and Actions
9.5.1. Patterns 9.5.2. Actions
9.6. One-Line Programs in awk 9.7. Statements
9.7.1. Sequential Execution 9.7.2. Conditional Execution 9.7.3. Iterative Execution 9.7.4. Array Membership Testing 9.7.5. Other Control Flow Statements 9.7.6. User-Controlled Input 9.7.7. Output Redirection 9.7.8. Running External Programs
9.8. User-Defined Functions 9.9. String Functions
9.9.1. Substring Extraction 9.9.2. Lettercase Conversion 9.9.3. String Searching 9.9.4. String Matching 9.9.5. String Substitution 9.9.6. String Splitting 9.9.7. String Reconstruction 9.9.8. String Formatting
9.10. Numeric Functions 9.11. Summary
10. Working with Files
10.1. Listing Files
10.1.1. Long File Listings 10.1.2. Listing File Metadata
10.2. Updating Modification Times with touch 10.3. Creating and Using Temporary Files
10.3.1. The $$ Variable 10.3.2. The mktemp Program 10.3.3. The /dev/random and /dev/urandom Special Files
10.4. Finding Files
10.4.1. Finding Files Quickly 10.4.2. Finding Where Commands Are Stored 10.4.3. The find Command
10.4.3.1. Using the find command 10.4.3.2. A simple find script 10.4.3.3. A complex find script
10.4.4. Finding Problem Files
10.5. Running Commands: xargs 10.6. Filesystem Space Information
10.6.1. The df Command 10.6.2. The du Command
10.7. Comparing Files
10.7.1. The cmp and diff Utilities 10.7.2. The patch Utility 10.7.3. File Checksum Matching 10.7.4. Digital Signature Verification
10.8. Summary
11. Extended Example: Merging User Databases
11.1. The Problem 11.2. The Password Files 11.3. Merging Password Files
11.3.1. Separating Users by Manageability 11.3.2. Managing UIDs 11.3.3. Creating User-Old UID-New UID Triples
11.4. Changing File Ownership 11.5. Other Real-World Issues 11.6. Summary
12. Spellchecking
12.1. The spell Program 12.2. The Original Unix Spellchecking Prototype 12.3. Improving ispell and aspell
12.3.1. Private Spelling Dictionaries 12.3.2. ispell and aspell
12.4. A Spellchecker in awk
12.4.1. Introductory Comments 12.4.2. Main Body 12.4.3. initialize( ) 12.4.4. get_dictionaries( ) 12.4.5. scan_options( ) 12.4.6. load_dictionaries( ) 12.4.7. load_suffixes( ) 12.4.8. order_suffixes( ) 12.4.9. spell_check_line( ) 12.4.10. spell_check_word( ) 12.4.11. strip_suffixes( ) 12.4.12. report_exceptions( ) 12.4.13. Retrospective on Our Spellchecker 12.4.14. Efficiency of awk Programs
12.5. Summary
13. Processes
13.1. Process Creation 13.2. Process Listing 13.3. Process Control and Deletion
13.3.1. Deleting Processes 13.3.2. Trapping Process Signals
13.4. Process System-Call Tracing 13.5. Process Accounting 13.6. Delayed Scheduling of Processes
13.6.1. sleep: Delay Awhile 13.6.2. at: Delay Until Specified Time 13.6.3. batch: Delay for Resource Control 13.6.4. crontab: Rerun at Specified Times
13.7. The /proc Filesystem 13.8. Summary
14. Shell Portability Issues and Extensions
14.1. Gotchas 14.2. The bash shopt Command 14.3. Common Extensions
14.3.1. The select Loop 14.3.2. Extended Test Facility 14.3.3. Extended Pattern Matching 14.3.4. Brace Expansion 14.3.5. Process Substitution 14.3.6. Indexed Arrays 14.3.7. Miscellaneous Extensions
14.4. Download Information
14.4.1. bash 14.4.2. ksh93
14.5. Other Extended Bourne-Style Shells 14.6. Shell Versions 14.7. Shell Initialization and Termination
14.7.1. Bourne Shell (sh) Startup 14.7.2. Korn Shell Startup 14.7.3. Bourne-Again Shell Startup and Termination 14.7.4. Z-Shell Startup and Termination
14.8. Summary
15. Secure Shell Scripts: Getting Started
15.1. Tips for Secure Shell Scripts 15.2. Restricted Shell 15.3. Trojan Horses 15.4. Setuid Shell Scripts: A Bad Idea 15.5. ksh93 and Privileged Mode 15.6. Summary
A. Writing Manual Pages
A.1. Manual Pages for pathfind A.2. Manual-Page Syntax Checking A.3. Manual-Page Format Conversion A.4. Manual-Page Installation
B. Files and Filesystems
B.1. What Is a File? B.2. How Are Files Named? B.3. What's in a Unix File? B.4. The Unix Hierarchical Filesystem
B.4.1. Filesystem Structure B.4.2. Layered Filesystems B.4.3. Filesystem Implementation Overview B.4.4. Devices as Unix Files
B.5. How Big Can Unix Files Be? B.6. Unix File Attributes
B.6.1. File Ownership and Permissions
B.6.1.1. Ownership B.6.1.2. Permissions B.6.1.3. Default permissions B.6.1.4. Permissions in action B.6.1.5. Directory permissions
B.6.2. File Timestamps B.6.3. File Links B.6.4. File Size and Timestamp Variations B.6.5. Other File Metadata
B.7. Unix File Ownership and Privacy Issues B.8. Unix File Extension Conventions B.9. Summary
C. Important Unix Commands
C.1. Shells and Built-in Commands C.2. Text Manipulation C.3. Files C.4. Processes C.5. Miscellaneous Programs
16. Bibliography
16.1. Unix Programmer's Manuals 16.2. Programming with the Unix Mindset 16.3. Awk and Shell 16.4. Standards 16.5. Security and Cryptography 16.6. Unix Internals 16.7. O'Reilly Books 16.8. Miscellaneous Books
About the Authors Colophon
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion