unix power tools

时间:2012-08-27 10:03:11
【文件属性】:

文件名称:unix power tools

文件大小:5.6MB

文件格式:PDF

更新时间:2012-08-27 10:03:11

Unix tools

Table of Contents 1. Introduction....................................................................................................................................................2 1.1 What's Special About UNIX?............................................................................................................2 ..............................................................................................................................................................................4 1.2 Who Listens to What You Type?.......................................................................................................4 ..............................................................................................................................................................................6 1.3 Programs Are Designed to Work Together.......................................................................................6 ..............................................................................................................................................................................7 1.4 Using Pipes to Create a New Tool.....................................................................................................7 ..............................................................................................................................................................................9 1.5 Anyone Can Program the Shell..........................................................................................................9 ............................................................................................................................................................................11 1.6 Power Tools for Editing...................................................................................................................11 ............................................................................................................................................................................12 1.7 Power Grows on You.......................................................................................................................12 ............................................................................................................................................................................14 1.8 There Are Many Shells....................................................................................................................14 ............................................................................................................................................................................16 1.9 Which Shell Am I Running?............................................................................................................16 ............................................................................................................................................................................17 1.10 Internal and External Commands...................................................................................................17 ............................................................................................................................................................................18 1.11 How the Shell Executes Other Commands....................................................................................18 ............................................................................................................................................................................19 1.12 What Makes a Shell Script?...........................................................................................................19 ............................................................................................................................................................................20 1.13 Why Fundamentals Are Important.................................................................................................20 ............................................................................................................................................................................21 1.14 The Kernel and Daemons...............................................................................................................21 ............................................................................................................................................................................23 1.15 Filenames......................................................................................................................................23 ............................................................................................................................................................................25 1.16 Wildcards......................................................................................................................................25 ............................................................................................................................................................................27 1.17 Filename Extensions.....................................................................................................................27 ............................................................................................................................................................................29 1.18 Who Handles Wildcards?..............................................................................................................29 ............................................................................................................................................................................31 1.19 The Tree Structure of the Filesystem.............................................................................................31 ............................................................................................................................................................................34 1.20 Your Home Directory....................................................................................................................34 ............................................................................................................................................................................35 1.21 Making Pathnames........................................................................................................................35 ............................................................................................................................................................................37 1.22 How UNIX Keeps Track of Files: Inodes......................................................................................37 ............................................................................................................................................................................39 1.23 File Access Permissions.................................................................................................................39 ............................................................................................................................................................................42 1.24 The Superuser (Root).....................................................................................................................42 ............................................................................................................................................................................43 1.25 Access to Directories....................................................................................................................43 1.26 What a Multiuser System Can Do for You....................................................................................44 ............................................................................................................................................................................45 1.27 How Background Processing Works.............................................................................................45 ............................................................................................................................................................................46 1.28 Some Gotchas with Background Processing.................................................................................46 ............................................................................................................................................................................48 1.29 When Is a File Not a File?.............................................................................................................48 ............................................................................................................................................................................49 1.30 Redirecting Input and Output.........................................................................................................49 ............................................................................................................................................................................50 1.31 The X Window System..................................................................................................................50 ............................................................................................................................................................................51 1.32 One Big Hole................................................................................................................................51 ............................................................................................................................................................................52 1.33 UNIX Networking and Communications......................................................................................52 ............................................................................................................................................................................54 1.34 What's Wrong with UNIX.............................................................................................................54 ............................................................................................................................................................................55 2. Logging In.....................................................................................................................................................56 2.1 Customizing the Shell......................................................................................................................56 ............................................................................................................................................................................57 2.2 Shell Setup Files−Which, Where, and Why....................................................................................57 2.2.1 Bourne Shell....................................................................................................................57 2.2.2 C Shell.............................................................................................................................57 2.2.3 Korn Shell........................................................................................................................58 2.2.4 bash.................................................................................................................................58 2.2.5 tcsh..................................................................................................................................58 ............................................................................................................................................................................59 2.3 What Goes in Shell Setup Files?......................................................................................................59 ............................................................................................................................................................................61 2.4 Tip for Changing Account Setup: Keep a Shell Ready...................................................................61 ............................................................................................................................................................................62 2.5 Tips for Speeding up Slow Logins..................................................................................................62 2.5.1 Quick Login.....................................................................................................................62 2.5.2 A Second Alias and Command File.................................................................................63 2.5.3 Once−a−Day Setup..........................................................................................................63 ............................................................................................................................................................................65 2.6 Use Absolute Pathnames in Shell Setup Files.................................................................................65 ............................................................................................................................................................................66 2.7 C Shell Setup Files Aren't Read When You Want Them to Be?.....................................................66 ............................................................................................................................................................................68 2.8 Identifying Login Shells..................................................................................................................68 ............................................................................................................................................................................69 2.9 Speeding Up Your C Shell with set prompt Test.............................................................................69 ............................................................................................................................................................................70 2.10 Gotchas in set prompt Test............................................................................................................70 ............................................................................................................................................................................72 2.11 Faster ksh and bash Startup with $− Test......................................................................................72 .............................................76 2.13 A .cshrc.$HOST File for Per Host Setup.......................................................................................76 ............................................................................................................................................................................77 2.14 motd.diff: Show New Lines in Login Messages............................................................................77 ............................................................................................................................................................................79 2.15 Unclutter Logins: Show Login Messages Just Once.....................................................................79 ............................................................................................................................................................................80 2.16 Approved Shells: Using Unapproved Login Shell.........................................................................80 ............................................................................................................................................................................83 3. Logging Out..................................................................................................................................................84 3.1 Running Commands When You Log Out........................................................................................84 ............................................................................................................................................................................86 3.2 Running Commands at Bourne/Korn Shell Logout.........................................................................86 ............................................................................................................................................................................87 3.3 Electronic Fortune Cookies..............................................................................................................87 ............................................................................................................................................................................88 3.4 Automatic File Cleanup...................................................................................................................88 ............................................................................................................................................................................89 3.5 Stop Accidental C Shell Logouts.....................................................................................................89 ............................................................................................................................................................................90 3.6 Stop Accidental Bourne Shell Logouts............................................................................................90 ............................................................................................................................................................................91 3.7 Detaching a Session with screen......................................................................................................91 ............................................................................................................................................................................92 3.8 What tty Am I On?...........................................................................................................................92 ............................................................................................................................................................................93 4. Organizing Your Home Directory...............................................................................................................94 4.1 What? Me, Organized?....................................................................................................................94 ............................................................................................................................................................................95 4.2 A bin Directory for Your Programs and Scripts..............................................................................95 ............................................................................................................................................................................96 4.3 Organizing Nonexecutable Scripts..................................................................................................96 ............................................................................................................................................................................97 4.4 Directories for Emacs Hacks...........................................................................................................97 ............................................................................................................................................................................98 4.5 Private (Personal) Directories..........................................................................................................98 ............................................................................................................................................................................99 4.6 Naming Files...................................................................................................................................99 ..........................................................................................................................................................................100 4.7 Make More Directories!.................................................................................................................100 ..........................................................................................................................................................................102 4.8 Making Directories Made Easier...................................................................................................102 ..........................................................................................................................................................................104 4.9 Setting Up vi with the .exrc File....................................................................................................104 ..........................................................................................................................................................................105 4.10 Find All Command Versions with whereiz.................................................................................105 5. Setting Up Your Terminal.........................................................................................................................108 5.1 There's a Lot to Know About Terminals.......................................................................................108 ..........................................................................................................................................................................109 5.2 The Idea of a Terminal Database...................................................................................................109 ..........................................................................................................................................................................111 5.3 Setting the Terminal Type When You Log In...............................................................................111 ..........................................................................................................................................................................114 5.4 Setting the TERMCAP Variable with tset.....................................................................................114 ..........................................................................................................................................................................115 5.5 Querying Your Terminal Type: qterm...........................................................................................115 ..........................................................................................................................................................................118 5.6 Checklist: Terminal Hangs When I Log In....................................................................................118 ..........................................................................................................................................................................120 5.7 What termcap and terminfo Do and Don't Control........................................................................120 ..........................................................................................................................................................................121 5.8 Terminal Escape Sequences...........................................................................................................121 ..........................................................................................................................................................................123 5.9 Setting Your Erase, Kill, and Interrupt Characters........................................................................123 ..........................................................................................................................................................................125 5.10 Finding What Terminal Names You Can Use.............................................................................125 ..........................................................................................................................................................................127 5.11 Initializing the Terminal with tset................................................................................................127 ..........................................................................................................................................................................128 5.12 Initializing the Terminal with tput...............................................................................................128 ..........................................................................................................................................................................130 6. Shell and Environment Variables..............................................................................................................131 6.1 What Environment Variables Are Good For.................................................................................131 ..........................................................................................................................................................................133 6.2 Parent−Child Relationships...........................................................................................................133 ..........................................................................................................................................................................134 6.3 Predefined Environment Variables................................................................................................134 ..........................................................................................................................................................................136 6.4 The PATH Environment Variable.................................................................................................136 ..........................................................................................................................................................................138 6.5 PATH and path.............................................................................................................................138 ..........................................................................................................................................................................139 6.6 The TZ Environment Variable.......................................................................................................139 ..........................................................................................................................................................................140 6.7 What Time Is It in Japan?..............................................................................................................140 ..........................................................................................................................................................................141 6.8 Shell Variables..............................................................................................................................141 ..........................................................................................................................................................................143 6.9 Special C Shell Variables...............................................................................................................143 ..........................................................................................................................................................................146 6.10 Running a Command with a Temporarily Different Environment..............................................146 ..........................................................................................................................................................................147 7. Setting Your Shell Prompt.........................................................................................................................148 7.1 Why Change Your Prompt?...........................................................................................................148 7.2 Basics of Setting the Prompt..........................................................................................................149 ..........................................................................................................................................................................150 7.3 C Shell Prompt Causes Problems in vi, rsh, etc............................................................................150 ..........................................................................................................................................................................151 7.4 Faster Prompt Setting with Built−Ins............................................................................................151 ..........................................................................................................................................................................153 7.5 Multiline Shell Prompts.................................................................................................................153 ..........................................................................................................................................................................155 7.6 Session Information in Your Terminal's Status Line.....................................................................155 ..........................................................................................................................................................................157 7.7 A "Menu Prompt" for Naive Users................................................................................................157 ..........................................................................................................................................................................158 7.8 Highlighting in Shell Prompts.......................................................................................................158 ..........................................................................................................................................................................160 7.9 Show Subshell Level with $SHLVL.............................................................................................160 ..........................................................................................................................................................................162 7.10 What Good Is a Blank Shell Prompt?..........................................................................................162 ..........................................................................................................................................................................163 7.11 dirs in Your Prompt: Better than $cwd........................................................................................163 ..........................................................................................................................................................................165 7.12 External Commands Send Signals to Set Variables....................................................................165 ..........................................................................................................................................................................167 7.13 Pre−Prompt Commands in bash..................................................................................................167 ..........................................................................................................................................................................169 8. How the Shell Interprets What You Type................................................................................................170 8.1 What the Shell Does.......................................................................................................................170 ..........................................................................................................................................................................172 8.2 Introduction to bash.......................................................................................................................172 ..........................................................................................................................................................................174 8.3 Introduction to tcsh........................................................................................................................174 ..........................................................................................................................................................................176 8.4 Command Evaluation and Accidentally Overwriting Files...........................................................176 ..........................................................................................................................................................................177 8.5 Command−Line Evaluation...........................................................................................................177 ..........................................................................................................................................................................180 8.6 Output Command−Line Arguments..............................................................................................180 8.6.1 Portability......................................................................................................................180 8.6.2 Making Error Messages.................................................................................................181 ..........................................................................................................................................................................182 8.7 Setting Your Search Path...............................................................................................................182 8.7.1 Setting Path in Shell Setup Files....................................................................................182 8.7.2 Changing Path on the Command Line...........................................................................183 ..........................................................................................................................................................................184 8.8 A Directory for Commands You Shouldn't Run............................................................................184 ..........................................................................................................................................................................186 8.9 Wildcards Inside of Aliases...........................................................................................................186 ..........................................................................................................................................................................187 8.10 eval: When You Need Another Chance.......................................................................................187 8.11 Which One Will bash Use?..........................................................................................................189 ..........................................................................................................................................................................191 8.12 Which One Will the C Shell Use?...............................................................................................191 ..........................................................................................................................................................................193 8.13 Is It "2>&1 file" or "> file 2>&1"? Why?...................................................................................193 ..........................................................................................................................................................................194 8.14 Bourne Shell Quoting..................................................................................................................194 8.14.1 Special Characters........................................................................................................194 8.14.2 How Quoting Works....................................................................................................194 8.14.3 Single Quotes Inside Single Quotes?...........................................................................196 8.14.4 Multiline Quoting........................................................................................................196 ..........................................................................................................................................................................198 8.15 Differences Between Bourne and C Shell Quoting.....................................................................198 8.15.1 Special Characters........................................................................................................198 8.15.2 How Quoting Works....................................................................................................198 ..........................................................................................................................................................................200 8.16 Quoting Handles Special Characters in Filenames......................................................................200 ..........................................................................................................................................................................201 8.17 verbose and echo Variables Show Quoting.................................................................................201 ..........................................................................................................................................................................202 8.18 Here Documents..........................................................................................................................202 ..........................................................................................................................................................................204 8.19 "Special" Characters and Operators.............................................................................................204 ..........................................................................................................................................................................207 8.20 How Many Backslashes?.............................................................................................................207 ..........................................................................................................................................................................209 9. Saving Time on the Command Line..........................................................................................................210 9.1 What's Special About the UNIX Command Line..........................................................................210 ..........................................................................................................................................................................212 9.2 Fix a Line Faster with Line−Kill and Word−Erase.......................................................................212 ..........................................................................................................................................................................213 9.3 Reprinting Your Command Line with CTRL−r............................................................................213 ..........................................................................................................................................................................214 9.4 Use Wildcards to Create Files?......................................................................................................214 ..........................................................................................................................................................................215 9.5 Build Strings with { } ...................................................................................................................215 ..........................................................................................................................................................................217 9.6 String Editing (Colon) Operators...................................................................................................217 ..........................................................................................................................................................................220 9.7 String Editing in ksh and bash.......................................................................................................220 ..........................................................................................................................................................................222 9.8 Filename Completion: Faster Filename Typing............................................................................222 ..........................................................................................................................................................................224 9.9 Don't Match Useless Files in Filename Completion......................................................................224 ..........................................................................................................................................................................225 9.10 Filename Completion Isn't Always the Answer..........................................................................225 ..........................................................................................................................................................................226 9.11 Repeating a Command with a foreach Loop................................................................................226 9.12 The Bourne Shell for Loop..........................................................................................................228 ..........................................................................................................................................................................230 9.13 Multiline Commands, Secondary Prompts..................................................................................230 ..........................................................................................................................................................................232 9.14 Using Here Documents for Form Letters, etc..............................................................................232 ..........................................................................................................................................................................233 9.15 Throwaway Scripts for Complicated Commands........................................................................233 ..........................................................................................................................................................................234 9.16 Command Substitution................................................................................................................234 ..........................................................................................................................................................................236 9.17 Handling Lots of Text with Temporary Files..............................................................................236 ..........................................................................................................................................................................237 9.18 Process Substitution....................................................................................................................237 9.18.1 bash Process Substitution.............................................................................................237 9.18.2 Automatic Temporary Files with !...............................................................................238 ..........................................................................................................................................................................240 9.19 For the Impatient: Type−Ahead...................................................................................................240 ..........................................................................................................................................................................242 9.20 Too Many Files for the Command Line......................................................................................242 ..........................................................................................................................................................................244 9.21 Handle Too−Long Command Lines with xargs..........................................................................244 ..........................................................................................................................................................................246 9.22 xargs: Problems with Spaces and Newlines.................................................................................246 ..........................................................................................................................................................................248 9.23 Workaround for "Arguments too long" Error..............................................................................248 ..........................................................................................................................................................................249 9.24 Get File List by Editing Output of ls −l, grep, etc.......................................................................249 9.24.1 What Files Have I Just Edited?....................................................................................249 9.24.2 Search for Text with grep............................................................................................250 ..........................................................................................................................................................................252 9.25 The C Shell repeat Command......................................................................................................252 ..........................................................................................................................................................................254 9.26 Expect.........................................................................................................................................254 9.26.1 Dialback.......................................................................................................................254 9.26.2 Automating /bin/passwd..............................................................................................255 9.26.3 Testing: A Story...........................................................................................................256 9.26.4 Other Problems............................................................................................................256 ..........................................................................................................................................................................257 10. Aliases........................................................................................................................................................258 10.1 Creating Custom Commands.......................................................................................................258 ..........................................................................................................................................................................259 10.2 Aliases for Common Commands.................................................................................................259 10.2.1 Simple Aliases.............................................................................................................259 10.2.2 Using More Complex Aliases......................................................................................259 10.2.3 Setting Aliases Automatically, Unsetting Aliases.......................................................260 ..........................................................................................................................................................................262 10.3 C Shell Aliases with Command−Line Arguments.......................................................................262 ..........................................................................................................................................................................264 10.4 Aliases in ksh and bash................................................................................................................264 10.5 Sourceable Scripts........................................................................................................................265 ..........................................................................................................................................................................267 10.6 Avoiding C Shell Alias Loops.....................................................................................................267 ..........................................................................................................................................................................269 10.7 How to Put if−then−else in a C Shell Alias.................................................................................269 ..........................................................................................................................................................................270 10.8 Fix Quoting in csh Aliases with makealias and quote.................................................................270 ..........................................................................................................................................................................271 10.9 Shell Functions...........................................................................................................................271 ..........................................................................................................................................................................272 10.10 Simulated Bourne Shell Functions and Aliases.........................................................................272 ..........................................................................................................................................................................273 11. The Lessons of History............................................................................................................................274 11.1 The Lessons of History................................................................................................................274 ..........................................................................................................................................................................276 11.2 History in a Nutshell....................................................................................................................276 ..........................................................................................................................................................................278 11.3 My Favorite Is !$.........................................................................................................................278 ..........................................................................................................................................................................279 11.4 My Favorite Is !:n*......................................................................................................................279 ..........................................................................................................................................................................280 11.5 My Favorite Is ^^.........................................................................................................................280 ..........................................................................................................................................................................281 11.6 Using !$ for Safety with Wildcards.............................................................................................281 ..........................................................................................................................................................................282 11.7 History Substitutions...................................................................................................................282 ..........................................................................................................................................................................287 11.8 Repeating a Cycle of Commands.................................................................................................287 ..........................................................................................................................................................................288 11.9 Running a Series of Commands on a File....................................................................................288 ..........................................................................................................................................................................289 11.10 Check Your History First with :p..............................................................................................289 ..........................................................................................................................................................................290 11.11 Picking Up Where You Left Off................................................................................................290 11.11.1 bash and ksh...............................................................................................................290 11.11.2 C Shell........................................................................................................................291 ..........................................................................................................................................................................292 11.12 Pass History to Another Shell....................................................................................................292 ..........................................................................................................................................................................293 11.13 Shell Command−Line Editing...................................................................................................293 ..........................................................................................................................................................................295 11.14 More Ways to Do Interactive History Editing...........................................................................295 11.14.1 In the C Shell: redo....................................................................................................295 11.14.2 In ksh and bash: fc.....................................................................................................296 ..........................................................................................................................................................................297 11.15 Changing C Shell History Characters with histchars.................................................................297 ..........................................................................................................................................................................298 11.16 Instead of Changing History Characters....................................................................................298 12. Job Control...............................................................................................................................................300 12.1 Job Control: Work Faster, Stop Runaway Jobs...........................................................................300 12.1.1 Foreground and Background.......................................................................................300 ..........................................................................................................................................................................303 12.2 Other Ways to Refer to Jobs........................................................................................................303 ..........................................................................................................................................................................305 12.3 The "Current Job" Isn't Always What You Expect......................................................................305 ..........................................................................................................................................................................306 12.4 Job Control and autowrite: Real Time Savers!............................................................................306 ..........................................................................................................................................................................307 12.5 System Overloaded? Try Stopping Some Jobs............................................................................307 ..........................................................................................................................................................................308 12.6 Notification When Jobs Change State.........................................................................................308 ..........................................................................................................................................................................309 12.7 Stop Background Output with stty tostop....................................................................................309 ..........................................................................................................................................................................310 12.8 Job Control in a Nutshell.............................................................................................................310 ..........................................................................................................................................................................312 12.9 Running Multiple Shell Sessions with screen..............................................................................312 ..........................................................................................................................................................................314 13. Redirecting Input and Output.................................................................................................................315 13.1 Using Standard Input and Output................................................................................................315 ..........................................................................................................................................................................318 13.2 One Argument with a cat Isn't Enough........................................................................................318 ..........................................................................................................................................................................319 13.3 Send (only) Standard Error Down a Pipe....................................................................................319 ..........................................................................................................................................................................320 13.4 Problems Piping to a Pager..........................................................................................................320 ..........................................................................................................................................................................322 13.5 Redirection in C Shell: Capture Errors, Too?..............................................................................322 ..........................................................................................................................................................................323 13.6 Safe I/O Redirection with noclobber...........................................................................................323 ..........................................................................................................................................................................325 13.7 The () Subshell Operators............................................................................................................325 13.7.1 Combining Several Commands...................................................................................325 13.7.2 Temporary Change of Directory and Environment.....................................................325 ..........................................................................................................................................................................327 13.8 Using {list} to Group Bourne Shell Commands..........................................................................327 ..........................................................................................................................................................................329 13.9 Send Output Two or More Places with tee..................................................................................329 ..........................................................................................................................................................................330 13.10 How to tee Several Commands Into One File...........................................................................330 ..........................................................................................................................................................................331 13.11 tpipe−Redirecting stdout to More than One Place.....................................................................331 ..........................................................................................................................................................................333 13.12


网友评论

  • 很好,可以看
  • 对UNIX下的常用工具介绍的很详尽
  • 非常好的一本书!
  • 案头常备的资料!
  • 非常经典,很完整
  • 可是怎么打不开呢,有版本限制吗
  • 有用。可以看看。
  • LS的,E文不好,慢慢看,习惯了就好。这本书不错!
  • 很不错的一本书,讲解很详细,注意是英文的。
  • 一起爱你一直在用Linux,最近接触一些更纯正一些的Unix,像FreeBSD,AIX,还真不是太适应啊,这本书应该可以帮到我
  • 很有用,慢慢看
  • 比较有用,实例比较少
  • 非常经典,很完整
  • 英文不行啊,得慢慢看