/bin/sh
, 这伯恩壳创建于 1977 年,曾经是 Unix 系统的默认 shell。
现在这个文件仍然存在,但主要只是作为系统上安装的默认 POSIX 兼容 shell 的符号链接:
- 在 RHEL/CentOS 上,它指向
/bin/bash
Bourne Again shell - 在 Ubuntu Linux 上,它指向
/bin/dash
Debian Almquist shell - 在 Debian 上它指向
/bin/dash
(6.0 及更高版本;较早的 Debian 版本它指向/bin/bash
)
这让我很好奇:是否有一个 Unix 系统或 Linux 发行版仍然提供二进制为了/bin/sh
?
答案1
/bin/sh
并不总是符号链接
/bin/sh
NetBSD 是一种没有符号链接的系统。默认安装包括三个 shell:Korn shell、C shell 和修改后的 Almquist shell。其中,后者仅安装为/bin/sh
.
Interix(Windows NT 的第二个 POSIX 子系统)没有/bin/sh
符号链接。 MirBSD Korn shell 的单个二进制文件作为 和 链接/bin/sh
两次/bin/mksh
。
FreeBSD 及其衍生产品 TrueOS(以前称为 PC-BSD)的 TENEX C shell 为 和/bin/csh
,/bin/tcsh
Almquist shell 为(仅)/bin/sh
。那里也没有符号链接。
OpenBSD 的(原始)C shell 为/bin/csh
,PD Korn shell 被三次链接为/bin/sh
、/bin/ksh
、 和/bin/rksh
。也没有符号链接。
答案2
Solaris 10 仍然保留旧版 Bourne shell 二进制文件 as /bin/sh
,这绝对是不是POSIX 兼容 shell。
希望 Solaris 11 通过提供ksh93
as打破了这个恼人的传统/bin/sh
。
答案3
这个 OSX 盒子的 /bin/sh 为:
$ ls -alF /bin/sh
-r-xr-xr-x 1 root wheel 632672 May 5 2016 /bin/sh*
$ uname -a
Darwin AUS-LM-000421.local 15.6.0 Darwin Kernel Vers...