This refreshed edition serves as the most valuable guide yet to the bash shell. It's full of practical examples of shell commands and programs guaranteed to make everyday use of Linux that much easier. Includes information on key bindings, command line editing and processing, integrated programming features, signal handling, and much more!
O'Reilly's bestselling book on Linux's bash shell is at it again. Now that Linux is an established player both as a server and on the desktop Learning the bash Shell has been updated and refreshed to account for all the latest changes. Indeed, this third edition serves as the most valuable guide yet to the bash shell. As any good programmer knows, the first thing users of the Linux operating system come face to face with is the shell the UNIX term for a user interface to the system. In other words, it's what lets you communicate with the computer via the keyboard and display. Mastering the bash shell might sound fairly simple but it isn't. In truth, there are many complexities that need careful explanation, which is just what Learning the bash Shell provides. If you are new to shell programming, the book provides an excellent introduction, covering everything from the most basic to the most advanced features. And if you've been writing shell scripts for years, it offers a great way to find out what the new shell offers. Learning the bash Shell is also full of practical examples of shell commands and programs that will make everyday use of Linux that much easier. With this book, programmers will learn:
* How to install bash as your login shell
* The basics of interactive shell use, including UNIX file and directory structures, standard I/O, and background jobs
* Command line editing, history substitution, and key bindings
* How to customize your shell environment without programming
* The nuts and bolts of basic shell programming, flow control structures, command-line options and typed variables
* Process handling, from job control to processes, coroutines and subshells
* Debugging techniques, such as trace and verbose modes
* Techniques for implementing system-wide shell customization and features related to system security
......(更多)
......(更多)
Copyright
Preface
bash Versions
Summary of bash Features
Intended Audience
Code Examples
Chapter Summary
Conventions Used in This Handbook
We'd Like to Hear from You
Using Code Examples
Safari Enabled
Acknowledgments for the First Edition
Acknowledgments for the Second Edition
Acknowledgments for the Third Edition
Chapter 1. bash Basics
Section 1.1. What Is a Shell?
Section 1.2. Scope of This Book
Section 1.3. History of UNIX Shells
Section 1.4. Getting bash
Section 1.5. Interactive Shell Use
Section 1.6. Files
Section 1.7. Input and Output
Section 1.8. Background Jobs
Section 1.9. Special Characters and Quoting
Section 1.10. Help
Chapter 2. Command-Line Editing
Section 2.1. Enabling Command-Line Editing
Section 2.2. The History List
Section 2.3. emacs Editing Mode
Section 2.4. vi Editing Mode
Section 2.5. The fc Command
Section 2.6. History Expansion
Section 2.7. readline
Section 2.8. Keyboard Habits
Chapter 3. Customizing Your Environment
Section 3.1. The .bash_profile, .bash_logout, and .bashrc Files
Section 3.2. Aliases
Section 3.3. Options
Section 3.4. Shell Variables
Section 3.5. Customization and Subprocesses
Section 3.6. Customization Hints
Chapter 4. Basic Shell Programming
Section 4.1. Shell Scripts and Functions
Section 4.2. Shell Variables
Section 4.3. String Operators
Section 4.4. Command Substitution
Section 4.5. Advanced Examples: pushd and popd
Chapter 5. Flow Control
Section 5.1. if/else
Section 5.2. for
Section 5.3. case
Section 5.4. select
Section 5.5. while and until
Chapter 6. Command-Line Options and Typed Variables
Section 6.1. Command-Line Options
Section 6.2. Typed Variables
Section 6.3. Integer Variables and Arithmetic
Section 6.4. Arrays
Chapter 7. Input/Output and Command-Line Processing
Section 7.1. I/O Redirectors
Section 7.2. String I/O
Section 7.3. Command-Line Processing
Chapter 8. Process Handling
Section 8.1. Process IDs and Job Numbers
Section 8.2. Job Control
Section 8.3. Signals
Section 8.4. trap
Section 8.5. Coroutines
Section 8.6. Subshells
Section 8.7. Process Substitution
Chapter 9. Debugging Shell Programs
Section 9.1. Basic Debugging Aids
Section 9.2. A bash Debugger
Chapter 10. bash Administration
Section 10.1. Installing bash as the Standard Shell
Section 10.2. Environment Customization
Section 10.3. System Security Features
Chapter 11. Shell Scripting
Section 11.1. What's That Do?
Section 11.2. Starting Up
Section 11.3. Potential Problems
Section 11.4. Don't Use bash
Chapter 12. bash for Your System
Section 12.1. Obtaining bash
Section 12.2. Unpacking the Archive
Section 12.3. What's in the Archive
Section 12.4. Who Do I Turn to?
Appendix A. Related Shells
Section A.1. The Bourne Shell
Section A.2. The IEEE 1003.2 POSIX Shell Standard
Section A.3. The Korn Shell
Section A.4. pdksh
Section A.5. zsh
Section A.6. Shell Clones and Unix-like Platforms
Appendix B. Reference Lists
Section B.1. Invocation
Section B.2. Prompt String Customizations
Section B.3. Built-In Commands and Reserved Words
Section B.4. Built-In Shell Variables
Section B.5. Test Operators
Section B.6. set Options
Section B.7. shopt Options
Section B.8. I/O Redirection
Section B.9. emacs Mode Commands
Section B.10. vi Control Mode Commands
Appendix C. Loadable Built-Ins
Appendix D. Programmable Completion
Colophon
Index
......(更多)
Command-Line Processing
he shell's job, then, is to translate the user's command lines into operating system instructions.
......(更多)