Unix Bourne Shell
本文来源 : 腾讯元宝
Unix Bourne Shell(简称sh)是Unix系统中最经典的命令行解释器(shell),由Stephen Bourne于1977年在贝尔实验室开发,并成为后续众多shell(如bash、ksh等)的基础。以下是其核心特点:
1. 基本特性
- 命令解释与脚本编程:既是交互式命令行工具,也支持编写脚本实现自动化任务。
- 简洁高效:语法设计简洁,适合系统管理和脚本编程,但交互功能较弱(如无命令历史)。
- POSIX兼容:遵循POSIX标准,脚本可跨Unix-like系统移植。
2. 关键功能
- 管道与重定向:支持
|
管道和> / >>
重定向,灵活组合命令。 - 环境变量:通过
/etc/profile
和$HOME/.profile
配置文件定制环境。 - 流程控制:提供
if
、while
等结构,支持复杂逻辑。
3. 与其他Shell的关系
- Bash(Bourne Again Shell):扩展了sh的功能(如命令补全、历史记录),但仍兼容sh语法。
- Dash:轻量级sh实现,注重速度,常用于Debian/Ubuntu的
/bin/sh
。 - Korn Shell(ksh):结合sh的语法与C shell的交互特性。
4. 应用场景
- 系统管理:启动脚本(如
/etc/init.d
)常用sh编写以保证兼容性。 - 嵌入式系统:轻量级衍生版(如ash)用于资源受限环境。
常见问题
- 权限错误:需用
chmod +x script.sh
赋予执行权限。 - 脚本兼容性:若标记
#!/bin/sh
,需避免使用bash特有语法(如let
)。
如需进一步了解具体用法或示例,可参考相关手册或书籍(如《UNIX Shell范例精解》)。
Unix Bourne Shell(/bin/sh
)的创造者是 Stephen R. Bourne(史蒂芬·伯恩),他于1977年在贝尔实验室开发了这一经典Shell,并随Unix第7版发布。以下是关键信息:
1. 开发者背景
- 全名:Stephen R. Bourne(1944年出生于英国)。
- 教育:伦敦国王学院数学硕士、剑桥大学三一学院数学博士。
- 职业:贝尔实验室研究员,专注于操作系统工具开发。
2. Bourne Shell的核心贡献
- 取代Thompson Shell:解决了前代Shell(Thompson shell)脚本功能薄弱的问题,引入变量、控制流(
if
/while
/for
)、管道和I/O重定向等特性。 - 标准化影响:成为POSIX Shell的基础,后续衍生出Bash(Bourne-Again Shell)、Ksh等。
3. 历史意义
- Unix第7版关键组件:Bourne Shell的发布标志着Unix系统脚本能力的飞跃,推动了自动化运维和系统工具开发。
- 命名致敬:Bash(1989年)的命名直接致敬其开创性工作。