Ainda existem sistemas com um binário / bin / sh?

23
O

/bin/sh , o shell Bourne criado em 1977, costumava ser o shell padrão dos sistemas Unix.

Hoje em dia esse arquivo ainda existe, mas na maioria das vezes apenas como um link simbólico para o shell compatível com POSIX padrão instalado no sistema:

  • no RHEL / CentOS ele aponta para /bin/bash , o shell Bourne Again
  • no Ubuntu Linux aponta para /bin/dash , o shell do Debian Almquist
  • no Debian aponta para /bin/dash (6.0 e posterior; versões mais antigas do Debian apontam para /bin/bash )

O que me deixou curioso: existe um sistema Unix, ou distribuição Linux, que ainda fornece um binário para /bin/sh ?

    
por dr01 09.11.2016 / 09:07

3 respostas

30

/bin/sh nem sempre é um link simbólico

O NetBSD é um sistema em que /bin/sh não é um link simbólico. A instalação padrão inclui três shells: o shell Korn, o shell C e um shell Almquist modificado. Destes, o último é instalado apenas como /bin/sh .

Interix (o segundo subsistema POSIX para Windows NT) não possui /bin/sh como um link simbólico. Um único binário do shell Korn do MirBSD é vinculado duas vezes como /bin/sh e /bin/mksh .

O FreeBSD e seu derivado TrueOS (anteriormente PC-BSD) possuem o shell TENEX C como /bin/csh e /bin/tcsh e o shell Almquist como (apenas) /bin/sh . Nenhum link simbólico também.

O OpenBSD tem o shell C (original) como /bin/csh e o shell PD Korn vinculado três vezes como /bin/sh , /bin/ksh e /bin/rksh . Também não há links simbólicos.

    
por 09.11.2016 / 09:28
14

O Solaris 10 ainda tem o binário do shell Bourne legado como /bin/sh , e isso definitivamente não é um shell compatível com POSIX.

Espero que o Solaris 11 tenha quebrado essa tradição irritante fornecendo ksh93 as /bin/sh .

    
por 09.11.2016 / 09:51
4

Esta caixa OSX tem / 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...
    
por 10.11.2016 / 00:24