这个文本是一个在Bash shell中出现的特性进行摘要性的描述 (3.2版本, 2006 九月 28).
这个文本的版本是 3.2, 最后更新于 2006年 九月 28,
这个GNU Bash 参考手册,
用于 Bash
3.2 版本.
Bash 包含了其他shell中所拥有的特性,以及Bash 所独有的. shell中的一些也包括Bash拥有来源于 Bourne Shell的虚终端概念 (sh), Korn Shell (ksh), 以及 C-shell (csh 以及他的继承者, tcsh). 伴随着目录暂停的特性根源于 某类shell中的灵感.
这个手册意味着是一个简短介绍能在Bash中出现的特性. Bash 手册页将要准确的提及及运用于shell 行为中.
Bash 是一种 shell, 还是命令解析性语言,
为 gnu 运行的系统.
这个名字是来至于 ‘Bourne-Again SHell’的首字母 ,
a pun on Stephen Bourne, 作者是当前流行的 Unix shell sh
的始祖,
出现在 贝尔实验室的 Unix 的第七个测试版.
Bash 是一个大量整合了 sh
以及结合了来至于
Korn shell ksh
and the C shell csh
有用的特性.
他意味着遵守执行 ieee
posix Shell 标准和ieee posix的工具部分的规范
(ieee 标准 1003.1).
他在程序使用和交互式上提供了功能上巨大改进版的 sh
.
当在 gnu 操作系统提供其他 shells 中, 包括了一个 csh
, Bash 是默认的 shell.
就像其他的 gnu 软件一样, Bash 十分的便捷. 这是普遍运行在 Unix 的相近版本和一少部分的去他操作系统中 −
独立的-支持 ms-dos, os/2,
and Windows 平台 的接口.
在他的基础上, shell 是一个简单的用于执行命令行的宏处理进程 .. 术语 “宏处理进程” 意义是 在功能性上的文本和标记被扩大为创建更大的表达式.
Unix shell 是一个命令解析程序和程序语言. 正如一个命令解析程序一样, shell 提供用户界面 用于设置丰富的 gnu应用 . 程序语言的特性允许这些应用于被组合起来. 文件包含命令能被建立, 和 他们自身变成命令. 这些新命令有同样的状态就像位于 /bin的系统命令一样, 允许 用户或者组去订制环境为了自动化操作他们的相同任务.
Shells 可能被用于交互式或者非交互式中. 在交互式模式中,他们接收来自键盘的打印输入. 当在执行非交互式中, shells 会从一个文件中读取命令.
shell 允许执行 gnu 特有的命令, 以及同步和非同步的. shell 在接收更多地输入之前将等待同步命令的完成; 当shell在执行附加命令时,异步命令与之并行的继续执行中.. 管道 建立允许原子控制着那些输入和输出,通过那些命令 . 而且, shell 允许控制大量包含命令的环境.
Shells 也提供一套很小的 嵌入式命令 (builtins) 执行不可能的功能
或者不便于通过个别应用中获得的那些功能.
比如, cd
, break
, continue
, and
exec
)并不能在shell的外部执行,因为他们直接的操作对象是 shell 本身.
历史
, getopts
, kill
, 或者 pwd
builtins, 除此以外, 能被从分离的应用中执行,
但是他们更多便捷的去使用就像 builtin 命令.
所有的 shell builtins 都被并发的部分记录.
执行命令是其本质, shells 最大能力 (以及 复杂性) 是归于他们植入的程序语言. 正如任何高级语言一样, shell 提供 变量, 流控制建立, 应用, 和函数.
Shells 提供特性连接明确的交互式利用胜过增强程序语言. 这些交互式特性包含了作业控制, 命令行编辑 , 命令历史和别名. 这些各种各样的特性将会 记录在这个手册中.