Есть ли еще системы с двоичным файлом / bin / sh?

24

/bin/sh, То Bourne оболочка создана в 1977 году, используется как оболочка по умолчанию для систем Unix.

В настоящее время этот файл все еще существует, но в основном просто как символическая ссылка на стандартную POSIX-совместимую оболочку, установленную в системе:

  • на RHEL / CentOS указывает на /bin/bashоболочку Bourne Again
  • в Ubuntu Linux это указывает на /bin/dashоболочку Debian Almquist
  • в Debian он указывает на /bin/dash(6.0 и более поздние версии; на более ранние выпуски Debian было указано /bin/bash)

Что заставило меня любопытно: Есть ли система Unix или Linux дистрибутив, который по- прежнему обеспечивает бинарную для /bin/sh?

dr01
источник
Связанные unix.stackexchange.com/q/145522/38906
cuonglm
Смотрите также: in-ulm.de/~mascheck/various/shells
ninjalj
1
MacOS делает. Может быть, это считается FreeBSD.
DisplayName
1
buildroot для встроенных систем Linux с небольшим объемом памяти часто использует просто / bin / sh (символическая ссылка на busybox). Не уверен, хотите ли вы, чтобы это считалось системой с двоичным файлом / bin / sh.
Юрген Швитеринг
Связанные unix.stackexchange.com/questions/98892/…
jlliagre

Ответы:

30

/bin/sh не всегда символическая ссылка

NetBSD - это система, в которой /bin/shнет символической ссылки. Установка по умолчанию включает три оболочки: оболочку Korn, оболочку C и модифицированную оболочку Almquist. Из них последний установлен только как /bin/sh.

Interix (вторая подсистема POSIX для Windows NT) не имеет /bin/shсимволической ссылки. Один двоичный файл оболочки MirBSD Korn связан дважды как /bin/shи /bin/mksh.

FreeBSD и ее производная TrueOS (ранее PC-BSD) имеют оболочку TENEX C как /bin/cshи /bin/tcsh, и оболочку Almquist (только) /bin/sh. Никаких ссылок там тоже нет.

OpenBSD имеет (оригинал) C оболочки , как /bin/cshи PD Корн оболочки связаны трижды , как /bin/sh, /bin/ksh, и /bin/rksh. Также нет символической ссылки.

JdeBP
источник
4
Также есть что сказать об OpenSolaris и Schillix.
JdeBP
Я был бы очень рад, если бы у вас были очки. Не стоит беспокоиться. @schily - случайный участник Stack Exchange. Возможно, xe заполнит Schillix и OpenSolaris.
JdeBP
Я не понимаю, почему символическая ссылка так важна. Если в /binкаталоге, который я делаю ln ksh sh, есть hardlinkвызываемый sh, это не символическая ссылка. Это shдвоичный файл?
Соронтар
Я полагаю, что то, что предназначено для некоторого двоичного файла, помещенного или символизированного в '/ bin / sh', является тем, что имеет значение. Все системы AFAIK имеют /bin/sh. Ни один AFAIK не поставляется со старым ATT sh. В качестве примера, черта в системах Debian должна быть как можно ближе к старой /bin/sh.
Соронтар
Вы оспариваете посылку вопроса . Такой комментарий неуместен против ответа.
JdeBP
14

Solaris 10 по-прежнему имеет устаревшую двоичную оболочку Bourne /bin/sh, и это определенно не POSIX-совместимая оболочка.

Надеюсь, Solaris 11 сломал эту досадную традицию, предоставив ksh93as /bin/sh.

jlliagre
источник
4

Эта коробка 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...
Деви Морган
источник
2
Интересно, что оба этих файла имеют версию GNU bash 3.2.57 (1) на моем ноутбуке, но отличаются на несколько килобайт (632672 байта для / bin / sh против 628496 байтов для / bin / bash).
Гаурав