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


24

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

Atualmente, esse arquivo ainda existe, mas principalmente como um link simbólico para o shell compatível com POSIX padrão instalado no sistema:

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

Que me deixou curioso: Existe um sistema Unix ou Linux distro, que ainda fornece um binário para /bin/sh?




11
o macOS faz. Talvez isso conte como FreeBSD.
DisplayName

11
O buildroot para sistemas linux incorporados com pouco espaço de memória geralmente usa apenas um / bin / sh comum (link simbólico no busybox). Não tenho certeza se você deseja que isso conte como sistema com um binário / bin / sh.
Jürgen Schwietering 11/11

Respostas:


30

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

O NetBSD é um sistema em que /bin/shnão há 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 tem /bin/shcomo um link simbólico. Um único binário do shell MirBSD Korn é vinculado duas vezes como /bin/she /bin/mksh.

O FreeBSD e seu derivado TrueOS (anteriormente PC-BSD) têm o shell TENEX C como ambos /bin/cshe /bin/tcsh, e o shell Almquist como (apenas) /bin/sh. Nenhum link simbólico lá também.

OpenBSD tem o escudo C (original) como /bin/csheo Korn PD ligada três vezes como /bin/sh, /bin/kshe /bin/rksh. Também não há ligação simbólica.


4
Também há coisas a dizer sobre o OpenSolaris e o Schillix.
JdeBP # 9/16

Eu ficaria bastante contente por você ter tido os pontos. Não se preocupe. @schily é um colaborador ocasional do Stack Exchange. Talvez o xe preencha Schillix e OpenSolaris.
JdeBP # 9/16

Não consigo entender por que um link simbólico é tão importante. Se no /bindiretório que eu faço ln ksh sh, existe um hardlinkchamado sh, não é um link simbólico. É um shbinário?
sorontar

Eu acredito que o que se pretende com algum binário colocado ou vinculado em '/ bin / sh' é o que importa. Todos os sistemas AFAIK têm um /bin/sh. Nenhum AFAIK é enviado com um ATT antigo sh. Como exemplo, o traço nos sistemas debian deve ser o mais próximo possível de um antigo /bin/sh.
sorontar

Você está tendo problemas com a premissa da pergunta . Esse comentário é mal colocado em relação a uma resposta.
JdeBP #

14

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

Felizmente, o Solaris 11 quebrou essa tradição irritante ao fornecer ksh93como /bin/sh.


4

Essa caixa OSX possui / 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...

2
Curiosamente, esses dois arquivos relatam o lançamento do GNU bash 3.2.57 (1) no meu laptop, mas diferem em alguns kilobytes (632672 bytes para / bin / sh vs 628496 bytes para / bin / bash).
Gaurav
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.