Linux’ta her şey bir dosyadır. Linux dağıtımları genellikle Filesystem Hierarchy Standard’ı (fsh) kullanır. Bu sayede farklı Linux dağıtımları kullanıldığı zamanda da sorun yaşanılmaz. Genel bilindik dosya sistemi çoğumuzun günlük hayatta kullandığı işletim sistemi olan Windows’un dosya sistemidir. Windows’ta C: D: gibi sürücüler vardır ve dosyalar bu sürücülerin içinde depolanır. Ancak bu dosya sistemi Linux’ta farklıdır.
Windows Sürücüleri
Linux’ta Windows gibi C,D,E sürücüleri bulunmaz. Bütün Linux dağıtımları başta bir root directory olan kök dizine sahiptir. Bu kök dizin “/” ile gösterilir. Buradan bağlanarak alt dizinlere geçiş yapılır. Filesystem hiyerarşisinde tüm dosyalar ve dizinler farklı sanal ya da fiziksel cihazlarda olsalar bile bu kök dizinde bulunurlar. Yani Linux’ta her şey bu kök dizinin altında bulunur.
Linux Dosya Sistemi
Kök Dizin Altındaki Klasörler
/bin
Binary dizinidir. Binary dosyalar bu dizinde bulunur. Binary dosyalar makine kodlarını ya da kaynak kodları içeren compile edilmiş dosyalardır. Bu dosyalar executed olan çalıştırılabilir dosyaları da içerir. Bu çalıştırılabilir dosyalar bizim kullandığımız komutların kendisidir (ls, pwd vs.). Bu komutlar sistem açıldıktan sonra herhangi bir network bağlantısına gerek duymadan kullanılabilir hale gelirler.
/sbin
System binary dizinidir. Root tarafından kullanılan dosyaları içerir. Sistemi yeniden başlatma, Iptables konfigürasyonları bu dizindedir. Sistem binarylerini çalıştırmak için root yetkisine sahip olmak gerekir. Standart kullanıcıların çalıştırma yetkisi yoktur..
/lib
System libraries dizinidir. Programlar için kullanılan kütüphanelerin ve modüllerin bulunduğu dizindir. Burada bulunan dosyalar genellikle bin ve sbin dizinlerindeki komutları çalıştırmak için gereklidir.
.so veya .lib uzantılı dosyalar bulunur.
Windowstaki .dll dosyalarına benzerdir.
/opt
Optional addon apps dizinidir. Linux’un kendi dağıtımıyla gelmez. Kullanıcının yüklemiş olduğu yazılımları içerir.
/boot
Boot loader files dizinidir. Sistemin başlaması için gerekli olan konfigürasyon dosyalarına ve öncelik sırasına sahip olan dizindir. Linux kernel örnek verilebilir.
/etc
Editable text configuration dizinidir. Sistem konfigürasyon dosyalarını ve shell scriptlerini içerir. Genelde .conf uzantsına sahip dosyaları barındırır. Bunlara DNS servislerinin konfigürasyonunun yapıldığı Resolv.conf dosyası ve schedule taskların konfigürasyonlarının yapıldığı Crontab örnek verilebilir.
/home
Linux’ta bir kullanıcı oluşturulduğunda o kullanıcı ismiyle de bir dizin oluşur. Her kullanıcının kendi konfigürasyonları ve dosyaları bu dizin içerisinde bulunur. Windows’ta bulunan users veya kullanıcılar klasörü gibi düşünülebilir. Kullanıcılar kendi home dizinleri altına da binary dosyaları oluşturulabilir. x kullanıcısı için /home/x/bin bu dizine örnek verilebilir.
/root
Sistemdeki en yetkili kullanıcı olan root’un home dizinidir. Diğer kullanıcılardan farklı olduğu için home dizininin içerisinde bulunmaz. Farklı kullanıcılarla bu dizine erişilmek istenildiğinde root izninin alınması gereklidir. Windows’taki administrator kullanıcısının home dizini bu dizine örnek verilebilir.
/srv
Service data dizinidir. Sistem tarafından sağlanan servislerin bulunduğu dizindir. Webservler’lar için kullanılan script ve datalar burada bulunur.
/media
Removable devices dizinidir. USB, CD-ROM gibi kaldırılabilir veya çıkarılabilir aygıtların bağlandığı dizindir.
/mount
Mount directory dizinidir. Hard diskin sisteme bağlanmasını sağlayan dizindir.
/tmp
Temporary files olarak bilinir. Geçici dosyalar burada bulunur. Önemsiz ve sonradan kaldırılacak dosyalar buradadır. Sistem yeniden başlatıldığında tmp klasörü tamamen silinir. Önemli dosyalar tmp dizininde tutulmamalıdır.
/dev
Device files dizinidir. Linux’ta her şey bir dosya olduğu için donanım aygıtları da dosya olacak şekilde bu dizinde tutulur. Sabit disk, USB aygıtları örnektir.
/proc
Process information dizinidir. Çalışan process’ler için dosyaların tutulduğu sanal bir dosya sistemidir. Buna bağlı olarak kernel’ın yüklenen ilk kısmıdır. Donanım ya da sistemle ilgili bilgiler burada bulunur. CPU bilgilerinin tutulduğu cpuinfo dosyası bu dizindedir.
/sys
System files dizinidir. Donanımsal bilgiler burada bulunur. Linux 2.6 çekirdeği için oluşturulmuştur.
/var
Variable files dizinidir. Veritabanı dosyaları, log dosyaları, geçici dosyalar gibi zamanla değişen dosyaların bulunduğu dizindir.
Var dizini altındaki dizinler
/var/lib
Uygulamaların durumlarının bilgilerini içerir.
/var/log
Sistem ya da uygulama loglarını içerir.
/var/tmp
Kullanıcıların geçici dosyalarını barındıran dizindir. Tüm kullanıcılar bu dizine erişebilir. Kök dizini altında bulunan /tmp dizini ile karıştırılmamalıdır. /var/tmp dizinine tüm kullanıcılar erişebilir ancak /tmp dizinine tüm kullanıcılar erişemez. Kullanıcılarla dosya kopyalama, taşıma gibi işlemler yapılacağı zaman erişim yetkilerine takılmamak için bu dizin kullanılabilir.
/usr
Unix System Resources dizinidir. En çok yer tutan dizinlerden birisidir. Kullanıcılar tarafından kullanılan program ya da dosyaları içerir. Binary dosyalarını, kütüphaneleri veya dokümanları içerebilir. Eğer bir dosyayı /bin altında bulunulamıyorsa /usr/local/bin adresine bakılması gerekir.
/lost+found
Sistemde herhangi bir problem olduğunda hata ile karşılaşılıp kapandığında bazı dosyaların kaybolmaması için fsck komutu ile dosyaların bu dizinde tutulması sağlanır.
Bu yazıda Linux Dosya Sistemi Hiyerarşisi hakkında bilgi vermeye çalıştım. Farklı Linux dağıtımlarında kullanılan standart bir yapı ve dizin yapısı mevcuttur. Linux dosya sistemi, Windows dosya sistemiyle farklılık gösterir ve her şeyin birer dosya olduğu bir yapısı vardır. Dosyalar ve dizinler, kök dizini olan “/”” altında bulunurlar. Bu bilgiler ışığında Linux dosya sistemi daha iyi anlaşılabilir ve yönetilebilir hale gelir.