1 简介
•什么是Bash:Bash的一个简短的描述。
•什么是shell?:简要介绍了shell。
1.1 什么是Bash?
Bash是GNU操作系统的shell,或命令语言解释器。这个名字是“Bourne-Again Shell“的首字母缩写,这是一个双关语,作者是当前的Unix中使用的sh的上一版本shell的作者——斯蒂芬·伯恩,最早发布于贝尔实验室基础科学研究院的Unix第七版。
Bash大致与sh兼容,并采纳了一些来自Korn shell (ksh)和C shell(csh)的有用的功能。它的目的是成为符合IEEE POSIX Shell和IEEE POSIX规范(IEEE标准1003.1)工具部分的一个实现。它提供了对于sh在交互和编程功能上的改进。
Bash是GNU操作系统的默认shell,同时GNU操作系统也提供其他shell,比如csh。与其他GNU软件一样,Bash是相当精巧。目前可以运行在几乎每一个版本的Unix上,它也运行在一些其它的操作系统 , 例如MS-DOS,OS / 2和Windows平台上——当然是由其他机构提供支持的。
1.2什么是shell?
基本上来说,shell是执行命令的宏处理器。宏处理器是指把文字和符号扩展以创建更大的表达式的功能。
一个UNIX shell既是命令解释器也是编程语言。作为一个命令解释器,shell提供了一套丰富的GNU工具的用户界面。编程语言的特性让这些实用程序可以相互结合。可以创建包含很多命令的文件,而这个文件也可以成为新的命令。这些新的命令和系统命令(例如位于/bin目录中的命令)具有相同的地位,允许用户建立自定义的环境,以及自动化日常任务。
shell即可以交互式使用,也可以非交互方式使用。在交互模式下,shell接受用户从键盘的输入内容。当非交互式执行时,shell执行从文件中读取的命令。
shell允许同步和异步的执行GNU命令。 shell等待同步命令完成后再接受更多的输入命令;异步命令在shell读取和执行其他命令的同时,继续并行执行异步命令。重定向结构允许细粒度的控制这些命令的输入和输出。此外,shell允许控制命令的环境方面的内容。
shell还提供了一个小的内置命令的集合(内建命令集),实现那些通过独立的程序不方便或者不可能实现的功能。例如,(cd
,break
,continue
, 和exec
)无法在shell之外来实现,因为他们直接处理shell本身。history
,getopts
,kill
, 以及pwd 等其他
内建命令,虽然可以在独立程序中实现,但作为内置命令更方便使用。后面的章节中将描述所有的shell内建命令。
执行命令是shell的基础功能,大部分shell的能力(和复杂性)是来自于它内嵌的编程语言。象任何高级语言一样,shell具有变量,流程控制结构,引用和函数。
shell提供的交互性不仅限于编程语言的参数等等。交互功能还包括作业控制,命令行编辑,命令历史和别名。本手册中也会描述这些功能。
原文链接:http://www.gnu.org/software/bash/manual/bash.html#Introduction