GNU Bash参考手册

摘要:这是《GNU Bash参考手册》的翻译版,英文原版最后更新于2025年5月18日,适用于Bash 5.3版本。

版权:Copyright © 1988–2025 Free Software Foundation, Inc.
根据GNU自由文档许可证(版本1.3或自由软件基金会发布的任何后续版本)的条款,允许复制、分发和修改本文档;不包含不变章节、无封面文本和无封底文本。许可证副本包含在名为“GNU自由文档许可证”的部分中。

原版Bash Features https://www.gnu.org/software/bash/manual/bash.html

译者:Luohuan,2025.8.13,Email feibinglh_83@foxmail.com

说明:此翻译以英文原版为基础,加入了部分译者的实践与理解。译者水平有限,错漏之处,敬请指正。


1 简介

1.1 Bash是什么?

  ​Bash是GNU操作系统的shell,即命令语言解释器。其名称“Bourne-Again SHell”是一个缩写形式的双关语,致敬了Stephen Bourne——第七版贝尔实验室研究版Unix中出现的现代Unix shell(sh)的先驱作者。

  Bash与sh高度兼容,并融合了Korn shell(ksh)和C shell(csh)的实用功能。它旨在遵循IEEE POSIX规范中Shell与工具部分的标准(IEEE标准1003.1),在交互与编程场景下均提供了优于sh的功能改进。

  尽管GNU操作系统提供其他shell(包括csh的版本),Bash仍是默认shell。与其他GNU软件一样,Bash具有高度可移植性,目前几乎支持所有Unix版本及部分其他操作系统,更有独立开发者实现了Windows等平台的移植版本。

1.2 Shell是什么?

  从本质上说,Shell 是一种通过执行命令来实现功能的宏处理器。所谓宏处理器,是指能够将文本和符号展开以构建更复杂表达式的功能体系。

​  Unix shell 既是命令解释器,也是编程语言。作为命令解释器,它为用户调用丰富的 GNU 工具集提供了交互界面;而作为编程语言,其特性允许将这些工具灵活组合。用户可创建包含命令的文件,这些文件本身就会成为新命令。这些新命令与 /bin 等目录中的系统命令具有同等地位,使得用户或用户组能够构建定制化环境来实现常规任务自动化。

​  Shell 既支持交互式也支持非交互式运行。在交互模式下,它接收来自键盘的输入;非交互运行时,则执行来自文件或字符串的命令。Shell 能够同步或异步执行 GNU 命令:同步命令会等待执行完毕再接收新输入,异步命令则与 Shell 后续读取执行的命令并行运行。通过重定向机制,用户可精细控制命令的输入输出,还能管理命令执行环境的内容。

​  Shell 还提供少量内置命令(builtins),用于实现独立工具难以完成的功能。例如 cd、break、continue 和 exec 等命令必须通过 Shell 直接操控自身环境,无法由外部工具实现;而 history、getopts、kill 或 pwd 等内置命令虽可通过独立工具实现,但作为内置功能使用更为便捷(所有内置命令将在后续章节详述)。

​  虽然命令执行是核心功能,但 Shell 的强大能力(与复杂性)主要源于其内嵌的编程语言特性。与所有高级语言类似,Shell 提供变量、流程控制结构、引用机制和函数等功能。针对交互使用场景,Shell 还专门开发了有别于编程增强特性的实用功能,包括作业控制、命令行编辑、命令历史记录和别名系统。本手册将详细阐述 Bash 如何实现这些功能体系。


上一章  (无) 下一章​​  2 术语
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐