Apakah masih ada sistem dengan binary / bin / sh?


24

/bin/sh, cangkang Bourne dibuat pada tahun 1977, dulunya merupakan cangkang default untuk sistem Unix.

Saat ini file ini masih ada tetapi sebagian besar hanya sebagai tautan simbolis ke shell kompatibel-POSIX default yang diinstal pada sistem:

  • pada RHEL / CentOS itu menunjuk ke /bin/bash, shell Bourne Again
  • di Ubuntu Linux itu menunjuk ke /bin/dash, shell Debian Almquist
  • pada Debian itu menunjuk ke /bin/dash(6.0 dan lebih baru; rilis Debian yang lebih lama mengarahkannya /bin/bash)

Yang membuat saya penasaran: Apakah ada sistem Unix, atau Linux distro, yang masih menyediakan biner untuk /bin/sh?




1
macOS tidak. Mungkin itu dianggap sebagai FreeBSD.
— DisplayName

1
buildroot untuk sistem linux tertanam dengan jejak memori kecil sering menggunakan hanya sebuah / bin / sh (symlink ke busybox). Tidak yakin apakah Anda ingin ini dihitung sebagai sistem dengan biner / bin / sh.
— Jürgen Schwietering

Jawaban:


30

/bin/sh tidak selalu merupakan symlink

NetBSD adalah satu sistem di mana /bin/shbukan symlink. Instalasi default mencakup tiga shell: shell Korn, shell C, dan shell Almquist yang dimodifikasi. Dari jumlah tersebut, yang terakhir diinstal hanya sebagai /bin/sh.

Interix (subsistem POSIX kedua untuk Windows NT) tidak memiliki /bin/shsebagai symlink. Sebuah biner tunggal dari shell MirBSD Korn dihubungkan dua kali sebagai /bin/shdan /bin/mksh.

FreeBSD dan TrueOS turunannya (sebelumnya PC-BSD) memiliki shell TENEX C sebagai keduanya /bin/cshdan /bin/tcsh, dan shell Almquist sebagai (hanya) /bin/sh. Tidak ada symlink di sana.

OpenBSD memiliki (asli) C shell sebagai /bin/cshdan PD Korn shell terkait tiga kali sebagai /bin/sh, /bin/ksh, dan /bin/rksh. Juga tidak ada symlink.


4
Ada hal-hal untuk dikatakan tentang OpenSolaris dan Schillix juga.
— JdeBP

Saya akan cukup puas bagi Anda untuk memiliki poin. Jangan khawatir. @schily adalah kontributor Stack Exchange sesekali. Mungkin xe akan mengisi Schillix dan OpenSolaris.
— JdeBP

Saya gagal memahami mengapa symlink itu penting. Jika dalam /bindirektori yang saya lakukan ln ksh sh, ada yang hardlinkdipanggil sh, itu bukan symlink. Apakah ini shbiner?
— sorontar

Saya percaya bahwa apa yang dimaksudkan dengan beberapa biner ditempatkan atau disinkronkan dalam '/ bin / sh' adalah yang penting. Semua sistem memiliki AFAIK a /bin/sh. Tidak ada AFAIK yang dikirimkan bersama ATT sh lama. Sebagai contoh, tanda hubung dalam sistem debian dimaksudkan sedekat mungkin dengan yang lama /bin/sh.
— sorontar

Anda menerima masalah dengan premis pertanyaan . Komentar semacam itu salah menempatkan jawaban.
— JdeBP

14

Solaris 10 masih memiliki binary shell Bourne sebagai warisan /bin/sh, dan ini jelas bukan shell yang kompatibel dengan POSIX.

Semoga, Solaris 11 mematahkan tradisi menjengkelkan ini dengan memberikan ksh93apa adanya /bin/sh.


4

Kotak OSX ini memiliki / bin / sh sebagai:

$ 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
Menariknya, kedua file tersebut melaporkan menjadi GNU bash 3.2.57 (1) - dirilis di laptop saya, tetapi berbeda beberapa kilobyte (632672 byte untuk / bin / sh vs 628496 byte untuk / bin / bash).
— Gaurav
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.