Linux kullanmaya başlayanların bir süre sonra karşılaştığı en önemli konulardan biri dosya sistemi ve dizin yapısıdır. Windows’taki C:\, D:\ gibi sürücü harflerine dayalı yapıdan farklı olarak Linux, tek bir dosya sistemi hiyerarşisi kullanır.

Linux’ta bu hiyerarşinin en üstünde kök dizin (/) bulunur. Sistemdeki diğer bütün dizinler, alt dizinler ve dosyalar bu ağacın altında yer alır.

UNIX ve Linux dünyasında sıkça duyduğumuz “her şey bir dosyadır” yaklaşımı da burada önem kazanır. Normal dosyaların yanı sıra dizinler, aygıtlar ve çeşitli sistem kaynakları da dosya sistemi üzerinden erişilebilir. Ancak bunu kelimesi kelimesine “her şey dosyadır” şeklinde anlamamak gerekir. Örneğin çalışan işlemler Linux’ta dosya değil, çekirdek tarafından yönetilen süreçlerdir. Bununla birlikte süreçler ve çekirdek bilgileri /proc gibi sanal dosya sistemleri üzerinden görüntülenebilir.

Linux’ta Dosya Türleri

Linux dosya sisteminde genel olarak şu türlerle karşılaşırız:

1. Normal Dosyalar

Belgeler, metinler, resimler, müzikler, videolar ve çalıştırılabilir programlar gibi günlük olarak kullandığımız dosyalardır.

Bunlar metin tabanlı olabileceği gibi ikili (binary) veriler de içerebilir.

2. Dizinler

Linux’ta dizinler, dosya ve diğer dizinlerin isimlerini ve bunlara ilişkin bilgileri organize eden özel dosya türleridir.

Başka bir ifadeyle dizinler, dosya sistemindeki hiyerarşinin oluşturulmasını sağlar.

3. Aygıt Dosyaları

Donanım ve bazı çekirdek kaynaklarıyla kullanıcı alanındaki programlar arasında bir arayüz sağlarlar.

Diskler, bölümler, terminaller ve çeşitli donanımlar /dev altında temsil edilir. Örneğin bir disk /dev/sda, bir bölüm ise /dev/sda1 gibi bir aygıt dosyasıyla temsil edilebilir.

Bunların yanında Linux’ta sembolik bağlantılar, soketler ve FIFO’lar (named pipe) gibi başka özel dosya türleri de bulunur.

Linux Dizin Hiyerarşisi

Standart Linux sistemlerinde aşağıdaki temel dizinlerle karşılaşabilirsiniz. Ancak her Linux dağıtımında yapı birebir aynı olmak zorunda değildir. Filesystem Hierarchy Standard (FHS), bu dizinlerin temel amaçlarını tanımlar.

/ — Kök Dizin

Tek bir eğik çizgiyle gösterilen /, Linux dosya sisteminin en üst noktasıdır.

Sistemdeki diğer bütün dizinler ve dosyalar doğrudan veya dolaylı olarak bunun altında bulunur.

Örneğin:

Önemli: / ile /root aynı şey değildir.

/, tüm dosya sisteminin köküdür.

/root ise root kullanıcısının ev dizinidir.

/boot — Önyükleme Dosyaları

Linux sisteminin önyüklenmesi için gerekli statik dosyaların bulunduğu dizindir.

Burada çekirdek (vmlinuz gibi), initramfs/initrd dosyaları ve önyükleyiciyle ilişkili dosyalar bulunabilir.

FHS, /boot dizinini önyükleyiciye ait statik dosyaların bulunduğu alan olarak tanımlar.

Bazı sistemlerde /boot ayrı bir disk bölümü olarak da yapılandırılabilir.

/etc — Sistem Yapılandırma Dosyaları

Linux sisteminin yapılandırılmasıyla ilgili dosyaların önemli bir bölümü /etc altında bulunur.

Ağ yapılandırmalarından kullanıcı ve servis ayarlarına kadar pek çok sistem bileşeni burada yapılandırma dosyalarına sahiptir.

Örneğin:

FHS, /etc dizinini ana makineye özgü sistem yapılandırma alanı olarak tanımlar.

Bu nedenle /etc, Linux sistem yöneticileri açısından en önemli dizinlerden biridir.

/home — Kullanıcıların Ev Dizinleri

Normal kullanıcıların kişisel dosya ve ayarlarının bulunduğu alandır.

Örneğin ali isimli bir kullanıcının ev dizini:

şeklinde olabilir.

Masaüstü ortamlarında Belgeler, İndirilenler, Resimler, Müzikler ve Videolar gibi klasörler burada bulunabilir.

Ayrıca kullanıcıların kişisel yapılandırma dosyaları da burada yer alır. Nokta (.) ile başlayan dosya ve dizinler çoğu Linux dosya yöneticisinde gizli olarak gösterilir.

Örneğin:

/root — Root Kullanıcısının Ev Dizini

/root, sistem yöneticisi olarak kullanılan root kullanıcısının ev dizinidir.

Burada önemli bir ayrımı tekrar vurgulamak gerekir:

/       → Dosya sisteminin kökü
/root → root kullanıcısının ev dizini

FHS, /root dizininin root hesabının ev dizini olarak kullanılmasını tanımlar; ancak bu dizinin bulunması FHS açısından zorunlu değildir.

/opt — Ek Uygulama Yazılımları

/opt, özellikle dağıtımın standart paketleme yapısının dışında kalan ek veya üçüncü taraf uygulama paketleri için kullanılan dizindir.

Örneğin bazı ticari veya bağımsız yazılımlar kendi dosyalarını /opt altında tutabilir.

Ancak burada önemli bir ayrıntı vardır:

Her üçüncü taraf uygulama /opt dizinine kurulmaz.

Bir uygulamanın /opt, /usr, /usr/local, kullanıcının ev dizini veya başka bir konuma kurulması; uygulamanın paketleme ve dağıtım yöntemine bağlıdır.

FHS, /opt dizinini eklenti uygulama yazılım paketleri açısından tanımlar.

/dev — Aygıt Dosyaları

/dev, sistem tarafından tanınan aygıtların ve bazı özel aygıt arayüzlerinin temsil edildiği dizindir.

Örneğin:

gibi dosyalar görebilirsiniz.

Bunlar normal kullanıcı dosyaları gibi kullanılmaz; çekirdek ve kullanıcı alanındaki programlar arasında belirli aygıt ve kaynaklara erişim sağlayan özel arayüzlerdir.

/var — Değişken Veriler

/var, sistem çalışırken değişebilen verilerin tutulduğu önemli bir dizindir.

Örneğin:

gibi alt dizinler burada bulunur.

/var/log → Sistem ve uygulama günlükleri
/var/cache → Önbellek verileri
/var/lib → Uygulamaların ve sistem bileşenlerinin kalıcı durum verileri
/var/spool → Kuyrukta bekleyen işler ve spool verileri

FHS, /var hiyerarşisini değişken verilerin tutulduğu alan olarak tanımlar.

/bin — Temel Kullanıcı Komutları

Geleneksel Linux/UNIX yapısında /bin, sistemdeki tüm kullanıcılar tarafından kullanılabilecek temel çalıştırılabilir komutları içerirdi.

Örneğin:

gibi temel araçlar tarihsel olarak /bin altında bulunurdu. Ancak 2026’da önemli bir ayrıntı var. Modern Linux dağıtımlarının önemli bir bölümünde UsrMerge yaklaşımı kullanılmaktadır.

Bu sistemlerde:

gibi yapılar sembolik bağlantılar olabilir veya bu dizinler /usr hiyerarşisiyle birleştirilmiş olabilir. Dolayısıyla günümüzde /bin gördüğümüzde mutlaka bağımsız bir fiziksel dizin düşünmemeliyiz.

FHS hâlâ /bin için temel kullanıcı komutlarının bulunduğu hiyerarşiyi tanımlamaktadır.

/sbin — Sistem Yönetim Araçları

Geleneksel yapıda sistem yönetimi, önyükleme ve kurtarma işlemlerinde kullanılan temel araçlar /sbin altında bulunurdu.

Örneğin:

gibi araçlar bu hiyerarşiyle ilişkilidir.

Ancak /bin için olduğu gibi /sbin de modern dağıtımlarda çoğu zaman /usr/sbin ile birleştirilmiştir veya ona sembolik bağlantıdır.

Ayrıca /sbin ile /bin arasındaki ayrımın temel amacı güvenlik değildir. FHS bu ayrımı daha çok kullanıcı komutları ile sistem yönetimi araçlarını ayırmak için tanımlar.

/usr — Kullanıcı Alanı ve Sistem Yazılımları

/usr, Linux dosya sistemindeki en kapsamlı hiyerarşilerden biridir.

Burada yalnızca “kullanıcı dosyaları” bulunduğunu düşünmek yanlıştır. Modern Linux sistemlerinde işletim sisteminin çok büyük bölümü /usr altında yer alabilir.

Örneğin:

gibi önemli alt dizinler vardır.

FHS, /usr hiyerarşisini sistem genelinde kullanılan, büyük ölçüde statik ve paylaşılabilir verilerin bulunduğu ikinci büyük bölüm olarak tanımlar.

/usr/bin – Çoğu kullanıcı komutu burada bulunur.

/usr/sbin – Sistem yönetimiyle ilişkili ve genellikle kullanıcıların doğrudan çalıştırması gerekmeyen araçların bulunduğu alandır.

/usr/lib – Kitaplıklar ve paketlerin ihtiyaç duyduğu çeşitli mimariye özgü dosyaları içerir.

/usr/share – Mimariye bağlı olmayan, çoğunlukla salt okunur veriler burada bulunur. Örneğin belgeler, yerelleştirme dosyaları, ikonlar ve man sayfaları gibi veriler bu hiyerarşide yer alabilir.

/usr/local – Sistem yöneticisinin dağıtım tarafından sağlanmayan, yerel olarak kurduğu yazılımlar için ayrılmış alandır.

/proc — Çekirdek ve Süreç Bilgileri

/proc, Linux çekirdeğinin sunduğu sanal bir dosya sistemidir.

Buradaki dosyalar gerçek disk dosyaları değildir. Çekirdek tarafından çalışma zamanında oluşturulan bilgiler kullanıcıya dosya sistemi benzeri bir arayüz üzerinden sunulur.

Örneğin:

gibi dosyalar sistem hakkında bilgi verir.

Çalışan işlemler de /proc altında PID numaralarıyla temsil edilir:

Sistem kapatıldığında /proc üzerindeki bu çalışma zamanı görünümü ortadan kalkar.

/sys — Kernel ve Donanım Bilgileri

/sys, Linux çekirdeğinin aygıtlar, sürücüler, çekirdek alt sistemleri ve çeşitli kernel nesneleri hakkında bilgi sunmasını sağlayan sysfs adlı sanal dosya sisteminin bağlandığı yerdir.

Örneğin:

gibi dizinler sistemdeki donanım ve çekirdek nesneleri hakkında bilgi sağlar.

/proc ile /sys birbirine benzer görünse de aynı amaç için kullanılmazlar.

/run — Çalışma Zamanı Verileri

/run, sistemin mevcut çalışmasına ilişkin geçici çalışma zamanı verilerinin tutulduğu dizindir.

Örneğin süreç kimlikleri (PID), soketler ve servislerin çalışma sırasında oluşturduğu çeşitli bilgiler burada bulunabilir.

Önemli nokta şudur:

/run içeriği sistemin yeniden başlatılması sonrasında kalıcı olarak korunmaz.

FHS, /run altındaki verilerin önyükleme sırasında temizlenmesini öngörür.

/tmp — Geçici Dosyalar

/tmp, programların geçici dosyalarını oluşturmak için kullanılan dizindir.

Kurulum programları, editörler, uygulamalar ve çeşitli sistem araçları çalışma sırasında burada geçici veriler oluşturabilir.

Ancak şu noktaya dikkat etmek gerekir:

/tmp içindeki her dosyayı “kritik sistem dosyası” olarak görmek de, “istediğim zaman silebilirim” diye düşünmek de doğru değildir.

Bazı dosyalar çalışan uygulamalar tarafından kullanılabilir. Ayrıca /tmp temizleme politikası dağıtıma ve yapılandırmaya göre değişebilir.

Bu nedenle çalışan programların kullandığı geçici dosyaları rastgele silmek sorunlara yol açabilir.

/mnt — Geçici Bağlama Noktası

/mnt, dosya sistemlerini geçici olarak bağlamak için kullanılan geleneksel bir bağlama noktasıdır.

Örneğin sistem yöneticisi bir diski manuel olarak bağlamak istediğinde:

gibi bir kullanım tercih edebilir.

FHS, /mnt dizinini geçici olarak bağlanan dosya sistemleri için bağlama noktası olarak tanımlar.

/media — Çıkarılabilir Medya

USB bellek, harici disk veya başka çıkarılabilir medya aygıtları için kullanılan bağlama noktasıdır.

Özellikle masaüstü Linux ortamlarında çıkarılabilir aygıtların otomatik olarak bağlandığı yerlerden biri /media hiyerarşisidir.

/mnt ile /media arasındaki temel fark, /mnt‘nin daha çok manuel/geçici bağlama, /media‘nın ise çıkarılabilir medya için öngörülmesidir.

/lib — Temel Kitaplıklar

Geleneksel Linux dosya sistemi yapısında /lib, sistemin önyüklenmesi ve /bin ile /sbin altındaki temel programların çalışması için gerekli temel paylaşımlı kitaplıkları ve çekirdek modüllerini içerir.

Ancak burada da modern Linux dağıtımlarındaki UsrMerge (Linux ve Unix benzeri işletim sistemlerinde kök dizindeki temel sistem klasörlerinin /usr dizini altında birleştirilmesi işlemi) yapısını unutmamak gerekir.

Birçok sistemde /lib, /usr/lib ile birleştirilmiş veya ona sembolik bağlantı hâline getirilmiştir.

/lost+found — Kurtarılan Dosyalar

/lost+found, özellikle ext2/ext3/ext4 gibi dosya sistemlerinde dosya sistemi denetimi ve kurtarma işlemleriyle ilişkilendirilen özel bir dizindir.

Dosya sistemi beklenmedik şekilde kapandığında veya bozulduğunda fsck gibi araçlar bazı kurtarılabilir dosya parçalarını burada toplamak için kullanabilir.

Ancak önemli bir düzeltme:

/lost+found, Linux kurulumu sırasında bütün Linux sistemlerinde otomatik olarak oluşturulan genel bir dizin değildir.

Varlığı kullanılan dosya sistemine ve yapılandırmaya bağlıdır.

/srv — Hizmet Verileri

/srv, sistemin sunduğu hizmetlerle ilişkili veriler için ayrılmıştır.

Örneğin bir sunucu üzerinde web, FTP veya başka bir ağ hizmetinin sunduğu veriler bu hiyerarşi altında tutulabilir.

FHS, /srv dizinini sistem tarafından sağlanan hizmetlerin verileri için tanımlar.

Ancak hangi hizmetin hangi alt dizini kullanacağı sistem yöneticisinin ve kullanılan yazılımın yapılandırmasına bağlıdır.

Linux Dizin Yapısını Kısaca Hatırlayalım

Bu dizinlerin temel amaçları güncel Filesystem Hierarchy Standard’da tanımlanmaktadır.

Sonuç

Linux dizin yapısını ilk gördüğünüzde karmaşık görünebilir. Ancak dizinlerin görevlerini öğrendikçe bu yapı oldukça mantıklı hâle gelir.

Windows’ta farklı diskleri C:\, D:\ gibi sürücü harfleriyle görmeye alışmış olabiliriz. Linux’ta ise bütün dosya sistemi tek bir ağaç yapısı içerisinde / kökünden başlayarak ilerler.

Bir dosyanın nerede bulunacağını anlamak için çoğu zaman şu temel ayrımı bilmek yeterlidir:

/etc → yapılandırma

/home → kullanıcı dosyaları

/usr → sistem yazılımları ve paylaşılan veriler

/var → değişken veriler

/dev → aygıtlar

/proc → süreç ve kernel bilgileri

/sys → kernel, aygıt ve sürücü bilgileri

/run → çalışma zamanı verileri

/tmp → geçici dosyalar

Bu yapıyı öğrendiğinizde Linux terminalinde karşılaştığınız yolların ne anlama geldiğini çok daha kolay anlayabilirsiniz.

Üstelik günümüz Linux sistemlerinde /bin, /sbin ve /lib gibi geleneksel dizinlerin /usr hiyerarşisiyle birleştirilmiş olabileceğini de unutmamak gerekir. Dolayısıyla Linux dizin yapısını öğrenirken yalnızca eski UNIX geleneğini değil, modern Linux dağıtımlarının kullandığı /usr merkezli yapıyı da dikkate almak gerekir.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir