¿Todavía hay sistemas con un binario / bin / sh?

24

/bin/sh, el shell Bourne creado en 1977, solía ser el shell predeterminado para los sistemas Unix.

Hoy en día este archivo todavía existe, pero principalmente como un enlace simbólico al shell predeterminado compatible con POSIX instalado en el sistema:

  • en RHEL / CentOS señala /bin/bash, el shell Bourne Again
  • en Ubuntu Linux apunta al /bin/dashshell Debian Almquist
  • en Debian apunta a /bin/dash(6.0 y posterior; las versiones anteriores de Debian tenían que apuntar /bin/bash)

Lo que hizo que mi curiosidad: ¿Existe un sistema Unix o Linux distro, que todavía proporciona un binario para /bin/sh?

dr01
fuente
Ver también: in-ulm.de/~mascheck/various/shells
ninjalj
1
macOS lo hace. Quizás eso cuente como FreeBSD.
DisplayName
1
Buildroot para sistemas Linux integrados con una pequeña huella de memoria a menudo utilizará solo un simple / bin / sh (enlace simbólico en busybox). No estoy seguro si desea que esto cuente como sistema con un binario / bin / sh.
Jürgen Schwietering

Respuestas:

30

/bin/sh no siempre es un enlace simbólico

NetBSD es un sistema donde /bin/shno hay un enlace simbólico. La instalación predeterminada incluye tres shells: el shell Korn, el shell C y un shell Almquist modificado. De estos, este último se instala solo como /bin/sh.

Interix (el segundo subsistema POSIX para Windows NT) no tiene /bin/shcomo enlace simbólico. Un solo binario del shell MirBSD Korn está vinculado dos veces como /bin/shy /bin/mksh.

FreeBSD y su derivado TrueOS (anteriormente PC-BSD) tienen el shell TENEX C como ambos /bin/cshy /bin/tcsh, y el shell Almquist como (solo) /bin/sh. No hay enlace simbólico allí, tampoco.

OpenBSD tiene el shell C (original) como /bin/cshy la PD Korn shell ligada tres veces como /bin/sh, /bin/ksh, y /bin/rksh. Tampoco hay enlace simbólico.

JdeBP
fuente
44
También hay cosas que decir sobre OpenSolaris y Schillix.
JdeBP
Hubiera estado bastante contento de que tuvieras los puntos. Sin preocupaciones. @schily es un colaborador ocasional de Stack Exchange. Tal vez xe rellene Schillix y OpenSolaris.
JdeBP
No entiendo por qué un enlace simbólico es tan importante. Si en el /bindirectorio que hago ln ksh sh, hay un hardlinkllamado sh, no es un enlace simbólico. ¿Es un shbinario?
sorontar el
Creo que lo que se pretende con algunos binarios colocados o enlazados en '/ bin / sh' es lo que importa. Todos los sistemas AFAIK tienen a /bin/sh. Ninguno AFAIK se envía con un viejo ATT sh. Como ejemplo, el guión en los sistemas debian está destinado a estar lo más cerca posible de un viejo /bin/sh.
sorontar el
Estás en desacuerdo con la premisa de la pregunta . Tal comentario está mal colocado contra una respuesta.
JdeBP
14

Solaris 10 todavía tiene el binario de shell Bourne heredado /bin/sh, y este definitivamente no es un shell compatible con POSIX.

Con suerte, Solaris 11 rompió esta tradición molesta al proporcionar ksh93como /bin/sh.

jlliagre
fuente
4

Este cuadro OSX tiene / bin / sh como:

$ 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...
Dewi Morgan
fuente
2
Curiosamente, ambos archivos informan que se liberan GNU bash 3.2.57 (1) en mi computadora portátil, pero difieren en unos pocos kilobytes (632672 bytes para / bin / sh vs 628496 bytes para / bin / bash).
Gaurav