文件名称:
Apress.Expert.Shell.Scripting
开发工具:
文件大小: 1mb
下载次数: 0
上传时间: 2012-07-31
详细说明: PART 1 ■CHAPTER 1 ■■■ Basic Scripting Techniques Shell Script Debugging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Shell Trace Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Simple Output Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Controlling Output with Debug Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Simplifying Error Checking with a Function . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Manual Stepping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 ■CHAPTER 2 Standard Function Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 The Library File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Some Useful Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Using Your Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 ■CHAPTER 3 19 Date in Days . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Days Since Epoch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Alternatives for Finding the Date in Seconds . . . . . . . . . . . . . . . . . . . Evaluating for the Current Day and Time . . . . . . . . . . . . . . . . . . . . . . . . . . . ■CHAPTER 4 Date and Time Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 20 22 22 Comparisons and Tests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 The Basics of Comparisons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 vii viii ■C O N T E N T S ■CHAPTER 5 ■CHAPTER 7 31 Testing Variables and Assigning Defaults . . . . . . . . . . . . . . . . 37 Setting Defaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Variable Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . := Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . = Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :- Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . - Syntax. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :? Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ? Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . :+ Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . + Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ■CHAPTER 6 Accepting Command-Line Options, Switches, 37 and Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 39 40 40 40 41 41 42 42 Indirect Reference Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Log File Monitoring with Indirect Variables . . . . . . . . . . . . . . . . . . . . . . . . . 43 The Main Monitor Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ■CHAPTER 8 Shell Process Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Process Tree Implemented Using Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Process Tree Implemented Using Indirect Variables . . . . . . . . . . . . . . . . . 55 Bourne Shell Implementation of a Process Tree . . . . . . . . . . . . . . . . . . . . . 56 ■CHAPTER 9 59 Avoiding Confusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Common Redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Access to User-Specified File Handles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Descriptor Access from the Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ■CHAPTER 10 Data Redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 60 62 64 Piping Input to read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Line-by-Line Option 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Line-by-Line Option 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Line-by-Line Option 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 ■C O N T E N T S Line-by-Line Option 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Pipe to read Directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Process Input Word-by-Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 PART 2 ■■■ ■CHAPTER 11 System Interaction and Advanced Techniques Math from the Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 expr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Internal Shell Math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . bc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . dc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ■CHAPTER 12 75 76 78 78 cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 crontab Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Environment Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 Output Redirection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 ■CHAPTER 13 Self-Linked Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 ■CHAPTER 14 Throttling Parallel Processes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Parallel Processing with ksh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Parallel Processing with bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 ■CHAPTER 15 Command-Line Editing and History . . . . . . . . . . . . . . . . . . . . . . . 99 Setting Up vi Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ksh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Command and File Completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ■CHAPTER 16 100 100 101 101 Scripting from the Command Line . . . . . . . . . . . . . . . . . . . . . . . . 103 A Few Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 ix x ■C O N T E N T S ■CHAPTER 17 Automating User Input with expect . . . . . . . . . . . . . . . . . . . . . . 107 A Shell Script to Customize Parameters for an expect Script . . . . . . . . . 108 An expect Script to Automate telnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 ■CHAPTER 18 User Input Timeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Manual Timeout Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Timeout Using stty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 General Timeout Utility. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 ■CHAPTER 19 Instant Keyboard Response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 ■CHAPTER 20 Directory Copying. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Using cp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 Using tar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Using find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Using rsync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 A Brief Tour of the X Display Environment . . . . . . . . . . . . . . . 131 The Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 X Traffic Through ssh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 X Applications Through a Third-Party System . . . . . . . . . . . . . . . . . . . . . . 133 User-Profile Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Root-Profile Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 Throw a Temporary Root Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 X Navigation Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 ■CHAPTER 21 ■CHAPTER 22 Navigation Window Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 Navigation Setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Navigation Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 ■CHAPTER 23 Command-Line E-mail Attachments . . . . . . . . . . . . . . . . . . . . . 151 uuencode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 MIME Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 ■C O N T E N T S ■CHAPTER 24 157 158 158 159 159 159 160 160 161 161 162 163 163 163 164 164 164 165 165 166 166 167 167 168 168 169 170 171 Editing Files in Place . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Simple Search and Replace with ed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Search and Replace Using ed, Dissected . . . . . . . . . . . . . . . . . . . . . . . . . . Examples of ed Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Escaping Special Characters in a File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ■CHAPTER 26 157 Displaying Specific Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Specifying the Field Separator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Simple Pattern-Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Matching Fields Against Several Values . . . . . . . . . . . . . . . . . . . . . . . . . . . Determining the Number of Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Determining the Last Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Determining the Second-to-Last Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . Passing Variables to awk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Using a Variable Passed to awk in a Condition . . . . . . . . . . . . . . . . . . . . . Displaying a Range of Fields (Main Method) . . . . . . . . . . . . . . . . . . . . . . . Displaying a Range of Fields (Alternate Method). . . . . . . . . . . . . . . . . . . . Determining the Length of a String Using awk . . . . . . . . . . . . . . . . . . . . . Determining the Length of a String Using expr . . . . . . . . . . . . . . . . . . . . . Displaying a Substring with awk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Displaying a Substring with expr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conducting Simple Search and Replace with sed . . . . . . . . . . . . . . . . . . Disregarding Blank and Commented Lines from a File . . . . . . . . . . . . . . Conducting Dual Search and Replace with sed. . . . . . . . . . . . . . . . . . . . . Filtering Lines with sed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Searching for Multiple Strings with egrep . . . . . . . . . . . . . . . . . . . . . . . . . A Clean Method of Searching the Process Table . . . . . . . . . . . . . . . . . . . Summing Columns Using awk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Generating Random Numbers Using awk. . . . . . . . . . . . . . . . . . . . . . . . . . Generating Random Numbers from the Shell . . . . . . . . . . . . . . . . . . . . . . Displaying Character-Based Fields with sed . . . . . . . . . . . . . . . . . . . . . . . Escaping Special Characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Returning Trailing Lines from a Pattern Match Using grep . . . . . . . . . . . Returning Preceding Lines to a Pattern Match Using grep . . . . . . . . . . . ■CHAPTER 25 Text-Processing One-Liners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 174 175 178 Evaluating Variables in a Flat File . . . . . . . . . . . . . . . . . . . . . . . . 181 xi xii ■C O N T E N T S ■CHAPTER 27 Read Piped Input ■CHAPTER 28 Free-Format Output Using cat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 ■CHAPTER 29 Automating Interactive Processes . . . . . . . . . . . . . . . . . . . . . . . . 187 PART 3 ■■■ ■CHAPTER 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 Useful Scripts Automating E-mail with procmail . . . . . . . . . . . . . . . . . . . . . . . . 193 The .procmailrc File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 Usage Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 The Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 ■CHAPTER 31 Process-Management Monitor. . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 ■CHAPTER 32 Managing File Counts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 File-Count Monitor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 Testing File-Count Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 ■CHAPTER 33 Processes Running from inittab . . . . . . . . . . . . . . . . . . . . . . . . . . 215 ■CHAPTER 34 Automatic RCS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 ■CHAPTER 35 Colorful /proc Reporting ■CHAPTER 36 Password-Aging Notification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223 231 Script Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 Processing Begins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234 Determine Password Age . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 ■CHAPTER 37 A Pseudo–shadow File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 ■CHAPTER 38 Linux Gold-System Build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 ■C O N T E N T S ■CHAPTER 39 System Snapshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 Snapshot Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Snapshot Promotion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Creating the Latest Snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 Final Thoughts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 ■CHAPTER 40 Removing Large Files and Log Rolling . . . . . . . . . . . . . . . . . . . 261 ■CHAPTER 41 Core Finder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 ■CHAPTER 42 Network Adapter Failover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 Check the Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 Switch the Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 ■APPENDIX A Test Switches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273 ■APPENDIX B Special Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 ■APPENDIX C Other Shell-Scripting Resources . . . . . . . . . . . . . . . . . . . . . . . . . 277 Manual Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 Scripting Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Supplementary Books . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Shell Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 Online Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 ■INDEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.