/ Bin ve / usr / bin arasındaki fark


83

Bu web sitesinde bunu okudum ve mantıklı gelmiyor.

http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/basic/node32.html

UNIX ilk kez yazıldığında /binve /usr/binfiziksel olarak iki farklı diskte bulunduğunda: /bindaha küçük (daha pahalı) bir diskte ve /usr/bindaha yavaş bir diskte olmak. Şimdi, /binsembolik bir bağlantı /usr/bin: bunlar aslında aynı dizin.

Ancak ls, /binklasörde, klasörden çok daha az içeriğe sahiptir /usr/bin(en azından çalışan sistemimde).

Peki biri lütfen farkı açıklayabilir mi?


Bu adamlar belirli bir makine hakkında konuşmuyor mu?
tshepang

1
@tshepang, tıklamaya devam ederseniz, makalede UNIX / linux’a Temel Giriş’e erişeceksiniz . Yani hayır derdim, belirli bir makine hakkında konuşmuyorlar
xenoterracide

3
@xeno Evet, yaptım ama yeterince uzun kaldım. Bu durumda, o sayfa çıkarılmalıdır. Çok yanıltıcı.
tshepang

3
Bu belge 'tarihsel referans' olarak kabul edilebilir. "Bu belge hakkında" sayfasına bakarsanız, 1993 yılında orijinal olarak telif hakkına sahip olduğunu göreceksiniz. Kaynakçaya bakarsanız, en son kaynak 1997'dir. Popüler unix benzeri işletim sistemlerinin çoğu büyük ölçüde değişmiştir. sonra.
gabe.

1
Bu konfigürasyonun tarihi ile ilgilenen herkes şunu okumalıdır: lists.busybox.net/pipermail/busybox/2010-Aralık/074114.html
JDS

Yanıtlar:


73

Ne? hayır /bin/, /usr/binherhangi bir FHS uyumlu sisteme bir bağlantı değildir . Örneğin, - Orada bu görmezden popüler Unix sistemleri ve Linux dağıtımları hala olduğunu unutmayın /binve /sbinsembolik olarak edilir /usr/binArch Linux (sen gerekmez olmak akıl yürütmeye /binsadece canlı önyükleme ediyorum çünkü kurtarma / tek kullanıcı-modu için CD).

/bin

hem sistem yöneticisi hem de kullanıcılar tarafından kullanılabilecek, ancak başka hiçbir dosya sistemi kurulmadığında gerekli olan komutları içerir (örneğin, tek kullanıcı modunda). Ayrıca, komut dosyaları tarafından dolaylı olarak kullanılan komutları da içerebilir.

/usr/bin/

Bu, sistemdeki yürütülebilir komutların birincil dizinidir.

esasen, /binacil durum onarımı, önyükleme ve tek kullanıcı modu için sistemin gerektirdiği yürütülebilir dosyaları içerir. /usr/bingerekli olmayan herhangi bir ikili dosya içerir.

Ayrı disklerde / bölümlerde /binolabileceklerini, aynı diskte olması gerektiğini not edeceğim /. /usr/binbaşka bir diskte olabilir - bu yapılandırmanın bir süredir bozulduğuna dikkat edin (bu nedenle örneğin sistemd önyükleme sırasında bu yapılandırma hakkında uyarır).

Tam bir doğruluk için, bazı sendikalar FHS'yi görmezden gelebilir, çünkü bunun sadece bir Linux Standardı olduğuna inanıyorum, SUS, Posix veya başka bir UNIX standardına dahil edildiğinin farkında değilim, ancak IMHO olmalı. Yine de LSB standardının bir parçası .


Yani / usr / bin'i iki dağıtım arasında paylaşabileceğim anlamına mı geliyor? Ubuntu 10.04 ve 10.10 gibi mi?
balki

4
@balki hayır, hala doğru bir şekilde bağlantı kurmaları gerekiyor, bu da inşa ettikleri liblerin doğru versiyonunu kullanmaları gerektiği anlamına geliyor.
xenoterracide

6
/bin/usr/binSolaris gibi bazı birliktelikler için bir link .
Gilles

1
@balki sen olabilir paylaşabileceksiniz /usrsen ne yaptığını bilmeden bunu deneyin, buna rağmen iki çok benzer dağıtıma yıllardan arasında ve deney bilgisayar önyükleme değil kılan bir şekilde başarısız veya yemek için size hazırlanır Verileriniz Ayrıca, 10.04 ile 10.10 arasındaki büyük farkların çoğunun, /usr
23'te

2
Ayrıca şunu da ekleyelim: / usr / local / bin, dağıtımınıza dahil olmayan, ancak sistem genelinde kullanıma yönelik programların kurulu olduğu yerdir.
Donato

56

/sbin - Ön yükleme, düşük seviye sistem onarımı veya bakım için gerekli olan ikili dosyalar (çalışma seviyesi 1 veya S)

/bin - Herhangi bir çalışma seviyesinde normal / standart sistem çalışması için gerekli olan ikili dosyalar.

/usr/bin - Yerel olarak oturum açan kullanıcılar tarafından erişilmesi amaçlanan uygulama / dağıtım ikili dosyaları

/usr/sbin - / sbin içindeki öğeleri destekleyen veya yapılandıran uygulama / dağıtım ikili dosyaları.

/usr/share/bin - Web üzerinden erişilmesi amaçlanan uygulama / dağıtım ikili dosyaları veya scriptleri, yani Apache web uygulamaları

*local*- İkili dosyalar bir dağıtımın parçası değil; yerel olarak derlenmiş veya el ile yüklenmiş. Genelde asla asla /local/bindeğil ama daima bir /usr/local/binve /usr/local/share/bin.


4
Oh, ve eğer istersen, güvenlik ya da her neyse, hepsini ayrı bir diske ya da bölüme koyabilirsin. Buradaki fikir, usr / usr olabilir ve sistemin temel işleyişi için gereken her şeye sahip olacağı, ancak sistem dışı uygulamaları çalıştıramayacağıdır.
LawrenceC

1
Keşke bunu yıllar önce bilseydim. Şimdiye kadar gördüğüm en iyi açıklama. Çok zor göründüğümü söyleyemem ama sonunda cevabı bildiğim için memnunum.
David

2
bu harika bir cevap. Yapabilseydim sana kendi puanlarımdan 10'unu bağışlarım
Ekim'de 13:16

Giriş /usr/binyapan kullanıcı olmadığında @ultrasawblade otomatik olarak kaldırılır ? Örneğin, LINUX önyükleme yapıp oturum açma doğrulamasını yaptığında, /usr/bintakılı mı yoksa hayır mı?

1
Hayır, sisteminiz olağandışı bir şekilde yapılandırılmadıkça önyüklemeye monte edilir ve sökmediğiniz sürece monte edilmiş kalır.
LawrenceC

17

Bu konuda bir çeşit "güncelleme":

Son zamanlarda bazı Linux dağıtımları birleşiyor /biniçine /usr/binve birbiriyle ilintili olarak /libiçine /usr/lib. Bazen de (/usr)/sbinhiç /usr/bin(Arch Linux). Öyle /usrki aynı anda mevcut olması bekleniyor /.

İki hiyerarşi arasındaki ayrım, artık gereksiz bir karmaşıklık olarak ele alınmaktadır. Fikir bir zamanlar sadece /binönyüklemede kullanılabilir hale gelmekteydi , ancak ilk bir ramdisk'in olması bunu modası geçmiş kılıyordu.

Fedora Linux (2011) ve Arch Linux (2012) 'nin bu yöne gittiğini biliyorum ve Solaris bunu uzun süredir (> 15 yıl) yapıyor.


8

Linux'ta /binve /usr/binhala ayrı olduğundan, /usrayrı bir bölüme sahip olmak yaygındır (bu yapılandırma bazen ince şekillerde bozulsa da). Sadece monte /binettiyseniz, ihtiyacınız olan tüm komutlar /.

Solaris ve Arch Linux'ta (ve muhtemelen başkaları) /binbir link /usr/bin. Ayrıca Arch'a bağlanmış /sbinve /usr/sbinsembolize edilmiştir /usr/bin.

Özellikle, /bin"sistem yöneticisi" komutları için olan ve /usr/binkullanıcı komutları için olan ifade doğru değildir (bunu düşünmüyorsanız bashve lsyalnızca yöneticiler için olmadıkça , bu durumda öğreneceğiniz çok şey vardır). Yönetici komutları vardır /sbinve /usr/sbin.


1
kim binsadece sistem yöneticileri içindir? bunun sbiniçin var.
xenoterracide

Yanlış yönlendirildim. Üzgünüm, çok hızlı okuyordum.
Bahamat

5

UNIX tabanlı pek çok sistem var. Linux, AIX, Solaris, BSD, vb. Orijinal alıntı tüm lezzetler için geçerli olan tarihsel bağlamı verir. Belirli bir sisteme bakarsanız, farklı sonuçlar göreceksiniz. Orijinal alıntıların son cümlesi sadece bazı sürümlere ve dağıtımlara özgüdür.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.