当前位置: 首页 > article >正文

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配置文件定制环境。
  • ​流程控制​​:提供ifwhile等结构,支持复杂逻辑。

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年)的命名直接致敬其开创性工作。
http://www.lryc.cn/news/2380020.html

相关文章:

  • GraphPad Prism项目的管理
  • 驱动-Linux定时-timer_list
  • STM32F103_LL库+寄存器学习笔记22 - 基础定时器TIM实现1ms周期回调
  • 5个yyds的.Net商城开源项目
  • C++:与7无关的数
  • [项目深挖]仿muduo库的并发服务器的解析与优化方案
  • c语言与python的异同之处
  • 国标GB28181视频平台EasyGBS校园监控方案:多场景应用筑牢安全防线,提升管理效能
  • 【视频】解决FFmpeg将RTSP转RTMP流时,出现的卡死、出错等问题
  • SHIMADZU岛津 R300RC300 Operation Manual
  • 使用 Docker 部署 React + Nginx 应用教程
  • 我创建了MariaDb数据库,但其他电脑访问不到?
  • API Gateway REST API 集成 S3 服务自定义 404 页面
  • 关于systemverilog中在task中使用force语句的注意事项
  • Python Day26 学习
  • 解决:npm install报错,reason: certificate has expired
  • 卸载云枢(MacOS 版)
  • 中科固源Wisdom平台发现NASA核心飞行控制系统(cFS)通信协议健壮性缺陷!
  • Linux内核深入学习(4)——内核常见的数据结构2——红黑树
  • 从单体架构到微服务:架构演进之路
  • 嵌入式学习笔记DAY23(树,哈希表)
  • leetcode239 滑动窗口最大值deque方式
  • 仓颉开发语言入门教程:搭建开发环境
  • Axure中继器高保真交互原型的核心元件
  • 【SpringBoot】✈️整合飞书群机器人发送消息
  • 第 1 章:数字 I/O 与串口通信(GPIO UART)
  • 【图像生成大模型】Wan2.1:下一代开源大规模视频生成模型
  • java配置webSocket、前端使用uniapp连接
  • interface接口和defer场景分析
  • 02、基础入门-Spring生态圈