当前位置: 首页 > 文档资料 > BASH 中文文档 >

第一章 总体介绍

优质
小牛编辑
115浏览
2023-12-01

1.1 什么是 Bash?

Bash 是一个用于 GUI 操作系统的 Shell,也就是命令解释器。这个名字是 Borune-Again SHell 的缩略词,意在调侃斯蒂芬·波恩,他写的 sh 是目前 Unix 命令行解释器的前身,最初出现于被贝尔实验室研究用 Unix 的第七版。

Bash 整体上保持与 sh 兼容,并且从科恩 Shell ksh 和 C Shell csh 引进了一些有用的功能。它的设计力求遵循 IEEE POSIX 规范中的《Shell 和实用工具》一节 ( IEEE 标准第 1003.1 ) 的规范,并且在交互和编程运行两方面对 sh 做了功能上的改进。

虽然 GUI 操作系统还提供了其它 Shell,包括 csh 的一个版本,但 Bash 是默认的 Shell。此外 Bash 和其它 GUI 程序一样,具有很好的移植性。它目前几乎能在任何版本的 Unix 和一些其它操作系统上运行,并且在 MS-DOS、OS/2 和 Windows 等平台上还有独立维护的移植版本。

1.2 什么是 Shell?

从本质上来说,Shell 是一个能执行各种命令的宏处理器。这里宏处理是指扩展文本和符号以创建更大的表达式的功能。

Unix Shell 不仅是一个命令解释器,还是一种编程语言。作为命令解释器,Shell 提供了包含众多 GUI 实用工具的用户界面。可编程的特性使得这些实用工具能够被组织起来。可以创建包含若干命令的文件,而这些文件本身又可以作为命令。这些命令和 /bin 等目录下的系统命令具有同等的地位,从而使得用户和用户组能定制运行环境并自动完成他们的常规任务。

Shell 还提供了少量的内部命令 (称为 builtin),它们实现的功能是外部工具不方便或者不可能完成的。例如 cd、break、continue 和 exec,它们不能通过 Shell 以外的方式实现,因为它们要直接操纵 Shell 本身。而诸如 history、getopts、kill 或 pwd 等内部命令,虽然可以在外部单独实现,但是作为内部命令会更便于使用。所有这些内部命令都将在后续章节中介绍。

虽然执行命令是其关键任务,Shell 的强大 (和灵活) 之处却在于其中内置了编程语言。和其它高级语言一样,Shell 提供了变量、流程控制结构、引用(这里是指字符串周围的引号 (quotes),而不是如 C++ 中那样的对象地址的引用 — 后者叫 reference。)和函数。

Shell 提供了一些专为交互式使用而设计的功能,它们不是为了增强 Shell 的编程特性。这些交互式的功能包括作业控制、命令行编辑、命令行历史以及 (命令) 别名。所有这些功能都将在本手册中一一介绍。