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年)的命名直接致敬其开创性工作。
相关推荐
wunaiqiezixin4 天前
MIT 6.S081 util 实验篇(lab1):primes (moderate/hard)
linux·unix·os·xv6·mit6.s081
云计算练习生10 天前
什么是 Linux?从 Unix 到开源生态的完整脉络
linux·开源·操作系统·unix
wunaiqiezixin23 天前
MIT 6.S081 file system 实验篇(lab9):Large files (moderate)
linux·unix·os·xv6·mit6.s081
江屿风23 天前
【Linux系统】【Linux进程终止等待详解与程序替换机制初体验】流食般投喂
linux·运维·笔记·系统架构·centos·unix
hacker7071 个月前
BYTE UNIXBench 鸿蒙 PC 适配全记录:从经典 Unix 基准套件到 HAP_HNP 终端工具
华为·unix·harmonyos
yutian06061 个月前
C: Unix UTC 时间戳转为 UTC+8 北京时间
c语言·unix
深念Y1 个月前
iOS模拟器在无Metal的NVIDIA显卡环境下的可行性研究报告
服务器·ios·unix·pve·freebsd
深念Y1 个月前
【保姆级教程】Proxmox VE (PVE) 安装 FreeBSD 完整指南
服务器·unix·系统·pve·freebsd·虚拟化平台
wunaiqiezixin2 个月前
MIT 6.S081 xv6 源码精读(Scheduling):sched、scheduler
linux·unix·os·xv6·mit6.s081
筠筠喵呜喵2 个月前
解决问题:QNX平台调用glReadPixels卡滞
c++·unix