你知道这些 shell 吗?

bash 和 zsh 都要追溯到 Unix 第七版的 Bourne shell, 这是几乎所有 Unix 世界 shell 的起源.

Ken Thompson 编写的 Unix 里包括一个 shell, 后来被称为 Thompson shell, 功能非常简单, 因此 Bourne 改进了这个 shell, 就叫 Bourne shell, 但是 Berkeley 的 Bill Joy (也是 vi 的作者和 Sun 创始人)觉得 Bourne shell 还是不好(比如流传到现在的鬼畜的语法), 就自己写了一个语法类似于 C 的 shell, 就叫 C shell, 然后随着 2BSD 发布.后来的几乎所有 shell (不包括微软家的和 fish)几乎都受到 csh 和 Bourne shell 的影响.

Almquist 基于 System V release 4 的 shell 写的轻量级 shell 叫 Almquist shell (ash) , 仅兼容 Bourne shell

Debian 改进的 ash 叫 dash, 而 dash 被移植到 busybox 里.

tcsh 是 csh 的改进, 现在是 FreeBSD 的默认 shell, 也是 macOS 10.3 前的默认 shell, macOS 下的 csh 实际就是 tcsh.

Bell 实验室的 Korn 改进了 Bourne shell, 吸收了一些 csh 的功能, 就叫 Korn Shell

ksh 是因为需要商用 Unix 授权,因此有人重写了 ksh, 叫 public domain Korn shell (pdksh)

OpenBSD 使用的默认 shell 就是 pdksh

MirBSD (OpenBSD 的早期 fork) 包含了 pdksh, 叫 mksh, 是现在 Android 的默认 shell ( adb shell 命令)

Bash(Bourne again shell)是 GNU 工程实现了 shell, 也是大多数 GNU Linux 的默认 shell, 也曾经是 macOS 的默认 shell (10.4-10.14), 兼容 Bourne shell 但吸收了 csh 和 ksh 的一些功能。

Z shell 是 Paul Falstad 编写的兼容 Bourne shell 但吸收了 csh 和 ksh 的一些功能的 shell

所以 bash 和 zsh 是近乎同一时间出现(89 年, 90 年)的两个不同的项目, 其相同点就是采用了 Bourne shell 的语法,因此部分兼容.

来源 https://v2ex.com/t/718204#reply63

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值