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

Index
bash Cookbook A Note Regarding Supplemental Files Preface
Who Should Read This Book About This Book Conventions Used in This Book Using Code Examples We’d Like to Hear from You Safari® Enabled Acknowledgments
1. Beginning bash
0. Why bash? 0. The bash Shell 1.1. Decoding the Prompt 1.2. Showing Where You Are 1.3. Finding and Running Commands 1.4. Getting Information About Files 1.5. Showing All Hidden (dot) Files in the Current Directory 1.6. Using Shell Quoting 1.7. Using or Replacing Built-ins and External Commands 1.8. Determining If You Are Running Interactively 1.9. Setting bash As Your Default Shell 1.10. Getting bash for Linux 1.11. Getting bash for xBSD 1.12. Getting bash for Mac OS X 1.13. Getting bash for Unix 1.14. Getting bash for Windows 1.15. Getting bash Without Getting bash 1.16. Learning More About bash Documentation
2. Standard Output
2.1. Writing Output to the Terminal/Window 2.2. Writing Output but Preserving Spacing 2.3. Writing Output with More Formatting Control 2.4. Writing Output Without the Newline 2.5. Saving Output from a Command 2.6. Saving Output to Other Files 2.7. Saving Output from the ls Command 2.8. Sending Both Output and Error Messages to Different Files 2.9. Sending Both Output and Error Messages to the Same File 2.10. Appending Rather Than Clobbering Output 2.11. Using Just the Beginning or End of a File 2.12. Skipping a Header in a File 2.13. Throwing Output Away 2.14. Saving or Grouping Output from Several Commands 2.15. Connecting Two Programs by Using Output As Input 2.16. Saving a Copy of Output Even While Using It As Input 2.17. Connecting Two Programs by Using Output As Arguments 2.18. Using Multiple Redirects on One Line 2.19. Saving Output When Redirect Doesn’t Seem to Work 2.20. Swapping STDERR and STDOUT 2.21. Keeping Files Safe from Accidental Overwriting 2.22. Clobbering a File on Purpose
3. Standard Input
3.1. Getting Input from a File 3.2. Keeping Your Data with Your Script 3.3. Preventing Weird Behavior in a Here-Document 3.4. Indenting Here-Documents 3.5. Getting User Input 3.6. Getting Yes or No Input 3.7. Selecting from a List of Options 3.8. Prompting for a Password
4. Executing Commands
4.1. Running Any Executable 4.2. Telling If a Command Succeeded or Not 4.3. Running Several Commands in Sequence 4.4. Running Several Commands All at Once 4.5. Deciding Whether a Command Succeeds 4.6. Using Fewer if Statements 4.7. Running Long Jobs Unattended 4.8. Displaying Error Messages When Failures Occur 4.9. Running Commands from a Variable 4.10. Running All Scripts in a Directory
5. Basic Scripting: Shell Variables
5.1. Documenting Your Script 5.2. Embedding Documentation in Shell Scripts 5.3. Promoting Script Readability 5.4. Separating Variable Names from Surrounding Text 5.5. Exporting Variables 5.6. Seeing All Variable Values 5.7. Using Parameters in a Shell Script 5.8. Looping Over Arguments Passed to a Script 5.9. Handling Parameters with Blanks 5.10. Handling Lists of Parameters with Blanks 5.11. Counting Arguments 5.12. Consuming Arguments 5.13. Getting Default Values 5.14. Setting Default Values 5.15. Using null As a Valid Default Value 5.16. Using More Than Just a Constant String for Default 5.17. Giving an Error Message for Unset Parameters 5.18. Changing Pieces of a String 5.19. Using Array Variables
6. Shell Logic and Arithmetic
6.1. Doing Arithmetic in Your Shell Script 6.2. Branching on Conditions 6.3. Testing for File Characteristics 6.4. Testing for More Than One Thing 6.5. Testing for String Characteristics 6.6. Testing for Equal 6.7. Testing with Pattern Matches 6.8. Testing with Regular Expressions 6.9. Changing Behavior with Redirections 6.10. Looping for a While 6.11. Looping with a read 6.12. Looping with a Count 6.13. Looping with Floating-Point Values 6.14. Branching Many Ways 6.15. Parsing Command-Line Arguments 6.16. Creating Simple Menus 6.17. Changing the Prompt on Simple Menus 6.18. Creating a Simple RPN Calculator 6.19. Creating a Command-Line Calculator
7. Intermediate Shell Tools I
7.1. Sifting Through Files for a String 7.2. Getting Just the Filename from a Search 7.3. Getting a Simple True/False from a Search 7.4. Searching for Text While Ignoring Case 7.5. Doing a Search in a Pipeline 7.6. Paring Down What the Search Finds 7.7. Searching with More Complex Patterns 7.8. Searching for an SSN 7.9. Grepping Compressed Files 7.10. Keeping Some Output, Discarding the Rest 7.11. Keeping Only a Portion of a Line of Output 7.12. Reversing the Words on Each Line 7.13. Summing a List of Numbers 7.14. Counting String Values 7.15. Showing Data As a Quick and Easy Histogram 7.16. Showing a Paragraph of Text After a Found Phrase
8. Intermediate Shell Tools II
8.1. Sorting Your Output 8.2. Sorting Numbers 8.3. Sorting IP Addresses 8.4. Cutting Out Parts of Your Output 8.5. Removing Duplicate Lines 8.6. Compressing Files 8.7. Uncompressing Files 8.8. Checking a tar Archive for Unique Directories 8.9. Translating Characters 8.10. Converting Uppercase to Lowercase 8.11. Converting DOS Files to Linux Format 8.12. Removing Smart Quotes 8.13. Counting Lines, Words, or Characters in a File 8.14. Rewrapping Paragraphs 8.15. Doing More with less
9. Finding Files: find, locate, slocate
9.1. Finding All Your MP3 Files 9.2. Handling Filenames Containing Odd Characters 9.3. Speeding Up Operations on Found Files 9.4. Finding Files Across Symbolic Links 9.5. Finding Files Irrespective of Case 9.6. Finding Files by Date 9.7. Finding Files by Type 9.8. Finding Files by Size 9.9. Finding Files by Content 9.10. Finding Existing Files and Content Fast 9.11. Finding a File Using a List of Possible Locations
10. Additional Features for Scripting
10.1. “Daemon-izing” Your Script 10.2. Reusing Code with Includes and Sourcing 10.3. Using Configuration Files in a Script 10.4. Defining Functions 10.5. Using Functions: Parameters and Return Values 10.6. Trapping Interrupts 10.7. Redefining Commands with alias 10.8. Avoiding Aliases, Functions
11. Working with Dates and Times
11.1. Formatting Dates for Display 11.2. Supplying a Default Date 11.3. Automating Date Ranges 11.4. Converting Dates and Times to Epoch Seconds 11.5. Converting Epoch Seconds to Dates and Times 11.6. Getting Yesterday or Tomorrow with Perl 11.7. Figuring Out Date and Time Arithmetic 11.8. Handling Time Zones, Daylight Saving Time, and Leap Years 11.9. Using date and cron to Run a Script on the Nth Day
12. End-User Tasks As Shell Scripts
12.1. Starting Simple by Printing Dashes 12.2. Viewing Photos in an Album 12.3. Loading Your MP3 Player 12.4. Burning a CD 12.5. Comparing Two Documents
13. Parsing and Similar Tasks
13.1. Parsing Arguments for Your Shell Script 13.2. Parsing Arguments with Your Own Error Messages 13.3. Parsing Some HTML 13.4. Parsing Output into an Array 13.5. Parsing Output with a Function Call 13.6. Parsing Text with a read Statement 13.7. Parsing with read into an Array 13.8. Getting Your Plurals Right 13.9. Taking It One Character at a Time 13.10. Cleaning Up an SVN Source Tree 13.11. Setting Up a Database with MySQL 13.12. Isolating Specific Fields in Data 13.13. Updating Specific Fields in Data Files 13.14. Trimming Whitespace 13.15. Compressing Whitespace 13.16. Processing Fixed-Length Records 13.17. Processing Files with No Line Breaks 13.18. Converting a Data File to CSV 13.19. Parsing a CSV Data File
14. Writing Secure Shell Scripts
14.1. Avoiding Common Security Problems 14.2. Avoiding Interpreter Spoofing 14.3. Setting a Secure $PATH 14.4. Clearing All Aliases 14.5. Clearing the Command Hash 14.6. Preventing Core Dumps 14.7. Setting a Secure $IFS 14.8. Setting a Secure umask 14.9. Finding World-Writable Directories in Your $PATH 14.10. Adding the Current Directory to the $PATH 14.11. Using Secure Temporary Files 14.12. Validating Input 14.13. Setting Permissions 14.14. Leaking Passwords into the Process List 14.15. Writing setuid or setgid Scripts 14.16. Restricting Guest Users 14.17. Using chroot Jails 14.18. Running As a Non-root User 14.19. Using sudo More Securely 14.20. Using Passwords in Scripts 14.21. Using SSH Without a Password 14.22. Restricting SSH Commands 14.23. Disconnecting Inactive Sessions
15. Advanced Scripting
15.1. Finding bash Portably for #! 15.2. Setting a POSIX $PATH 15.3. Developing Portable Shell Scripts 15.4. Testing Scripts in VMware 15.5. Using for Loops Portably 15.6. Using echo Portably 15.7. Splitting Output Only When Necessary 15.8. Viewing Output in Hex 15.9. Using bash Net-Redirection 15.10. Finding My IP Address 15.11. Getting Input from Another Machine 15.12. Redirecting Output for the Life of a Script 15.13. Working Around “argument list too long” Errors 15.14. Logging to syslog from Your Script 15.15. Sending Email from Your Script 15.16. Automating a Process Using Phases
16. Configuring and Customizing bash
16.1. bash Startup Options 16.2. Customizing Your Prompt 16.3. Change Your $PATH Permanently 16.4. Change Your $PATH Temporarily 16.5. Setting Your $CDPATH 16.6. Shortening or Changing Command Names 16.7. Adjusting Shell Behavior and Environment 16.8. Adjusting readline Behavior Using .inputrc 16.9. Keeping a Private Stash of Utilities by Adding ~/bin 16.10. Using Secondary Prompts: $PS2, $PS3, $PS4 16.11. Synchronizing Shell History Between Sessions 16.12. Setting Shell History Options 13. Creating a Better cd Command 16.14. Creating and Changing into a New Directory in One Step 16.15. Getting to the Bottom of Things 16.16. Adding New Features to bash Using Loadable Built-ins 16.17. Improving Programmable Completion 16.18. Using Initialization Files Correctly 16.19. Creating Self-Contained, Portable RC Files 16.20. Getting Started with a Custom Configuration
17. Housekeeping and Administrative Tasks
17.1. Renaming Many Files 17.2. Using GNU Texinfo and Info on Linux 17.3. Unzipping Many ZIP Files 17.4. Recovering Disconnected Sessions Using screen 17.5. Sharing a Single bash Session 17.6. Logging an Entire Session or Batch Job 17.7. Clearing the Screen When You Log Out 17.8. Capturing File Metadata for Recovery 17.9. Creating an Index of Many Files 17.10. Using diff and patch 17.11. Counting Differences in Files 17.12. Removing or Renaming Files Named with Special Characters 17.13. Prepending Data to a File 17.14. Editing a File in Place 17.15. Using sudo on a Group of Commands 17.16. Finding Lines in One File But Not in the Other 17.17. Keeping the Most Recent N Objects 17.18. Grepping ps Output Without Also Getting the grep Process Itself 17.19. Finding Out Whether a Process Is Running 17.20. Adding a Prefix or Suffix to Output 17.21. Numbering Lines 17.22. Writing Sequences 17.23. Emulating the DOS Pause Command 17.24. Commifying Numbers
18. Working Faster by Typing Less
18.1. Moving Quickly Among Arbitrary Directories 18.2. Repeating the Last Command 18.3. Running Almost the Same Command 18.4. Quick Substitution 18.5. Reusing Arguments 18.6. Finishing Names for You 18.7. Playing It Safe
19. Tips and Traps: Common Goofs for Novices
19.1. Forgetting to Set Execute Permissions 19.2. Fixing “No such file or directory” Errors 19.3. Forgetting That the Current Directory Is Not in the $PATH 19.4. Naming Your Script Test 19.5. Expecting to Change Exported Variables 19.6. Forgetting Quotes Leads to “command not found” on Assignments 19.7. Forgetting That Pattern Matching Alphabetizes 19.8. Forgetting That Pipelines Make Subshells 19.9. Making Your Terminal Sane Again 19.10. Deleting Files Using an Empty Variable 19.11. Seeing Odd Behavior from printf 19.12. Testing bash Script Syntax 19.13. Debugging Scripts 19.14. Avoiding “command not found” When Using Functions 19.15. Confusing Shell Wildcards and Regular Expressions
A. Reference Lists
A.1. bash Invocation A.2. Prompt String Customizations A.3. ANSI Color Escape Sequences A.4. Built-in Commands and Reserved Words A.5. Built-in Shell Variables A.6. set Options A.7. shopt options A.8. Adjusting Shell Behavior Using set, shopt, and Environment Variables A.9. Test Operators A.10. I/O Redirection A.11. echo Options and Escape Sequences A.12. printf A.13. Date and Time String Formatting with strftime A.14. Pattern-Matching Characters A.15. extglob Extended Pattern-Matching Operators A.16. tr Escape Sequences A.17. Readline Init File Syntax A.18. emacs Mode Commands A.19. vi Control Mode Commands A.20. Table of ASCII Values
B. Examples Included with bash
B.1. Startup-Files Directory Examples
C. Command-Line Processing
C.1. Command-Line Processing Steps
D. Revision Control
D.1. CVS D.2. Subversion D.3. RCS D.4. Other
E. Building bash from Source
E.1. Obtaining bash E.2. Unpacking the Archive E.3. What’s in the Archive E.4. Who Do I Turn To?
Index About the Authors Colophon Copyright
  • ← 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