- 支持试读
第1章:引言
Shell 是一个命令解释器。它不仅是操作系统内核和用户之间的绝缘层,更是一种功能强大的编程语言。Shell 程序(也称为脚本 )是一种易于使用的工具,它通过将系统调用、工具、实用程序和编译后的二进制文件 “粘合”在一起, 来构建应用程序。几乎所有 UNIX 命令、实用程序和工具都可以通过 Shell 脚本调用。不仅如此,Shell 内部命令(例如测试和循环结构)还为脚本赋予了额外的功能和灵活性。Shell 脚本尤其适用于管理系统任务和其他不需要复杂复杂编程语言的例行重复性任务。 - 支持试读
第2章:以 Sha-Bang 引出序幕
这里的 Sha-Bang 是计算机领域的专用术语,指脚本开头第一行的 `#! `符号(由 `# (Sharp)` 和 `! (Bang)` 缩写而来)。在中文技术文档中,通常音译为“释伴”或者直接保留英文。这个标题极具幽默感,因为它双关了英文短语 "Starting off with a bang"(轰轰烈烈地开始)。
第1章:引言
- 4
- 2026-05-06 10:49:36
Shell 是一个命令解释器。它不仅是操作系统内核和用户之间的绝缘层,更是一种功能强大的编程语言。Shell 程序(也称为脚本 )是一种易于使用的工具,它通过将系统调用、工具、实用程序和编译后的二进制文件 “粘合”在一起, 来构建应用程序。几乎所有 UNIX 命令、实用程序和工具都可以通过 Shell 脚本调用。不仅如此,Shell 内部命令(例如测试和循环结构)还为脚本赋予了额外的功能和灵活性。Shell 脚本尤其适用于管理系统任务和其他不需要复杂复杂编程语言的例行重复性任务。
Shell 编程!
对于任何希望在系统管理领域达到一定专业水准的人来说,掌握 Shell 脚本知识都是必不可少的,即便他们并不打算亲自编写脚本。请考虑以下场景:在 Linux 机器启动时,它会执行 /etc/rc.d 目录下的 Shell 脚本,以此来恢复系统配置并启动各项服务。深入理解这些启动脚本,对于分析系统行为以及根据需要进行定制化修改至关重要。
Shell 脚本是一种构建复杂应用原型的“快糙猛”(quick-and-dirty)方法。在项目开发初期,通过脚本实现应用的部分功能子集通常是非常有益的。通过这种方式,可以在进入 C、C++、Rust、Java、Perl 或 Python 的最终编码阶段之前,测试并反复推敲程序的结构,并发现主要的潜在风险。
正如赫伯特·迈耶(Herbert Mayer)所言:“一门实用的语言需要具备数组、指针以及构建数据结构的通用机制。”按照这些标准,Shell 脚本在“实用性”方面似乎略显不足。或者,事实并非如此……
我们将使用 Bash。Bash 是“Bourne-Again shell”的首字母缩略词,也是对 Stephen Bourne 创作的现已成为经典的 Bourne shell 的双关语戏称。在大多数 UNIX 衍生版本中,Bash 已成为 Shell 脚本编写的事实标准。本书涵盖的大部分原则同样适用于其他 Shell 的脚本编写,例如 Bash 借鉴了其部分特性的 Korn Shell,以及 C Shell 及其变体。(注意,由于存在某些固有问题,不建议使用 C Shell 进行编程,正如 Tom Christiansen 在 1993 年 10 月的一篇 Usenet 帖子中所指出的那样。)
