Linux’ta Dosya Sistemi Hiyerarşisi – Ayrıntılı Rehber

Share

Linux Dosya ve Dizin Yönetimi

 

Linux.Directory

Tüm Linux İşletim Sistemlerinde sistem yapısı “file” (dosya) ve “directory” (dizin) yapısı ile oluşturulmuştur. Sistem işleyişini sağlayan belli dizinler ve dosyalar kullanılır. Dizin sistemi / işaretiyle belirtilen root (kök) ile başlar.Kök dizin içinde kurulumun ardından şekillenen çok sayıda alt dizin yer alır.

Linux’ta Dosya Sistemi Hiyerarşisi

Linux, / (root) klasöründen başlayarak, boot işlemindeki önem sırasına göre klasörleri düzenler. Aklınıza /(slash) işareti niye kullanılıyor diye bir soru gelebilir; bu Linux’un Unix geleneğini takip etmesindendir.

 

Linux directory (dizin yapısı)

Directory Açıklama
/ ( root ) / işaretiyle belirtilen “root” disk bölümü Linux işletim sisteminin gereksinim duyduğu tek bölümdür. Bütün directory’lerin tepe noktasıdır diyebiliriz.
/bin Linux işletim sisteminin komutları bu bölümde yer alır. Örnek olarak mkdir,ls,top …
/boot Linux işletim sisteminin açılışını yapan dosyaları içerir.
/dev Aygıtlar için dosya tanımlamalarının bulunduğu bölümdür. Örnek olarak disk , cd-rom, ekran kartı , vb..
/etc Konfigürasyon dosyaları bu bölümde bulunur.
/home Kullanıcı dosyalarının bulunduğu bölüm. Örnek olarak “cihan” adlı kullanıcının dosyaları /home/cihan  directory içerisinde bulunmaktadır.
/lib Linux işletim sisteminin kütüphane dosyaları bulunmaktadır.         ( Kernel Modülleri )
/mnt Aygıtlar için gerekli olan bağlama ( mount ) dosyalarının bulunduğu directory dir.
/opt Yüklenen programların bulunduğu directory
/proc Bilgi dosyalarının yer aldığı bölümdür. Örnek CPU ve Sistem hakkında bilgiler vs..
/root Root kullanıcısının home directory
/sbin Yönetim komutları ve servislerin yer aldığı directory
/sys /proc gibi sistem aygıtlarının yer aldığı bölümdür.
Swap Sanal bellek alanı, Bilgisayarın ana belleğine ilave olarak kullanılmak üzere ayrılan disk alanıdır.
/tmp Uygulamalar tarafından kullanılan geçici dosyalar bulunur.
/usr Kullanıcı dökümanlarını, dosyalarını ve kütüphanelerini içerir.
/var Çeşitli uygulamalar tarafından kullanılan directory’ler bulunur. Log ve buna benzer dosyalar bu directory de bulunur.

file_hierarchy

/ (root) : Yukarda belirttiğimiz gibi, / (root) işletim sisteminin başlangıç noktasıdır. Bütün diğer klasörler, dosyalar, root’un ‘çocuklarıdır’. Bilgisayar başlarken, ilk önce buraya bakılır ve bulunmazsa sistem başlamaz. / (root) ve /root (root kullanıcısına ait klasör) birbirinden ayrıdır. İlerki bölümde farkını açıklayacağız

/bin : İşletim sisteminizi kullanmak için gereken birçok yararlı komut /bin klasörü altındadır. cat, mkdir, cp, ls, mv, rm vb. temel komutların hepsini burada bulabilirsiniz. Sistem boot ettiğinde, ilk olarak /bin klasörü çalışır hâle getirilir. Network bağlantınız olmasa ya da önemli klasörlere bir nedenden dolayı erişemezseniz bile, /bin klasöründeki komutlar ne olursa olsun çalışır. Bir sorun çıktığında, /bin klasörü altındaki komutları kullanarak sistemi onarırız.

/boot : Boot, işletim sisteminin yüklenme evresidir. /boot klasörü, boot işlemi için gereken her şeyi içerir. Bilgisayarın başlangıç (boot) aşamasında gerekmeyen ayar ve yapılandırma dosyaları burada bulunmaz; başka klasörlerden gerektiği zamanlarda yüklenir.

/dev : Linux’ta her şey bir dosyadır; donanım aygıtları da öyle… USB girişleri, seri ve paralel portlar, diskleriniz, cd-rom’larınız vb… bütün aygıtlar /dev klasörü altında tutulan dosyalardan ibarettir. Örneğin /dev altında bulunan hda1 dosyası, sabit diskinizi temsil eder. Ya da /dev/dsp, ses aygıtınızdır. Bunları programlar vasıtasıyla kullanırız ancak direk müdahale ekmek mümkündür.

Bazı Önemli Aygıt Dosyaları:
/dev/ttyS0 : Fare, modem gibi aygıtların bağlandığı seri port. (COM 1)

/dev/psaux : PS/2 girişi; fare ve klavyeler içindir.

/dev/lp0 : Paralel port (LPT 1); yazıcı, tarayıcı vs…

/dev/dsp : Birincil ses aygıtı /dev/usb : USB aygıtları

/dev/sda : SCSI aygıtlar, Flash Bellekler, harici CD-ROM’lar vs…

/dev/scd : SCSI CD-ROM’lar

/dev/js0 : Joystick (Microsoft Türkçesiyle Eğlence Çubuğu)

/etc : İşletim sistemini bir vücuda benzetirsek, /etc klasörünü sinir sisteminin merkezi olarak görebiliriz. Sisteme dair bütün yapılandırma, bu klasör veya bu klasörün alt klasörlerinde bulunur. Yapılandırma dosyası, bir programın işlemlerini kontrol etmek için kullanılan lokal bir dosyadır; durağandır ve çalıştırılmak için değildir. /etc klasörü içersinde bulunan bütün klasör ve yapılandırma dosyalarını tek tek incelememiz mümkün değil. Ancak son kullanıcının işine yarayacak bir ipucu verebiliriz. Sürekli DNS problemleri yaşayanlar, /etc/resolv.conf dosyasını root olarak açıp, yeni DNS adresleri ekleyebilir. Siz de bu sorunlardan mustaripseniz, root olarak bu dosyayı açıp aşağıdaki satırları dosyanın en başına ekleyin

nameserver 195.175.39.39 nameserver 195.175.39.40

/home : Zamanında home klasörüyle ilgili hoş bir tanım duymuştum; /home klasörünü kullanıcıların kalesi olarak açıklıyordu. Bu gayet yerinde bir açıklama. /home klasörü içerisinde her kullanıcının kendi adında bir alt klasörü bulunur. Örneğin kullanıcı adınız “ali” ise, /home/ali size aittir ve altında istediğiniz her şeyi yapabilirsiniz; ama yapabilecekleriniz bu klasörle sınırlıdır. /home klasörünü, Windows’taki Documents and Settings’e benzetebiliriz. Ama daha güvenli bir yapıdır. Çünkü Linux’ta bir başkasının ev klasörüne müdahale edemezken, Windows’ta çok zorlanmadan istediğinizi yapabilirsiniz.

/initrd : initrd, initial ramdisk kısaltmasıdır. Aşağı yukarı anlamı Başlangıç Bellek Diski oluyor. Boot aşamasında ilk önce çekirdek (kernel) yüklenir. Bundan sonra bilgisayarınızın belleğinde bir Bellek Diski oluşturulur. Oluşturulan Bellek Disk üzerinde / (root) yansısı açılır ve kök dizin olarak monte edilir. /initrd bu işlemlerin yapılması ve Linux’un yüklenmesi için gereklidir.

/lib : Kernel modülleri ve paylaşılan kütüphane dosyaları bu klasörde bulunur. Var olan çekirdek modüllerini /lib/modules/[versiyon_numarasi] içersinde bulabilirsiniz. Bahsedilen kütüphane dosyalarıysa, sistemi başlatmak ve /bin ile /sbin içersindeki komutları çalıştırmak için gereklidir. Paylaşılan kütüphane dosyalarını, Windows’ta DLL (Dynamically Linked Library) ile eş tutabiliriz. Linux’ta kütüphane dosyalarının sonu “.so” ile biter.

/lost+found : İngilizce bir terim olan Lost and Found, kayıp eşya bürosu demektir. /lost+found klasörünün yaptığı işi düşününce, bundan uygun bir isim herhalde olamazdı. Bazen sistemimizde bir problem olur; yanlış kapatırız, elektrik gider, durup dururken bilgisayar yeniden başlar vs… Bu gibi durumlarda Linux’ta fsck (File System Check) komutu devreye sokulur. fsck, Windows’taki Scandisk programına benzetilebilir. Düzeltilemeyen bir sorun varsa, bağlantıları kopmuş kayıp dosyalar ortaya çıkmışsa, bunlar /lost+found altına atılır. Bağlantı kopması, inode gibi konulara girmek istemiyorum; biraz karmaşık. Kısaca özetlersek; kötü bir sistem kapanmasından sonra, olması gereken bazı dosyaları bulamıyorsanız, kayıp eşya bürosuna bakmanızda yarar var.

/media : CD-Rom, disket sürücü, flash bellek gibi çıkarılabilir aygıtlar buraya bağlanır. En basit tanımla, çıkarılabilir aygıtların, bağlantı noktası (mount point) olarak düşünebilirsiniz.

/mnt : /media klasörüne benzer. Temel farkı; çıkarılabilir aygıtlar yerine, dosya sistemleri veya donanım aygıtları için kullanılıyor oluşudur. Bağlama (mount) işlemi, herhangi bir dosya sistemini, işletim sisteminin kullanmasını sağlar. Nereye bağladığınız sizin tercihinizdir. Yani bir diski, /media veya /mnt klasörüne ya da bir başka yere bağlamanız fark etmeyecektir. Sadece genel kabul görmüş bazı bağlantı noktaları bulunuyor; /mnt klasörü de onlardan bir tanesi.

/opt : Dağıtımdan bağımsız ekstra yüklenen paketler için /opt klasörü kullanılmaktadır. Örneğin Google Earth programını indirip kurmak istediğinizde, ‘default’ olarak kurulacağı nokta, /opt/google-earth adresidir. Elbette ki bunu değiştirebilir ve size uygun gelen bir başka konuma yükleyebilirsiniz. Ancak daha önce söylediğimiz gibi bazı şeyler genel kabul görmüştür. Ekstra yüklenen yazılımların, /opt adresine atanması da buna bir örnektir. Windows’taki C:\Program Files’i hatırlayalım;. programları buraya kurmak zorunlu değil; ama hemen hepsi buraya kuruluyor. Aynı mantık burada da geçerli.

/proc : /proc oldukça özel sanal bir dosya sistemidir. Bizim bildiğimiz anlamda fiziksel dosyalar bulundurmaz; sistem durumuna dair bilgi içeren sanal dosyaları vardır. Örneğin “cat /proc/swaps” yazarak sisteminizdeki takas dosyalarına dair bilgi alabilir ya da “cat /proc/cpuinfo” komutuyla işlemcinizin özelliklerini görebilirsiniz. /proc klasörü içersindeki dosyalar, sadece sistem durumunu görüntülemek için kullanılmaz; gerektiğinde ayarlamak için de kullanılabilir. Fakat son kullanıcılara hitap etmediğinden, bu konuyu burada keselim.

/root : Unix’in ilk versiyonlarında root kullanıcısının kendine ait bir ev klasörü yoktu. Direkt olarak / (root
klasörü) altında çalışırdı. Fakat zamanla bunun iyi bir yöntem olmadığı anlaşıldı ve root kullanıcısının ayrı bir klasöre sahip olması gerektiğine karar verildi. Diğer kullanıcılardan farklı olduğu için root’un ev klasörü /home altında tutulmaz; ayrılması için /root klasörü altındadır.

/sbin : Linux’ta normal kullanıcının kullanabileceği komutlarla, sistem kullanıcısının kullanabileceği komutlar ayrılmıştır. root tarafından kullanılacak bakım ve yönetim için kullanılan önemli programlar, /sbin altında tutulur. Daha az öneme sahip yönetim komutlarıysa, /usr/sbin klasöründedir. Eğer lokalde, yani kullandığınız makineye özgü yönetici (root) komutları bulunuyorsa, bunları da /usr/local/sbin altında bulabilirsiniz.

/usr : /root kullanıcısına benzer bir hikaye /usr için de söz konusudur. Unix ilk çıktığında, kullanıcılara ait ev klasörleri, /usr altında tutulurdu. Örneğin cagatay isimli bir kullanıcının ev klasörü /usr/cagatay şeklindeydi. Bu yöntem zamanla değişti ve /home klasörü doğmuş oldu. /usr klasörü hâlâ çok önemli bir yapıdır ve işletim sisteminizde kullandığınız her şeyle ilişkisi bulunur. /usr klasörünün önemi, yüklediğiniz programların buraya atılmasından kaynaklanır. /opt adresi işletim sistemi dışında gelen 3.parti programlar içindir. Fakat işletim sistemi aracılığıyla ya da paket yönetim sistemlerini kullanarak yüklediğiniz her şey, /usr altına aktarılır. Aynı zamanda yüklediğiniz programların çalışmak için ihtiyaç duyacağı kütüphane dosyaları, /usr/lib altındadır. /usr ile ilgili söylenebilecek bir başka nokta da, local klasörüdür. Linux, sunucu olarak çok istemciye hizmet verebilecek bir işletim sistemidir. Bir Linux sunucu (server) kurarsanız, ona bağlanan yüzlerce istemci (client) olabilir. Her istemci bilgisayara, /usr altındaki programların ayrı ayrı yüklenmesi gerekmez; bir başka konumdan bu komutları çalıştırabilirsiniz. Ancak /usr altında bulunan local klasörü sadece kullandığınız makineye özeldir. Örneğin /usr/local/bin klasörü içinde bulunan bütün komutlar, direkt olarak kullandığınız makineye yüklenmiştir. /usr/bin komutları ise geneldir ve bir ağ üstündeki bütün makinelerden erişilebilir. local gördüğünüzde, bunun sadece sizin makinenize özel olduğunu bilin.

/var : Log dosyaları, e-mail ve printer kuyrukları gibi değişken sistem bilgilerini barındırır. Sisteminize dair tutulan log’ları buradan görebilir; güvenlik durumunu buradan kontrol edebilirsiniz.

/tmp : Geçici dosyalar içindir. Birçok program, burayı geçici depolama alanı olarak kullanır. /tmp klasörünün içeriği genellikle KB’lar mertebesinde kalır ve genellikle işletim sistemi yeniden başlarken içindeki dosyalar silinir. /tmp klasörü altında bulunan dosyaları, ne yaptığınızdan emin değilseniz, kesinlikle silmemelisiniz! Sistem genelinde olmasa bile, program bazında problemler çıkabilir. Örneğin açık bir soket dosyasını sildiğinizde, onu kullanan programa ve kendinize sorun çıkartabilirsiniz. Linux (ya da Unix diyelim) dosya sistemi oldukça özel bir yapı. İlk bakışta insanın gözünü korkutuyor, bunu kabul ediyorum. Ama fobinizle yüzleşip, temel prensipleri öğrendiğinizde oldukça
sistemli bir yapının içerisinde olduğunuzu fark ediyorsunuz. O yüzden fobinizle kesinlikle yüzleşmenizi tavsiye ederim.

(Visited 537 times, 1 visits today)