Чи є ще системи навколо з бінарним файлом / bin / sh?


24

/bin/sh, оболонка Борна, створена в 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?



Дивіться також: in-ulm.de/~mascheck/various/shells
ninjalj

1
macOS робить. Можливо, це вважається FreeBSD.
DisplayName

1
buildroot для вбудованих систем Linux з невеликим відбитком пам’яті часто використовує просто звичайний / bin / sh (символьне посилання в busbox). Не впевнений, чи хочете ви, щоб це вважалося системою з бінарним файлом / bin / sh.
Юрген Швітеринг

Відповіді:


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. Також немає симпосилання.


4
Про OpenSolaris та Schillix теж є що сказати.
JdeBP

Я був би досить задоволений, щоб у вас були бали. Не хвилюйтесь. @schily є випадковим учасником обміну стеками. Можливо, xe заповнить Schillix та OpenSolaris.
JdeBP

Я не розумію, чому симпосилання є таким важливим. Якщо в /binкаталозі, який я роблю ln ksh sh, є hardlinkвиклик sh, це не символьна посилання. Це shдвійковий?
соронтар

Я вважаю, що те, що призначене для деяких двійкових, розміщених або позначених символом в '/ bin / sh', - це важливе значення. Усі системи AFAIK мають a /bin/sh. Жоден AFAIK не постачається зі старим ATT ш. В якості прикладу, тир в системах Debian НЕ призначений , щоб бути як можна ближче можна до старого /bin/sh.
соронтар

Ви приймаєте питання з передумовою питання . Такий коментар неправильно ставиться проти відповіді.
JdeBP

14

Solaris 10 все ще має застарілу оболонку Bourne як /bin/sh, і це, безумовно, не оболонка, сумісна з POSIX.

Сподіваємось, Solaris 11 порушив цю набридливу традицію, надавши ksh93як /bin/sh.


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).
Гаурав
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.