Ubuntu dosya sistemi düzenini nasıl anlarım?


220

Windows'ta, belki de birkaç önemli klasör (önemli olarak demek istediğim, Windows dosya sisteminin mantıksal resminde önemli) kurulum sürücüsünde (benim durumumda C:\) var. Yani Program Filesve Windows. Sadece Windowsklasörden uzak duruyorum ve “program kaldırma dosyalarını ekle”, program filesWindows klasörünü idare edebilecek kadar iyidir . Elbette Users, kullanıcıların (yönetici olmayanlar) sadece kendi klasörlerine erişebilecekleri bir klasör var.

Böylece, Windows dosya sistemi aklımda bir düzeyde net bir resim var. Ubuntu'da, konuma ulaştığım zaman /, çoğu ne içerdiklerine dair hiçbir fikrim olmayan çok sayıda klasör var. /binKlasör eşdeğer gibi görünüyor Windowspencerelerde klasörde. /usrO eşdeğer gibi klasör görünüyor UsersWindows klasöründe. Ancak bu /homeklasör bile tasarıya uygun gibi görünüyor.

Lütfen anlıyorum, Ubuntu'nun (Linux) Windows'dekinden farklı bir karaktere sahip olduğunu, yani Ubuntu'da tam olarak Windows işlevlerine eşdeğer olması gerekmediğini anladığımı anlayın. Tek istediğim Ubuntu dosya sisteminin biraz daha net bir resmi.

Bu soru, daha cevaplanabilir hale getirmek için ayrıldığım daha büyük bir sorunun parçası. Orijinal soru burada bulunabilir:
http://sgsawant.wordpress.com/2012/05/17/whats-the-equivalent-of-add-or-remove-programs-in-ubuntu/


3
Ayrıca Unix ve Linux'taki dizin yapısı etiketine de bakın . Tüm Linux dağıtımları aynı modeli izler.
Gilles

Tüm cevaplarınız için teşekkürler. Birkaç nokta hakkında biraz kafam karışık: Windows'ta kurulum genellikle tüm kullanıcılar için bir yazılım yüklemek için bir komut istemi sunar. Ubuntu'da bu ayrım nasıl yapılır? Ayrıca, geliştirme yazılımlarını IDE'lerine göre yapılandırmada olağan bir problemdir. Örneğin, Windows'ta "program files \ miktex \ bin" dizininde "pdflatex.exe" dosyası var. Böylece IDE'yi bu dosyaya yönlendirebilir ve yapılandırabilirim. Ubuntu'da bu işlem nasıl yapılır? Bir yazılımla ilişkilendirilmiş olan genel ikili dosya nerede (özellikle de yapılandırma açısından)?
Shashank Sawant

2
Ubuntu'da normalde tüm kullanıcılar için yazılım yüklersiniz. Paket yöneticisi aracılığıyla yaptığınız her şey tüm kullanıcılar içindir. Yorumunuzun geri kalanını anlamıyorum; "bir yazılımla ilişkilendirilmiş ikili dosyayı" yapılandırmaz ". Bunu ayrı bir soru olarak sormalı ve ne yapmaya çalıştığınızla ilgili daha iyi bir açıklama yapmalısınız.
Gilles

Anladım. Yeni bir soru çerçeveleyeceğim. O zaman bile işte ne demek istediğim hakkında kısa bir açıklama: Pencerelerde, .exe dosyaları kolayca bulunabilir. Örneğin: "C: \ Python27 \ python.exe". Böylece Python programının nereden başladığını biliyorum. Şimdi eğer Eclipse IDE'yi kullanmak zorunda kalırsam, basitçe python.exe'ye yönlendirebilirim ve "configure" ile kastediyorum. IDE'yi Python için yapılandırdım. Ubuntu'da programın kurulu olduğu yer neresidir? Bu beni hala kaçıyor.
Shashank Sawant

2
@Gilles Söylerken dikkatli olun all. GoboLinux projesi aslında dizin yapısı gibi daha Windows kullanır.
new123456

Yanıtlar:


251

Bunu, örneğin wikipedia'da okuyabilirsiniz. Bir alıntı:

Dosya Sistemi Hiyerarşi Standardı (FHS) Linux işletim sistemlerinde ana dizinleri ve içeriklerini tanımlar. Çoğunlukla, geleneksel BSD dosya sistemi hiyerarşisinin resmi bir uzantısı ve uzantısıdır.

FHS, HP, Red Hat, IBM ve Dell gibi büyük yazılım ve donanım satıcılarından oluşan kar amacı gütmeyen bir kuruluş olan Linux Foundation tarafından sağlanmaktadır. Mevcut sürüm 3.0, 3 Haziran 2015'te yayınlandı.

Kısa bir açıklama içeren görsel bir sunum:

görüntü tanımını buraya girin

Temel olarak Linux, sistemi mümkün olan en az miktarda gerekli izinle güvenli hale getirmek için neyin gerekli olduğuna bağlı olarak dizin yapısını böldü. Aksi halde, bir kişinin önlenebilir işlerin bir sürü yapması zorunludur.

Unix ve Linux'un çok kullanıcılı sistemler ve Windows'un tek bir kullanıcı için oluşturulduğunu unutmayın. Geri kalan her şey bu fikirden açıklanabilir. Çok kullanıcılı ve güvenli olduğunu düşünürken her dizini açıklayabilirsiniz.

3 örnek:

  • İçinde s: Yalnızca Admin dosyalar ve dizinleri aynı dizinde toplanmış olduğunu göreceksiniz /sbinve /usr/sbinve /usr/local/sbinsistemi anlamına gelmektedir. Normal bir kullanıcı, içinde bulunan programları bile başlatamaz. Normal bir kullanıcının başlatabileceği dosyalar, mantıksal olarak en mantıklı olması gereken yere göre / bin, / usr / bin, / usr / local / bin dizinindedir. Fakat eğer onlar admin ise sadece so dizinin versiyonuna gitmeliler. Denilen ünlü bir yardımcı program var fuser. Bununla süreçleri öldürebilirsin. Normal bir kullanıcı bunu kullanabilirse, oturumunuzu öldürebilir.

  • Aynı şey için de geçerlidir /home: / home / user1, user1'in malıdır. / home / user2, user2'nin özelliğidir. user2, user1'in evinde işler yapan hiçbir iş yapmaz (ve bunun tersi de geçerlidir: user1 user2'nin evinde işler yapan bir iş yoktur). Tüm dosyalar, altında kullanıcı adı olmayan / evdeyse, her dosyaya izin vermeniz ve birinin bu dosyaları yazmasına / kaldırmasına izin verilip verilmediğine karar vermeniz gerekir. Onlarca kullanıcı varsa bir kabus.

  • Toplama kütüphaneler ile ilgili.

    /lib/, /usr/lib/ve /usr/local/lib/, çok konumlu sistemler var olmasından ve olayları kırmayı önlemek için var olmasından önceki özgün konumlardır. /usr/lib32, /usr/lib/64, /usr/local/lib32/, /usr/local/lib64/32/64-bit multilib buluşlar bulunmaktadır.

Bu hiçbir şekilde statik bir kavram değildir. Diğer Linux lezzetleri bu yerleşime tweaks yaptı. Örneğin; Şu anda SSD'nin salt okunur dosyalarla daha iyi durumda olduğundan debian ve Ubuntu'nun FHS yerleşiminde çok fazla değiştiğini göreceksiniz . Dosyaların 'salt okunur' ve 'yazılabilir' bir dizine / gruba ayrıldığı yeni bir yerleşime doğru bir hareket vardır, böylece sadece salt okunur (bir ssd için bölüm) ve yazılabilir bir kök bölüm alabiliriz (sata hdd). Bunun için kullanılan yeni dizin (resimde değil) /run/.


18
+1 Rinzwind. Görüntüyü seviyorum, aslında bir tane arıyordum.
Luis Alvarado

5
dikkatini çekeceğini düşündü: + @LuisAlvarado
Rinzwind

4
Daha iyi bir cevap olamaz!
Shashank Sawant

1
Birkaç yıl önce şimdi olan /mntşey değil miydi /media?
RobinJ

9
@ RobinJ: Fark /mnt, tarihsel olarak manuel olarak yönetilmiş olmasıdır. Bir çok geçici cihazın (flash sürücüler vb.) Yükselmesi ve otomatik montaj standart hale geldiğinde, montaj noktalarını otomatik olarak kullanma ihtiyacı vardı. Mevcut manuel konfigürasyon ile çakışmaları önlemek için yeni bir dizine ihtiyaç vardı. Böylece, bu günler /mntuygun geçici bir bağlama noktası sağlama rolüne düşmüştür.
Scott Severance

104

Bu komutu bir dene ...

man 7 hier

Bu kılavuz sayfasını buradan da görüntüleyebilirsiniz: http://manpages.ubuntu.com/manpages/tr/man7/hier.7.html

Umarım yardımcı olur


1
İyi karar! Her zaman mevcut olmasına rağmen birisini daima unutuyorum (net kapalı olsa bile;))
Rinzwind

1
adam "o" olarak yeniden adlandırılmalıdır. :)))
Shiki

man hierşimdi en sevdiğim komutlardan biri! Açıklamalar benim için FHS doco'dan daha açık, özellikle de tecrübesiz bir Ubuntu kullanıcısı için orta derecede DOS / Windows deneyiminden geçen “makineye yerel” ve “site çapında” arasında ayrım yapıyor.
WillC

BTW numarası 7 hier man sayfasının Miscellanea bölümünün standları .
Pablo A,

hı. Bunun için neye değer olursa olsun, sadece ubuntu'nun her versiyonunun buna sahip olması muhtemel olsa da bana sadece bağlantıya verilen bir cevabı hatırlatıyor. Man sayfasındaki içeriğin bir kısmını cevabınıza ekleyebilir misiniz?
jrh

45

Geç Cevap - Yeni başlayanların izlemesi için bir yol haritası oluşturdum. Bir dosya arıyorlar ancak nereye bakacaklarını bilmiyorlarsa, kabaca gezinmek için haritayı kullanabilirler. Bir res res PNG'yi buradan indirebilirsiniz . İlgili yazıyı burada bulabilirsiniz . Yararlı yorumları içerdiğinde, zaman izin verdiği zaman hem dosyayı hem de postayı güncellemeye devam edeceğim.


Bir akış şeması üretmek için ilginç ve faydalı bir fikir, ancak ne yazık ki bazı çıkmazlar var gibi görünüyor. Sorum şu ki, eğer bir mysqldumpdosyayı gerçekleştiriyorsam dosyayı çıktı olarak almalı mıyım?
BadHorsie

@ TabHorsie elbette her zaman kendi özel kullanım durumunuza bağlı olacaktır, fakat onu bir /home/badhorsie/mysqldumpdizine dökmek yeterli olacaktır. Çok sayıda uygulama çalıştırıyorsanız, her uygulamayı çalıştırmak ve onu o uygulama / kullanıcının homedizinine bırakmak için yeni bir kullanıcı oluşturabilirsiniz .
d4nyll

@ paranoid-panda, görüntünün tam çözünürlükte tıklanabilir olmasına izin vermeme nedenini seçtiğiniz için biraz genişletebilir misiniz? Bu yayına gömülü sürüm hemen hemen hiç okunamıyor.
Waldyrious

@ waldyrious: Eğer revizyon geçmişine bakarsanız, sadece bir yazım hatasını düzelttiğimi göreceksiniz, resmi bu şekilde ekleyen başka bir kullanıcıydı. Benimle ilgisi yok. Düşünceyi düzenlemek için çekinmeyin, tıklatabilmek için doğru sözdizimini hatırlayamıyorum.

@ ParanoidPanda tam olarak bunu yaptım. Düzenlemem yazım hatalarını düzeltdi ve görüntüyü tıklanabilir hale getirdi ve incelemeniz reddetmek ve düzenlemek oldu ; bu nedenle sorum şu: görüntüyü tıklanabilir hale getirirken neyi yanlış gördünüz?
waldyrious

36

Aşağıdaki metin, dizin yapısını gösterir.

mtk4@laptop:/$ pwd
/
mtk4@laptop:/$ tree -L 1
.
|-- bin
|-- boot
|-- cdrom
|-- dev
|-- etc
|-- home
|-- lib
|-- lost+found
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin
|-- selinux
|-- srv
|-- sys
|-- tmp
|-- usr
|-- var

Buradaki ana bileşenler:

  1. /boot : Bagaj yükleyiciyi içerir

  2. /home : Kullanıcıların ev dizinlerini içerir.

  3. /bin : Sistemdeki tüm kullanıcılar tarafından kullanılan tüm çalıştırılabilir dosyalar ve komutlar burada bulunur.

  4. /sbin : Bu, genellikle sistem yöneticileri tarafından kullanılan sistem çalıştırılabilir ikililerini içerir.

  5. /lib : / Bin ve / sbin içindeki ikili dosyaları destekleyen sistem kitaplıklarını içerir.

  6. /etc : Ağ, önyükleme zamanı vb. Yapılandırma dosyalarını içerir.

  7. /dev : Bu cihaz dosyaları yani usb, terminal cihazı veya sisteme bağlı diğer herhangi bir cihaz burada gösterilmektedir.

  8. /proc : Çalışan işlem hakkında bilgi içerir.

  9. /tmp: Bu, birçok işlemin gereken geçici dosyaları oluşturduğu geçici dizindir. Makine her başlatıldığında bu temizlenir.

Daha fazla ayrıntı için Thegeekstuff bağlantısı, genel linux dosya sistemini mükemmel şekilde açıklar.


20

\Userseşittir /home. Adı, /usrtarihi bir eserdir.

Birleşik eşdeğer \Windowsve \Program Fileskombinasyonu /bin, /boot, /etc, /lib, /sbin, /tmp, /usrve /var. Linux ve Windows yüklü yazılımı farklı şekilde bölüyorlar. Windows, işletim sistemi ile yardımcı programlar arasında ayrım yapar. Linux bu ayrımı aynı şekilde yapmaz; çoğu yazılım Ubuntu'dan (distribütörden) gelmiyorsa ve aynı dizine hiyerarşiye kurulmamışsa ve yazılım paket yöneticisi tarafından izlendiğinden, her programı kendi dizininde saklamanıza gerek yoktur. Linux'ta:

  • /etc sistem yapılandırma dosyaları içindir: işletim sistemini bir bütün olarak mı yoksa belirli bir uygulamaya mı uyguladıklarını, tüm kullanıcıları etkileyen yapılandırma dosyaları.
  • /usr sistem kodu ve veriler içindir (programlar, kütüphaneler, belgeler vb.).
  • /vardeğişken veya geçici veriler içindir: geçici dosyalar, günlükler, paket yöneticisi veritabanları, yazıcı makaraları, oyun kaydetme dosyaları, vb /tmp. Yeniden başlatmalar arasında silinebilecek geçici dosyalar için de vardır .
  • /bin, /libVe /sbinkök dizininde karşılıkları olan /usr. Dıştaki dosyalar /usrönyükleme işleminde erkenden gerekli olanlardır. Bu, disklerin küçük olduğu ve /usrağ üzerinden birkaç iş istasyonu arasında paylaşılan bir dosya sisteminde olabileceği bir kalıntıdır , çoğu sistemde gerçekten yararlı bir ayrım değildir.
  • /boot günlük işletim için değil, yalnızca işletim sistemini önyüklemek için gereken birkaç dosya içerir.

Windows'un sahip olduğu hiçbir şeye karşılık gelmeyen ek dizinler var:

  • /rootkök kullanıcının giriş dizinidir. Kök kullanıcı, belirli bir kullanıcıya bağlı olmayan bir yönetici hesabıdır; Koşarken değiştirdiğin kullanıcı sudo. Ubuntu, kök kullanıcının varsayılan olarak oturum açmasına izin vermiyor.
  • /mediave /mntmount noktalarıdır: diğer işletim sistemlerinin ve uzak sürücülerin dosya sistemlerini görebileceğiniz yerdir. Windows eşdeğeri diğer sürücü harfleridir.
  • /procve /syssistem bilgilerini göster. Windows'ta, bu bilgileri görmek için menülerde dolaşmanız veya sistem komutlarını çağırmanız veya üçüncü taraf programları kurmanız gerekir.

Ubuntu, diğer Linux dağıtımları gibi, genellikle Linux Dosya Sistemi Hiyerarşi Standardını izler .


5

Ubuntu (tüm UNIX benzeri sistemler gibi) dosyaları çocuk ve ebeveyn takımlarında ilişkilerin düşünüldüğü hiyerarşik bir ağaçta düzenler. Dizinler, diğer dizinleri ve ağacın "yaprakları" olan normal dosyaları içerebilir. Ağacın herhangi bir öğesi, bir yol adına göre başvuru olabilir; mutlak bir yol adı / ile başlar ((diğer tüm dizinleri ve dosyaları içeren kök dizini tanımlar), daha sonra her birine bir / işaretiyle ayrılmış, elemana ulaşmak için travers edilmesi gereken her alt dizin listelenir.

Göreceli bir yol adı, / ile başlamayan addır; Bu durumda, dizin ağacı, geçerli dizin adı verilen bağlama göre değişen belirli bir noktadan başlayarak hareket eder. Her dizinde iki özel dizin var. ve .. sırasıyla dizinin kendisine ve üst dizine atıfta bulunur.

Tüm dosya ve dizinlerin ortak bir kökü olması, sistemde birkaç farklı depolama cihazı mevcut olsa bile, hepsinin ağacın bir yerinde, istenen yere monte edildiklerinde dizin olarak görüldüğü anlamına gelir.

Örnekleri ve daha fazla bilgiyi burada bulabilirsiniz :

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.