没有合适的资源?快使用搜索试试~ 我知道了~
Bash参考手册.pdf
资源推荐
资源详情
资源评论
Bash Reference Manual
Reference Documentation for Bash
Edition 5.2, for Bash Version 5.2.
September 2022
Chet Ramey, Case Western Reserve University
Brian Fox, Free Software Foundation
This text is a brief description of the features that are present in the Bash shell (version
5.2, 19 September 2022).
This is Edition 5.2, last updated 19 September 2022, of The GNU Bash Reference Manual,
for Bash, Version 5.2.
Copyright
c
1988–2022 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document under the
terms of the GNU Free Documentation License, Version 1.3 or any later version
published by the Free Software Foundation; with no Invariant Sections, no
Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included
in the section entitled “GNU Free Documentation License”.
i
Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 What is Bash?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 What is a shell? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3 Basic Shell Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1 Shell Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.1 Shell Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1.2 Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2.1 Escape Character . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2.2 Single Quotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2.3 Double Quotes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2.4 ANSI-C Quoting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.1.2.5 Locale-Specific Translation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3.1.3 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Shell Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 Reserved Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2 Simple Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.3 Pipelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.4 Lists of Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2.5 Compound Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.5.1 Looping Constructs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2.5.2 Conditional Constructs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2.5.3 Grouping Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.6 Coprocesses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2.7 GNU Parallel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3 Shell Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.4 Shell Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.1 Positional Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4.2 Special Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5 Shell Expansions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5.1 Brace Expansion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.5.2 Tilde Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5.3 Shell Parameter Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.5.4 Command Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.5.5 Arithmetic Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.5.6 Process Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.5.7 Word Splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5.8 Filename Expansion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5.8.1 Pattern Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.5.9 Quote Removal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
ii
3.6 Redirections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.6.1 Redirecting Input. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6.2 Redirecting Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6.3 Appending Redirected Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
3.6.4 Redirecting Standard Output and Standard Error . . . . . . . . . 40
3.6.5 Appending Standard Output and Standard Error . . . . . . . . . 40
3.6.6 Here Documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.6.7 Here Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6.8 Duplicating File Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6.9 Moving File Descriptors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.6.10 Opening File Descriptors for Reading and Writing . . . . . . . 41
3.7 Executing Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.7.1 Simple Command Expansion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.7.2 Command Search and Execution . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.7.3 Command Execution Environment . . . . . . . . . . . . . . . . . . . . . . . . 43
3.7.4 Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.7.5 Exit Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.7.6 Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.8 Shell Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4 Shell Builtin Commands. . . . . . . . . . . . . . . . . . . . . . . 48
4.1 Bourne Shell Builtins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2 Bash Builtin Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3 Modifying Shell Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.3.1 The Set Builtin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.3.2 The Shopt Builtin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.4 Special Builtins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5 Shell Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.1 Bourne Shell Variables. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.2 Bash Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
6 Bash Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.1 Invoking Bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.2 Bash Startup Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.3 Interactive Shells . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.3.1 What is an Interactive Shell? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.3.2 Is this Shell Interactive? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.3.3 Interactive Shell Behavior. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.4 Bash Conditional Expressions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.5 Shell Arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
6.6 Aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.7 Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.8 The Directory Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.8.1 Directory Stack Builtins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.9 Controlling the Prompt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
6.10 The Restricted Shell. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
iii
6.11 Bash POSIX Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.12 Shell Compatibility Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7 Job Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.1 Job Control Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.2 Job Control Builtins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.3 Job Control Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
8 Command Line Editing. . . . . . . . . . . . . . . . . . . . . . . 117
8.1 Introduction to Line Editing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.2 Readline Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
8.2.1 Readline Bare Essentials . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.2.2 Readline Movement Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 118
8.2.3 Readline Killing Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.2.4 Readline Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.2.5 Searching for Commands in the History . . . . . . . . . . . . . . . . . . 119
8.3 Readline Init File. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.3.1 Readline Init File Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
8.3.2 Conditional Init Constructs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
8.3.3 Sample Init File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
8.4 Bindable Readline Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.4.1 Commands For Moving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.4.2 Commands For Manipulating The History . . . . . . . . . . . . . . . 134
8.4.3 Commands For Changing Text. . . . . . . . . . . . . . . . . . . . . . . . . . . 136
8.4.4 Killing And Yanking. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
8.4.5 Specifying Numeric Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . 138
8.4.6 Letting Readline Type For You . . . . . . . . . . . . . . . . . . . . . . . . . . 139
8.4.7 Keyboard Macros. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.4.8 Some Miscellaneous Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 141
8.5 Readline vi Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
8.6 Programmable Completion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
8.7 Programmable Completion Builtins . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8.8 A Programmable Completion Example. . . . . . . . . . . . . . . . . . . . . . . . 150
9 Using History Interactively . . . . . . . . . . . . . . . . . . 152
9.1 Bash History Facilities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
9.2 Bash History Builtins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
9.3 History Expansion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.3.1 Event Designators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
9.3.2 Word Designators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
9.3.3 Modifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
剩余195页未读,继续阅读
资源评论
傻啦嘿哟
- 粉丝: 3478
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功