1. Trang chủ
  2. » Công Nghệ Thông Tin

Bash Cookbook pptx

624 859 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • bash Cookbook

    • Table of Contents

    • Preface

      • Who Should Read This Book

      • About This Book

        • GNU Software

        • A Note About Code Examples

        • Useless Use of cat

        • A Note About Perl

        • More Resources

      • Conventions Used in This Book

      • Using Code Examples

      • We’d Like to Hear from You

      • Safari® Enabled

      • Acknowledgments

        • Reviewers

        • O’Reilly

        • From the Authors

          • Carl

          • JP

          • Cameron

    • Beginning bash

      • Why bash?

      • The bash Shell

      • 1.1 Decoding the Prompt

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.2 Showing Where You Are

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.3 Finding and Running Commands

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.4 Getting Information About Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.5 Showing All Hidden (dot) Files in the Current Directory

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.6 Using Shell Quoting

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.7 Using or Replacing Built-ins and External Commands

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.8 Determining If You Are Running Interactively

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.9 Setting bash As Your Default Shell

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.10 Getting bash for Linux

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.11 Getting bash for xBSD

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.12 Getting bash for Mac OS X

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.13 Getting bash for Unix

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.14 Getting bash for Windows

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.15 Getting bash Without Getting bash

        • Problem

        • Solution

        • Discussion

        • See Also

      • 1.16 Learning More About bash Documentation

        • Problem

        • Solution

          • Official documentation

          • Other documentation

        • See Also

    • Standard Output

      • 2.1 Writing Output to the Terminal/Window

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.2 Writing Output but Preserving Spacing

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.3 Writing Output with More Formatting Control

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.4 Writing Output Without the Newline

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.5 Saving Output from a Command

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.6 Saving Output to Other Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.7 Saving Output from the ls Command

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.8 Sending Both Output and Error Messages to Different Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.9 Sending Both Output and Error Messages to the Same File

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.10 Appending Rather Than Clobbering Output

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.11 Using Just the Beginning or End of a File

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.12 Skipping a Header in a File

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.13 Throwing Output Away

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.14 Saving or Grouping Output from Several Commands

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.15 Connecting Two Programs by Using Output As Input

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.16 Saving a Copy of Output Even While Using It As Input

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.17 Connecting Two Programs by Using Output As Arguments

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.18 Using Multiple Redirects on One Line

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.19 Saving Output When Redirect Doesn’t Seem to Work

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.20 Swapping STDERR and STDOUT

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.21 Keeping Files Safe from Accidental Overwriting

        • Problem

        • Solution

        • Discussion

        • See Also

      • 2.22 Clobbering a File on Purpose

        • Problem

        • Solution

        • Discussion

        • See Also

    • Standard Input

      • 3.1 Getting Input from a File

        • Problem

        • Solution

        • Discussion

        • See Also

      • 3.2 Keeping Your Data with Your Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 3.3 Preventing Weird Behavior in a Here-Document

        • Problem

        • Solution

        • Discussion

        • See Also

      • 3.4 Indenting Here-Documents

        • Problem

        • Solution

        • Discussion

        • See Also

      • 3.5 Getting User Input

        • Problem

        • Solution

        • Discussion

        • See Also

      • 3.6 Getting Yes or No Input

        • Problem

        • Solution

        • Discussion

        • See Also

      • 3.7 Selecting from a List of Options

        • Problem

        • Solution

        • Discussion

        • See Also

      • 3.8 Prompting for a Password

        • Problem

        • Solution

        • Discussion

        • See Also

    • Executing Commands

      • 4.1 Running Any Executable

        • Problem

        • Solution

        • Discussion

        • See Also

      • 4.2 Telling If a Command Succeeded or Not

        • Problem

        • Solution

        • Discussion

        • See Also

      • 4.3 Running Several Commands in Sequence

        • Problem

        • Solution

        • Discussion

      • 4.4 Running Several Commands All at Once

        • Problem

        • Solution

        • Discussion

        • See Also

      • 4.5 Deciding Whether a Command Succeeds

        • Problem

        • Solution

        • Discussion

        • See Also

      • 4.6 Using Fewer if Statements

        • Problem

        • Solution

        • Discussion

        • See Also

      • 4.7 Running Long Jobs Unattended

        • Problem

        • Solution

        • Discussion

        • See Also

      • 4.8 Displaying Error Messages When Failures Occur

        • Problem

        • Solution

        • Discussion

        • See Also

      • 4.9 Running Commands from a Variable

        • Problem

        • Solution

        • Discussion

        • See Also

      • 4.10 Running All Scripts in a Directory

        • Problem

        • Solution

        • Discussion

        • See Also

    • Basic Scripting: Shell Variables

      • 5.1 Documenting Your Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.2 Embedding Documentation in Shell Scripts

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.3 Promoting Script Readability

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.4 Separating Variable Names from Surrounding Text

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.5 Exporting Variables

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.6 Seeing All Variable Values

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.7 Using Parameters in a Shell Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.8 Looping Over Arguments Passed to a Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.9 Handling Parameters with Blanks

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.10 Handling Lists of Parameters with Blanks

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.11 Counting Arguments

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.12 Consuming Arguments

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.13 Getting Default Values

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.14 Setting Default Values

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.15 Using null As a Valid Default Value

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.16 Using More Than Just a Constant String for Default

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.17 Giving an Error Message for Unset Parameters

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.18 Changing Pieces of a String

        • Problem

        • Solution

        • Discussion

        • See Also

      • 5.19 Using Array Variables

        • Problem

        • Solution

        • Description

        • See Also

    • Shell Logic and Arithmetic

      • 6.1 Doing Arithmetic in Your Shell Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.2 Branching on Conditions

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.3 Testing for File Characteristics

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.4 Testing for More Than One Thing

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.5 Testing for String Characteristics

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.6 Testing for Equal

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.7 Testing with Pattern Matches

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.8 Testing with Regular Expressions

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.9 Changing Behavior with Redirections

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.10 Looping for a While

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.11 Looping with a read

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.12 Looping with a Count

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.13 Looping with Floating-Point Values

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.14 Branching Many Ways

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.15 Parsing Command-Line Arguments

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.16 Creating Simple Menus

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.17 Changing the Prompt on Simple Menus

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.18 Creating a Simple RPN Calculator

        • Problem

        • Solution

        • Discussion

        • See Also

      • 6.19 Creating a Command-Line Calculator

        • Problem

        • Solution

        • Discussion

        • See Also

    • Intermediate Shell Tools I

      • 7.1 Sifting Through Files for a String

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.2 Getting Just the Filename from a Search

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.3 Getting a Simple True/False from a Search

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.4 Searching for Text While Ignoring Case

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.5 Doing a Search in a Pipeline

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.6 Paring Down What the Search Finds

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.7 Searching with More Complex Patterns

      • 7.8 Searching for an SSN

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.9 Grepping Compressed Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.10 Keeping Some Output, Discarding the Rest

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.11 Keeping Only a Portion of a Line of Output

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.12 Reversing the Words on Each Line

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.13 Summing a List of Numbers

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.14 Counting String Values

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.15 Showing Data As a Quick and Easy Histogram

        • Problem

        • Solution

        • Discussion

        • See Also

      • 7.16 Showing a Paragraph of Text After a Found Phrase

        • Problem

        • Solution

        • Discussion

        • See Also

    • Intermediate Shell Tools II

      • 8.1 Sorting Your Output

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.2 Sorting Numbers

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.3 Sorting IP Addresses

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.4 Cutting Out Parts of Your Output

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.5 Removing Duplicate Lines

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.6 Compressing Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.7 Uncompressing Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.8 Checking a tar Archive for Unique Directories

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.9 Translating Characters

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.10 Converting Uppercase to Lowercase

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.11 Converting DOS Files to Linux Format

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.12 Removing Smart Quotes

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.13 Counting Lines, Words, or Characters in a File

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.14 Rewrapping Paragraphs

        • Problem

        • Solution

        • Discussion

        • See Also

      • 8.15 Doing More with less

        • Problem

        • Solution

        • Discussion

        • See Also

    • Finding Files: find, locate, slocate

      • 9.1 Finding All Your MP3 Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 9.2 Handling Filenames Containing Odd Characters

        • Problem

        • Solution

        • Discussion

        • See Also

      • 9.3 Speeding Up Operations on Found Files

        • Problem

        • Solution

        • See Also

      • 9.4 Finding Files Across Symbolic Links

        • Problem

        • Solution

        • Discussion

        • See Also

      • 9.5 Finding Files Irrespective of Case

        • Problem

        • Solution

        • Discussion

        • See Also

      • 9.6 Finding Files by Date

        • Problem

        • Solution

        • Discussion

        • See Also

      • 9.7 Finding Files by Type

        • Problem

        • Solution

        • Discussion

        • See Also

      • 9.8 Finding Files by Size

        • Problem

        • Solution

        • Discussion

        • See Also

      • 9.9 Finding Files by Content

        • Problem

        • Solution

        • Discussion

        • See Also

      • 9.10 Finding Existing Files and Content Fast

        • Problem

        • Solution

        • Discussion

        • See Also

      • 9.11 Finding a File Using a List of Possible Locations

        • Problem

        • Solution

        • Discussion

        • See Also

    • Additional Features for Scripting

      • 10.1 “Daemon-izing” Your Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 10.2 Reusing Code with Includes and Sourcing

        • Problem

        • Solution

        • Discussion

        • See Also

      • 10.3 Using Configuration Files in a Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 10.4 Defining Functions

        • Problem

        • Solution

        • Discussion

        • See Also

      • 10.5 Using Functions: Parameters and Return Values

        • Problem

        • Solution

        • Discussion

        • See Also

      • 10.6 Trapping Interrupts

        • Problem

        • Solution

        • Discussion

        • See Also

      • 10.7 Redefining Commands with alias

        • Problem

        • Solution

        • Discussion

        • See Also

      • 10.8 Avoiding Aliases, Functions

        • Problem

        • Solution

        • Discussion

        • See Also

    • Working with Dates and Times

      • 11.1 Formatting Dates for Display

        • Problem

        • Solution

        • Discussion

        • See Also

      • 11.2 Supplying a Default Date

        • Problem

        • Solution

        • Discussion

        • See Also

      • 11.3 Automating Date Ranges

        • Problem

        • Solution

        • Discussion

        • See Also

      • 11.4 Converting Dates and Times to Epoch Seconds

        • Problem

        • Solution

        • Discussion

        • See Also

      • 11.5 Converting Epoch Seconds to Dates and Times

        • Problem

        • Solution

        • Discussion

        • See Also

      • 11.6 Getting Yesterday or Tomorrow with Perl

        • Problem

        • Solution

        • Discussion

        • See Also

      • 11.7 Figuring Out Date and Time Arithmetic

        • Problem

        • Solution

        • Discussion

        • See Also

      • 11.8 Handling Time Zones, Daylight Saving Time, and Leap Years

        • Problem

        • Solution

        • See Also

      • 11.9 Using date and cron to Run a Script on the Nth Day

        • Problem

        • Solution

        • Discussion

        • See Also

    • End-User Tasks As Shell Scripts

      • 12.1 Starting Simple by Printing Dashes

        • Problem

        • Solution

        • Discussion

        • See Also

      • 12.2 Viewing Photos in an Album

        • Problem

        • Solution

        • Discussion

        • See Also

      • 12.3 Loading Your MP3 Player

        • Problem

        • Solution

        • Discussion

        • See Also

      • 12.4 Burning a CD

        • Problem

        • Solution

        • Discussion

        • See Also

      • 12.5 Comparing Two Documents

        • Problem

        • Solution

        • Discussion

        • See Also

    • Parsing and Similar Tasks

      • 13.1 Parsing Arguments for Your Shell Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.2 Parsing Arguments with Your Own Error Messages

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.3 Parsing Some HTML

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.4 Parsing Output into an Array

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.5 Parsing Output with a Function Call

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.6 Parsing Text with a read Statement

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.7 Parsing with read into an Array

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.8 Getting Your Plurals Right

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.9 Taking It One Character at a Time

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.10 Cleaning Up an SVN Source Tree

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.11 Setting Up a Database with MySQL

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.12 Isolating Specific Fields in Data

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.13 Updating Specific Fields in Data Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.14 Trimming Whitespace

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.15 Compressing Whitespace

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.16 Processing Fixed-Length Records

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.17 Processing Files with No Line Breaks

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.18 Converting a Data File to CSV

        • Problem

        • Solution

        • Discussion

        • See Also

      • 13.19 Parsing a CSV Data File

        • Problem

        • Solution

        • Discussion

        • See Also

    • Writing Secure Shell Scripts

      • 14.1 Avoiding Common Security Problems

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.2 Avoiding Interpreter Spoofing

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.3 Setting a Secure $PATH

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.4 Clearing All Aliases

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.5 Clearing the Command Hash

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.6 Preventing Core Dumps

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.7 Setting a Secure $IFS

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.8 Setting a Secure umask

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.9 Finding World-Writable Directories in Your $PATH

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.10 Adding the Current Directory to the $PATH

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.11 Using Secure Temporary Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.12 Validating Input

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.13 Setting Permissions

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.14 Leaking Passwords into the Process List

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.15 Writing setuid or setgid Scripts

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.16 Restricting Guest Users

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.17 Using chroot Jails

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.18 Running As a Non-root User

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.19 Using sudo More Securely

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.20 Using Passwords in Scripts

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.21 Using SSH Without a Password

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.22 Restricting SSH Commands

        • Problem

        • Solution

        • Discussion

        • See Also

      • 14.23 Disconnecting Inactive Sessions

        • Problem

        • Solution

        • Discussion

        • See Also

    • Advanced Scripting

      • 15.1 Finding bash Portably for #!

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.2 Setting a POSIX $PATH

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.3 Developing Portable Shell Scripts

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.4 Testing Scripts in VMware

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.5 Using for Loops Portably

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.6 Using echo Portably

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.7 Splitting Output Only When Necessary

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.8 Viewing Output in Hex

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.9 Using bash Net-Redirection

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.10 Finding My IP Address

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.11 Getting Input from Another Machine

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.12 Redirecting Output for the Life of a Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.13 Working Around “argument list too long” Errors

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.14 Logging to syslog from Your Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.15 Sending Email from Your Script

        • Problem

        • Solution

        • Discussion

        • See Also

      • 15.16 Automating a Process Using Phases

        • Problem

        • Solution

        • Discussion

        • See Also

    • Configuring and Customizing bash

      • 16.1 bash Startup Options

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.2 Customizing Your Prompt

        • Problem

        • Solution

          • Basic prompts

          • Fancy prompts

        • Discussion

          • Colors

        • See Also

      • 16.3 Change Your $PATH Permanently

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.4 Change Your $PATH Temporarily

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.5 Setting Your $CDPATH

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.6 Shortening or Changing Command Names

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.7 Adjusting Shell Behavior and Environment

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.8 Adjusting readline Behavior Using .inputrc

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.9 Keeping a Private Stash of Utilities by Adding ~/bin

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.10 Using Secondary Prompts: $PS2, $PS3, $PS4

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.11 Synchronizing Shell History Between Sessions

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.12 Setting Shell History Options

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.13 Creating a Better cd Command

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.14 Creating and Changing into a New Directory in One Step

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.15 Getting to the Bottom of Things

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.16 Adding New Features to bash Using Loadable Built-ins

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.17 Improving Programmable Completion

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.18 Using Initialization Files Correctly

        • Problem

        • Solution

        • Discussion

        • See Also

      • 16.19 Creating Self-Contained, Portable RC Files

        • Problem

        • Solution

        • Discussion

          • Assumptions

          • Criteria

        • See Also

      • 16.20 Getting Started with a Custom Configuration

        • Problem

        • Solution

        • Discussion

        • See Also

    • Housekeeping and Administrative Tasks

      • 17.1 Renaming Many Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.2 Using GNU Texinfo and Info on Linux

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.3 Unzipping Many ZIP Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.4 Recovering Disconnected Sessions Using screen

        • Problem

        • Solution

        • Discussion

          • Caveats

          • Configuration

        • See Also

      • 17.5 Sharing a Single bash Session

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.6 Logging an Entire Session or Batch Job

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.7 Clearing the Screen When You Log Out

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.8 Capturing File Metadata for Recovery

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.9 Creating an Index of Many Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.10 Using diff and patch

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.11 Counting Differences in Files

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.12 Removing or Renaming Files Named with Special Characters

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.13 Prepending Data to a File

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.14 Editing a File in Place

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.15 Using sudo on a Group of Commands

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.16 Finding Lines in One File But Not in the Other

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.17 Keeping the Most Recent N Objects

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.18 Grepping ps Output Without Also Getting the grep Process Itself

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.19 Finding Out Whether a Process Is Running

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.20 Adding a Prefix or Suffix to Output

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.21 Numbering Lines

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.22 Writing Sequences

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.23 Emulating the DOS Pause Command

        • Problem

        • Solution

        • Discussion

        • See Also

      • 17.24 Commifying Numbers

        • Problem

        • Solution

        • Discussion

        • See Also

    • Working Faster by Typing Less

      • 18.1 Moving Quickly Among Arbitrary Directories

        • Problem

        • Solution

        • Discussion

        • See Also

      • 18.2 Repeating the Last Command

        • Problem

        • Solution

        • Description

        • See Also

      • 18.3 Running Almost the Same Command

        • Problem

        • Solution

        • Discussion

        • See Also

      • 18.4 Substituting Across Word Boundaries

        • Problem

        • Solution

        • Discussion

        • See Also

      • 18.5 Reusing Arguments

        • Problem

        • Solution

        • Discussion

        • See Also

      • 18.6 Finishing Names for You

        • Problem

        • Solution

        • Discussion

        • See Also

      • 18.7 Playing It Safe

        • Problem

        • Solution

        • Discussion

        • See Also

    • Tips and Traps: Common Goofs for Novices

      • 19.1 Forgetting to Set Execute Permissions

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.2 Fixing “No such file or directory” Errors

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.3 Forgetting That the Current Directory Is Not in the $PATH

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.4 Naming Your Script Test

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.5 Expecting to Change Exported Variables

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.6 Forgetting Quotes Leads to “command not found” on Assignments

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.7 Forgetting That Pattern Matching Alphabetizes

      • 19.8 Forgetting That Pipelines Make Subshells

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.9 Making Your Terminal Sane Again

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.10 Deleting Files Using an Empty Variable

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.11 Seeing Odd Behavior from printf

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.12 Testing bash Script Syntax

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.13 Debugging Scripts

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.14 Avoiding “command not found” When Using Functions

        • Problem

        • Solution

        • Discussion

        • See Also

      • 19.15 Confusing Shell Wildcards and Regular Expressions

        • Problem

        • Solution

        • Discussion

        • See Also

    • Reference Lists

      • bash Invocation

      • Prompt String Customizations

      • ANSI Color Escape Sequences

      • Built-in Commands and Reserved Words

      • Built-in Shell Variables

      • set Options

      • shopt Options

      • Adjusting Shell Behavior Using set, shopt, and Environment Variables

      • Test Operators

      • I/O Redirection

      • echo Options and Escape Sequences

      • printf

        • Examples

        • See Also

      • Date and Time String Formatting with strftime

      • Pattern-Matching Characters

      • extglob Extended Pattern-Matching Operators

      • tr Escape Sequences

      • Readline Init File Syntax

      • emacs Mode Commands

      • vi Control Mode Commands

      • Table of ASCII Values

    • Examples Included with bash

      • Startup-Files Directory Examples

    • Command-Line Processing

      • Command-Line Processing Steps

        • Quoting

        • eval

    • Revision Control

      • CVS

        • Pros

        • Cons

        • Example

        • See Also

      • Subversion

        • Pros

        • Cons

        • Example

        • See Also

      • RCS

        • Pros

        • Cons

        • Example

        • Workon Script

        • See Also

      • Other

        • Document Comparison

        • Change Tracking and Versions

        • Accessing These Features

    • Building bash from Source

      • Obtaining bash

      • Unpacking the Archive

      • What’s in the Archive

        • Documentation

        • Configuring and Building bash

        • Testing bash

        • Potential Problems

        • Installing bash as a Login Shell

        • Examples

      • Who Do I Turn To?

        • Asking Questions

        • Reporting Bugs

    • Index

Nội dung

[...]... #!/usr/bin/env bash for these examples, where applicable, as that is more portable than the #!/bin /bash you will see on Linux or a Mac See Recipe 15.1, “Finding bash Portably for #!” for more details xvi | Preface Also, you may notice something like the following in some code examples: # cookbook filename: snippet_name That means that the code you are reading is available for download on our site (http://www.bashcookbook.com)... reproducibility In case you’re new to bash, we’ll start with some basics If you’ve used Unix or Linux at all, you probably aren’t new to bash but you may not have known you were using it bash is really just a language for executing commands—so the commands you’ve been typing all along (e.g., ls, cd, grep, cat) are, in a sense, bash commands Some of these commands are built into bash itself; others are separate... doesn’t make a difference which is which Beginning bash | 3 We’ll end this chapter with a few recipes on getting bash Most systems come with bash pre-installed, but a few don’t Even if your system comes with bash, it’s always a good idea to know how to get and install it—new versions, with new features, are released from time to time If you’re already running bash, and are somewhat familiar with it, you... Prompt”) For example: bash- 2.03$ pwd /tmp bash- 2.03$ export PS1='[\u@\h \w]$ ' [jp@solaris8 /tmp]$ Discussion pwd stands for print working directory and takes two options -L displays your logical path and is the default.s displays your physical location, which may differ from your logical path if you have followed a symbolic link bash- 2.03$ pwd /tmp/dir2 bash- 2.03$ pwd -L /tmp/dir2 bash- 2.03$ pwd -P /tmp/dir1... http://www.oreilly.com/catalog/9780596526788 You can find information about this book, code samples, errata, links, bash documentation, and more at the authors’ site: http://www.bashcookbook.com Please drop by for a visit to learn, contribute, or chat The authors would love to hear from you about what you like and don’t like about the book, what bash wonders you may have found, or lessons you have learned To comment or ask technical... Recipe 1.15, “Getting bash Without Getting bash and Recipe 15.4, “Testing Scripts in VMware”) and are familiar with logging in, typing basic commands, and using a text editor You do not have to be root to use the vast majority of the recipes, though there are a few, particularly dealing with installing bash, where root access will be needed xiv | Preface About This Book This book covers bash, the GNU Bourne... the end of Unix’s second decade, there were a few more alternatives: the Korn shell, (ksh), and the first versions of the bash shell (bash) By the end of Unix’s third decade, there were probably a dozen different shells You probably don’t sit around saying “should I use csh or bash or ksh today?” You’re probably happy with the standard shell that came with your Linux (or BSD or Mac OS X or Solaris... but the Unix shell (whatever flavor of shell you’re using) is a great place to start After all, you already know how to type commands; why make things more complex? Why bash? Why is this book about bash, and not some other shell? Because bash is everywhere It may not be the newest, and it’s arguably not the fanciest or the most powerful (though if not, it comes close), nor is it the only shell that’s... utilities, including the shell The standard shell was 2 | Chapter 1: Beginning bash primarily based on the 1988 version of the Korn Shell, with some C shell features and a bit of invention to fill in the gaps bash was begun as part of the GNU project’s effort to produce a complete POSIX system, which naturally needed a POSIX shell bash provided the programming features that shell programmers needed, plus... became more popular, bash quickly overshadowed ksh As a result, bash is the default user shell on every Linux distribution we know about (there are a few hundred Linux distros, so there are probably a few with some oddball default shell), as well as Mac OS X It’s also available for just about every other Unix operating system, including BSD Unix and Solaris In the rare cases where bash doesn’t ship with . 15 1.9 Setting bash As Your Default Shell 16 1.10 Getting bash for Linux 17 1.11 Getting bash for xBSD 20 1.12 Getting bash for Mac OS X 21 1.13 Getting bash for Unix 22 1.14 Getting bash for Windows. class="bi x0 y0 w0 h1" alt="" bash Cookbook ™ Carl Albing, JP Vossen, and Cameron Newham Beijing • Cambridge • Farnham • Köln • Paris • Sebastopol • Taipei • Tokyo bash Cookbook ™ by Carl Albing,. Getting bash for Unix 22 1.14 Getting bash for Windows 23 1.15 Getting bash Without Getting bash 24 1.16 Learning More About bash Documentation 25 2. Standard Output . . . . . . . . . . . . . .

Ngày đăng: 29/03/2014, 10:20

Xem thêm

w