ยังมีระบบรอบ ๆ ด้วยไบนารี / bin / sh?


24

/bin/shที่เปลือกบอร์นที่สร้างขึ้นในปี 1977 ที่ใช้จะเป็นเปลือกเริ่มต้นสำหรับระบบปฏิบัติการ Unix

ทุกวันนี้ไฟล์นี้ยังคงมีอยู่ แต่ส่วนใหญ่เป็นเพียงลิงก์สัญลักษณ์ไปยังเชลล์เริ่มต้นที่เข้ากันได้กับ POSIX ซึ่งติดตั้งอยู่ในระบบ

  • บน RHEL / CentOS มันชี้ไป/bin/bashที่เปลือก Bourne Again
  • บน Ubuntu Linux ชี้ไป/bin/dashที่เชลล์ Debian Almquist
  • บนเดเบียนจะชี้ไปที่/bin/dash(6.0 และใหม่กว่า; เดเบียนที่มีอายุมากกว่าให้ชี้ไปที่/bin/bash)

ซึ่งทำให้ผมอยากรู้อยากเห็น: มีระบบ Unix หรือ Linux distro ที่ยังคงมีไบนารีสำหรับ/bin/sh?



ดูเพิ่มเติมที่: in-ulm.de/~mascheck/various/shells
ninjalj

1
macOS ทำ อาจนับได้ว่าเป็น FreeBSD
DisplayName

1
buildrootสำหรับระบบลินุกซ์ฝังตัวที่มีหน่วยความจำขนาดเล็กมักจะใช้เพียงแค่ธรรมดา / bin / sh (symlink ลงใน busybox) ไม่แน่ใจว่าคุณต้องการให้นับเป็นระบบด้วยไบนารี / bin / sh หรือไม่
Jürgen Schwietering

คำตอบ:


30

/bin/sh ไม่ใช่ symlink

NetBSD เป็นระบบเดียวที่/bin/shไม่ใช่ symlink การติดตั้งเริ่มต้นประกอบด้วยสามเชลล์: Korn เชลล์, C เชลล์และ Almquist เชลล์ที่แก้ไข /bin/shของเหล่านี้หลังมีการติดตั้งเป็นเพียง

Interix (ระบบย่อย POSIX ที่สองสำหรับ Windows NT) ไม่มี/bin/shเป็น symlink ไบนารีเดียวของ MirBSD เปลือกกรมีการเชื่อมโยงเป็นสองเท่าและ/bin/sh/bin/mksh

FreeBSD และ TrueOS อนุพันธ์ (เดิม PC-BSD) มี TENEX C เปลือกขณะที่ทั้งสอง/bin/cshและ/bin/tcshและ Almquist เปลือกเป็น /bin/sh(เท่านั้น) ไม่มี symlink ที่นั่นเช่นกัน

OpenBSD มี (เดิม) ซีเชลล์เป็น/bin/cshและ PD เปลือกกรเชื่อมโยงสามครั้งเป็น/bin/sh, และ/bin/ksh /bin/rkshยังไม่มี symlink


4
มีสิ่งที่จะพูดเกี่ยวกับ OpenSolaris และ Schillix ด้วย
JdeBP

ฉันคงพอใจมากที่คุณมีประเด็น ไม่ต้องห่วง. @schily เป็นผู้สนับสนุน Stack Exchange เป็นครั้งคราว บางที xe จะเติมใน Schillix และ OpenSolaris
JdeBP

ฉันไม่เข้าใจว่าทำไม symlink ถึงสำคัญ หากใน/binไดเรกทอรีที่ฉันทำln ksh shมีการhardlinkเรียกshมันไม่ใช่ symlink มันเป็นshไบนารีหรือไม่?
sorontar

ฉันเชื่อว่าสิ่งที่มีจุดประสงค์ในการวางไบนารีหรือ symlinked ใน '/ bin / sh' คือสิ่งที่สำคัญ ทุกระบบ AFAIK /bin/shมี ไม่มี AFAIK จัดส่งพร้อม ATT sh แบบเก่า ตัวอย่างเช่นขีดกลางในระบบเดเบียนมีจุดประสงค์เพื่อให้ใกล้เคียงกับความเก่าแก่ที่สุดเท่าที่จะเป็นไป/bin/shได้
sorontar

คุณจะพาปัญหากับสถานที่ตั้งของคำถาม ความเห็นดังกล่าวผิดต่อคำตอบ
JdeBP

14

Solaris 10 ยังคงมีไบนารี Bourne shell แบบเดิมอยู่/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 ทุบตี 3.2.57 (1) - ปล่อยบนแล็ปท็อปของฉัน แต่ต่างกันสองสามกิโลไบต์ (632672 ไบต์สำหรับ / bin / sh เทียบกับ 628496 ไบต์สำหรับ / bin / bash)
Gaurav
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.