Linux

Linux Dosya Sistemi

Reklam

Windows’tan Linux’a geçen herkesin ilk şaşırdığı şeylerden biri dosya sistemidir. “C:” sürücüsü nerede? Program Files klasörü yok mu? Belgelerim nereye gitti? Linux’ta her şey tek bir ağaç yapısının içinde, kök dizin denilen “/” klasöründen başlayarak düzenlenir. Diskler, USB bellekler, hatta donanım aygıtları bile bu ağacın bir dalı olarak görünür.

Bu yazıda, sosyal medyada paylaşılan el çizimi “Linux File System” (Linux Dosya Sistemi) görselini temel alarak Linux’un dizin yapısını baştan sona inceleyeceğiz. Görseldeki her klasöre ve alt klasöre tek tek değineceğiz. Görseldeki yazım hatalarını ve eksikleri düzelteceğiz, günümüz Linux dağıtımlarında değişen noktaları da ekleyeceğiz.

Temel Kavram: Her Şey Kökten Başlar

Reklam

Görselin solunda “Root” yazan kutu, Linux dosya sisteminin başlangıç noktası olan kök dizini (root directory) temsil eder. Kök dizin, eğik çizgi ile gösterilir: “/”. Diğer tüm klasörler bu kökten dallanır.

Windows ile karşılaştırırsak:

• Windows’ta her diskin kendi kökü vardır: C:, D:, E:
• Linux’ta tek bir kök vardır: /. İkinci bir disk veya USB bellek, bu ağacın içindeki bir klasöre “bağlanır” (mount edilir). Örneğin /media/kullanici/USB gibi.

Ayrıca Linux’ta yollar ters eğik çizgi () ile değil, eğik çizgi (/) ile ayrılır ve büyük-küçük harfe duyarlıdır. Yani “Belgeler” ile “belgeler” iki farklı klasördür.

Önemli bir ayrım: “Root” kelimesi Linux’ta iki farklı anlamda kullanılır. Kök dizin “/” anlamına gelirken, yönetici kullanıcının adı da “root”tur ve bu kullanıcının ev klasörü “/root” dizinidir. Görselde “/root” klasörü yer almıyor; yazının ilerleyen kısmında bu eksiği de tamamlayacağız.

Bu Düzeni Kim Belirliyor?

Linux’taki klasör yapısı rastgele değildir. FHS (Filesystem Hierarchy Standard – Dosya Sistemi Hiyerarşi Standardı) adlı bir standart tarafından tanımlanır. Bu standart Linux Foundation tarafından yönetilir ve son sürümü 3.0’dır. Ubuntu, Debian, Fedora, Arch gibi dağıtımların hepsi bu yapıyı büyük ölçüde takip eder. Bu sayede bir dağıtımda öğrendiğiniz dizin yapısı diğerlerinde de geçerlidir.

Kendi bilgisayarınızda bu yapının resmi açıklamasını görmek için terminale “man hier” yazmanız yeterlidir.

Kök Dizindeki Klasörler

Görselde kök dizinden 14 klasör dallanıyor. Bunları görevlerine göre gruplayarak inceleyelim.

Sistemi Başlatan Ve Çalıştıran Klasörler

/boot – Önyükleme Dosyaları
Bilgisayar açılırken gereken dosyalar burada bulunur: Linux çekirdeği (vmlinuz), başlangıç RAM diski (initrd/initramfs) ve GRUB önyükleyicisinin ayarları (/boot/grub). Bu klasördeki dosyaları silmek veya değiştirmek, sistemin açılmamasına yol açabilir. Çekirdek güncellemelerinde eski çekirdekler de burada birikir; /boot ayrı küçük bir bölüm ise zamanla dolabilir.

/bin – Temel Komutlar
“Binary” (ikili / çalıştırılabilir dosya) kelimesinden gelir. ls, cp, mv, cat, mkdir, rm gibi her kullanıcının ihtiyaç duyduğu temel komutlar burada yer alır.

/sbin – Sistem Yönetim Komutları
“System binaries” anlamına gelir. fdisk, mkfs, reboot, ip, fsck gibi genellikle yönetici (root) yetkisi gerektiren sistem yönetim komutlarını içerir.

/lib – Paylaşılan Kütüphaneler
/bin ve /sbin içindeki programların çalışması için gereken paylaşılan kütüphaneler (Windows’taki .dll dosyalarının karşılığı, Linux’ta .so dosyaları) ve çekirdek modülleri (/lib/modules) burada bulunur. 64 bit sistemlerde /lib64 klasörü de görebilirsiniz.

Güncel bir not: Ubuntu, Fedora, Debian ve Arch gibi modern dağıtımlarda “usrmerge” adı verilen bir değişiklik yapıldı. Artık /bin, /sbin ve /lib gerçek klasörler değil, sırasıyla /usr/bin, /usr/sbin ve /usr/lib klasörlerini gösteren kısayollardır (sembolik bağlantı). Görselde bunlar ayrı klasörler olarak çiziliyor; geleneksel yapı böyledir, ama bugün kendi sisteminizde “ls -l /” komutunu çalıştırırsanız “bin -> usr/bin” şeklinde bir bağlantı görürsünüz.

/dev – Aygıt Dosyaları
Linux’un “her şey bir dosyadır” felsefesinin en güzel örneğidir. Diskler, USB bellekler, terminaller, ses kartı gibi donanımlar burada birer dosya olarak görünür:

• /dev/sda, /dev/sdb: Birinci ve ikinci disk (SATA/USB)
• /dev/nvme0n1: NVMe SSD
• /dev/sda1: Birinci diskin birinci bölümü
• /dev/null: İçine yazılan her şeyi yok eden “kara delik”
• /dev/zero: Sonsuz sıfır üreten dosya
• /dev/random ve /dev/urandom: Rastgele sayı kaynakları

Bu dosyalar disk üzerinde gerçekten yer kaplamaz; sistem çalışırken çekirdek tarafından otomatik oluşturulur.

/etc – Yapılandırma Dosyaları
Sistemin ve programların ayar dosyaları burada tutulur. Örnekler: /etc/passwd (kullanıcı listesi), /etc/hostname (bilgisayarın adı), /etc/fstab (açılışta bağlanacak diskler), /etc/hosts (yerel alan adı tanımları), /etc/apt (Ubuntu/Debian paket kaynakları). Bu dosyaları değiştirmek genellikle yönetici yetkisi ister. Değişiklik yapmadan önce yedek almak iyi bir alışkanlıktır.

Kullanıcı Verileri

/home – Kullanıcı Ev Klasörleri
Windows’taki “C:\Users” klasörünün karşılığıdır. Her kullanıcının burada kendi klasörü vardır: /home/ahmet, /home/ayse gibi. Belgeler, İndirilenler, Masaüstü, Resimler klasörleri ve programların kişisel ayarları (nokta ile başlayan gizli dosyalar, örneğin .bashrc, .config) burada bulunur. Terminalde “~” (tilde) işareti, kendi ev klasörünüzün kısaltmasıdır.

İpucu: Linux kurarken /home klasörünü ayrı bir bölüme koyarsanız, sistemi yeniden kurduğunuzda kişisel dosyalarınız korunur.

Programlar

/usr – Kullanıcı Programları
Adı “user” kelimesini çağrıştırsa da, aslında “Unix System Resources” (Unix Sistem Kaynakları) olarak da yorumlanır. Sisteme kurulan programların, kütüphanelerin ve belgelerin büyük çoğunluğu burada bulunur. Görselde /usr’nin alt klasörleri ayrıca gösteriliyor; aşağıda ayrıntılı inceleyeceğiz.

/opt – İsteğe Bağlı Yazılımlar
“Optional” (isteğe bağlı) kelimesinden gelir. Dağıtımın paket yöneticisi dışında kurulan, kendi klasöründe bütün halinde duran üçüncü parti yazılımlar buraya kurulur. Örneğin Google Chrome (/opt/google/chrome) veya bazı ticari programlar. Windows’taki “Program Files” klasörüne en çok benzeyen yer burasıdır.

/srv – Servis Verileri
“Service” (hizmet) kelimesinden gelir. Bilgisayar bir sunucu olarak kullanılıyorsa, sunulan veriler buraya konabilir: web sitesi dosyaları (/srv/www), FTP dosyaları (/srv/ftp) gibi. Masaüstü bilgisayarlarda bu klasör genellikle boştur.

Değişken Ve Geçici Veriler

/var – Değişken Veriler
“Variable” (değişken) kelimesinden gelir. Sistem çalıştıkça sürekli değişen ve büyüyen dosyalar burada tutulur: kayıt dosyaları (log), önbellekler, kuyruklar, veritabanları. Görselde /var’ın alt klasörleri ayrı bir kutuda gösteriliyor; ayrıntılarına aşağıda değineceğiz.

/tmp – Geçici Dosyalar
Programların geçici olarak kullandığı dosyalar burada tutulur. Her kullanıcı buraya yazabilir. Çoğu dağıtımda bilgisayar yeniden başlatıldığında içi temizlenir; bazı sistemlerde ise doğrudan RAM üzerinde (tmpfs) çalışır. Bu yüzden önemli bir dosyayı asla /tmp içinde saklamayın.

Disk Ve Aygıt Bağlama Noktaları

/media – Çıkarılabilir Medya
USB bellek, harici disk, CD/DVD gibi çıkarılabilir aygıtlar taktığınızda otomatik olarak buraya bağlanır. Ubuntu’da genellikle /media/kullanici_adi/AYGIT_ADI şeklinde görünür.

/mnt – Geçici Bağlama Noktası
“Mount” (bağlama) kelimesinden gelir. Sistem yöneticilerinin bir diski veya ağ paylaşımını elle, geçici olarak bağlamak için kullandığı klasördür. Kısa özet: /media otomatik bağlananlar için, /mnt elle bağlananlar içindir.

/var Klasörünün İçi

Görselde /var’dan çıkan kesikli yeşil ok, 12 alt klasörü olan mor bir kutuyu gösteriyor:

• /var/log: Sistem ve program kayıtları. Bir sorun yaşadığınızda ilk bakmanız gereken yerdir. Örneğin /var/log/syslog, /var/log/auth.log (giriş denemeleri).
• /var/cache: Programların önbellek dosyaları. Görselde bu klasörün adı “chche” olarak hatalı yazılmış, doğrusu “cache”tir. Örneğin Ubuntu’da indirilen paketler /var/cache/apt/archives içinde tutulur.
• /var/lib: Programların kalıcı durum bilgileri ve veritabanları. Örneğin MySQL veritabanları (/var/lib/mysql), paket yöneticisinin kayıtları (/var/lib/dpkg).
• /var/spool: İşlenmeyi bekleyen kuyruklar (yazıcı işleri, gönderilecek e-postalar, zamanlanmış görevler).
• /var/mail: Kullanıcıların yerel e-posta kutuları.
• /var/tmp: Geçici dosyalar. /tmp’den farkı, yeniden başlatmada silinmemesidir.
• /var/lock: Kilit dosyaları. Bir kaynağın (örneğin bir seri port) aynı anda iki program tarafından kullanılmasını engeller.
• /var/run: Çalışan programların süreç numarası (PID) dosyaları ve çalışma zamanı bilgileri.
• /var/crash: Çöken programların hata dökümleri (crash raporları).
• /var/games: Oyunların değişken verileri, örneğin yüksek skor tabloları.
• /var/opt: /opt içine kurulan programların değişken verileri.
• /var/account: İşlem muhasebesi (process accounting) kayıtları; hangi kullanıcının hangi komutu ne zaman çalıştırdığının kaydı.

Güncel not: Modern sistemlerde /var/run ve /var/lock, kök dizindeki /run klasörüne (ve /run/lock’a) yönlendiren kısayollardır. /run, açılışta RAM üzerinde oluşturulur ve görselde yer almaz.

/var’ın Daha Derin Alt Klasörleri

Görselin sağ üst kısmında, /var kutusundan çıkan çizgilerle bağlanan sekiz klasör daha var. Görselde bunların hangi klasöre ait olduğu tam net değil ve bazı adlarda yazım hatası var. FHS standardına göre doğru yerleri şöyledir:

/var/spool altında:
• cron: Zamanlanmış görevlerin (cron) kuyruk dosyaları. Görselde “cran” olarak hatalı yazılmış.
• rwho: Ağdaki diğer bilgisayarlarda kimlerin oturum açtığını gösteren eski rwho servisinin dosyaları.
• lpd: Yazıcı kuyrukları (Line Printer Daemon). Görselde “ipd” olarak hatalı yazılmış.

/var/cache altında:
• man: Kılavuz (man) sayfalarının biçimlendirilmiş önbelleği.
• fonts: Yazı tiplerinin önbelleği.

/var/lib altında:
• misc: Çeşitli programların durum dosyaları.
• hwclock: Donanım saatinin (BIOS saati) ayar bilgileri.
• : Metin düzenleyicilerin (örneğin nano, vim) yedek ve kurtarma dosyaları. Buradaki köşeli parantez, gerçek bir klasör adı değil, “düzenleyicinin adı buraya gelir” anlamında bir yer tutucudur.

/usr Klasörünün İçi

Görselde /usr’den çıkan ok, kırmızı kutudaki 8 alt klasörü gösteriyor:

• /usr/bin: Kullanıcı programlarının büyük çoğunluğu. Firefox, python3, git gibi kurduğunuz programların çalıştırılabilir dosyaları buradadır.
• /usr/sbin: Temel olmayan sistem yönetim programları (ve modern sistemlerde tüm sbin komutları).
• /usr/lib: Programların kütüphaneleri.
• /usr/include: C/C++ başlık dosyaları (.h). Program derlerken kullanılır.
• /usr/src: Kaynak kodlar, örneğin Linux çekirdeğinin kaynak kodu veya çekirdek başlıkları.
• /usr/share: Mimariden bağımsız, paylaşılan veriler: simgeler, temalar, yazı tipleri, belgeler, kılavuz sayfaları.
• /usr/local: Sistem yöneticisinin elle kurduğu (örneğin kaynak koddan derlediği) programlar. Paket yöneticisi buraya dokunmaz; bu yüzden güncellemelerde silinmez.
• /usr/X11R6: X Pencere Sistemi’nin 6. sürümünün eski konumu. Bu klasör FHS 3.0 ile standarttan kaldırılmıştır; günümüz sistemlerinde artık bulunmaz. Görselin daha eski bir standarda dayandığını gösteren ipuçlarından biridir.

/usr/local Alt Klasörleri

Görselde /usr/local’dan çıkan yeşil ok beş klasörü gösteriyor: bin, man, lib, sbin ve share. Bunlar /usr’deki aynı adlı klasörlerin bir kopyası gibidir; fark, içlerindeki programların yönetici tarafından elle kurulmuş olmasıdır. Örneğin kaynak koddan derleyip “make install” komutuyla kurduğunuz bir program genellikle /usr/local/bin içine yerleşir.

/usr/share Alt Klasörleri

Görselde /usr/share’den çıkan mor çizgi beş klasörü gösteriyor:

• dict: Yazım denetleyicileri için kelime listeleri (sözlükler).
• man: Kılavuz sayfaları. “man ls” yazdığınızda okunan belge buradan gelir.
• sgml: SGML belge biçimine ait veriler.
• xml: XML belge biçimine ait veriler (şemalar, katalog dosyaları).
• misc: Başka bir yere uymayan, mimariden bağımsız çeşitli veriler.

/etc Klasörünün İçi

Görselin altındaki mavi kutu, /etc’den çıkan dört alt klasörü gösteriyor:

• /etc/X11: X Pencere Sistemi’nin (grafik arayüz altyapısı) ayar dosyaları.
• /etc/opt: /opt içine kurulan programların ayar dosyaları.
• /etc/sgml: SGML ile ilgili ayar dosyaları.
• /etc/xml: XML ile ilgili ayar dosyaları ve katalogları.

Tabii ki /etc’nin içinde bunlardan çok daha fazlası vardır; bu dört klasör FHS standardında özel olarak tanımlanan alt klasörlerdir.

Görselde Olmayan Önemli Klasörler

Görsel güzel bir özet sunuyor, ancak günümüz Linux sistemlerinde mutlaka karşılaşacağınız bazı klasörleri içermiyor:

• /root: Yönetici (root) kullanıcısının ev klasörü. Güvenlik nedeniyle /home içinde değil, ayrı tutulur.
• /proc: Çalışan süreçler ve çekirdek hakkında anlık bilgiler sunan sanal bir dosya sistemi. Örneğin “cat /proc/cpuinfo” işlemci bilgilerini, “cat /proc/meminfo” bellek bilgilerini gösterir. Diskte yer kaplamaz.
• /sys: Donanım aygıtları ve sürücüler hakkında bilgi sunan bir diğer sanal dosya sistemi.
• /run: Açılıştan beri çalışan servislerin çalışma zamanı verileri. RAM üzerinde tutulur, her açılışta sıfırlanır.
• /lost+found: Disk denetimi (fsck) sırasında kurtarılan, sahipsiz kalmış dosya parçaları buraya konur.
• /snap: Ubuntu’da snap paketleriyle kurulan uygulamaların bulunduğu klasör.

Görseldeki Hatalar Ve Düzeltmeler (Özet)

• “chche” yazılmış, doğrusu “cache” (/var/cache)
• “cran” yazılmış, doğrusu “cron” (/var/spool/cron)
• “ipd” yazılmış, doğrusu “lpd” (/var/spool/lpd)
• “Root” olarak gösterilen kutu aslında “/” kök dizinidir; “/root” ayrı bir klasördür ve görselde yoktur.
• /usr/X11R6 artık standartta yer almıyor.
• Modern dağıtımlarda /bin, /sbin ve /lib, /usr içindeki karşılıklarına kısayoldur.
• /proc, /sys, /run, /root gibi önemli klasörler eksik.

Windows ve Linux Karşılaştırması

Windows | Linux | Açıklama
C:\ | / | Kök dizin
C:\Users\Ad | /home/ad | Kullanıcı klasörü
C:\Program Files | /usr, /opt | Programlar
C:\Windows | /boot, /etc, /lib, /usr/lib | Sistem dosyaları
C:\Windows\System32\config | /etc | Sistem ayarları
D:, E:\ (USB) | /media/ad/USB | Çıkarılabilir diskler
%TEMP% | /tmp | Geçici dosyalar
Olay Görüntüleyicisi | /var/log | Sistem kayıtları

Dosya Sisteminde Gezinmek İçin Temel Komutlar

• pwd: Şu an hangi klasörde olduğunuzu gösterir.
• ls /: Kök dizindeki klasörleri listeler. “ls -l /” kısayolları da gösterir.
• cd /var/log: Belirtilen klasöre gider. “cd ~” veya sadece “cd” ev klasörünüze döner, “cd ..” bir üst klasöre çıkar.
• tree -L 1 /: Kök dizini ağaç şeklinde gösterir (tree paketi kurulu olmalı).
• df -h: Bağlı disklerin doluluk durumunu gösterir.
• du -sh /var/log: Bir klasörün ne kadar yer kapladığını gösterir.
• lsblk: Diskleri ve bölümleri ağaç yapısında listeler.
• man hier: Linux dosya sistemi hiyerarşisinin resmi açıklamasını açar.

Mutlak Ve Göreli Yol

• Mutlak yol “/” ile başlar ve kökten itibaren tam adresi verir: /home/ahmet/Belgeler
• Göreli yol, bulunduğunuz klasöre göre adres verir: Belgeler/rapor.txt veya ../Resimler

Güvenlik İçin Altın Kurallar

• /boot, /etc, /usr, /bin, /lib gibi sistem klasörlerinde ne yaptığınızdan emin olmadan dosya silmeyin veya taşımayın.
• “sudo rm -rf /” gibi komutları internette görseniz bile asla çalıştırmayın; tüm sistemi siler.
• /etc içindeki bir ayar dosyasını değiştirmeden önce yedeğini alın: sudo cp /etc/fstab /etc/fstab.yedek
• Disk dolduğunda önce /var/log ve /var/cache klasörlerini kontrol edin; büyük kayıt dosyaları ve paket önbellekleri genellikle buradadır. Ubuntu’da “sudo apt clean” komutu paket önbelleğini temizler.

Sonuç

Linux dosya sistemi ilk bakışta karmaşık görünse de mantığı oldukça basittir: Her şey tek bir kökten (/) dallanır ve her klasörün belirli bir görevi vardır. Ayarlar /etc’de, programlar /usr’de, kişisel dosyalar /home’da, değişen veriler /var’da, aygıtlar /dev’de, önyükleme dosyaları /boot’ta bulunur. Bu yapıyı bir kez öğrendiğinizde Ubuntu’dan Fedora’ya, Debian’dan Arch’a kadar hangi dağıtımı kullanırsanız kullanın kendinizi evinizde hissedersiniz.

Bu rehberdeki komutları kendi sisteminizde deneyerek klasörler arasında gezinin. “ls /” ile başlayın, “man hier” ile devam edin. Linux’u öğrenmenin en iyi yolu, onu keşfetmektir.

Ek: Görseldeki Orijinal Yapı

Linux File system

Root: /mnt, /var, /media, /tmp, /lib, /srv, /home, /usr, /opt, /dev, /bin, /boot, /sbin, /etc

/var: mail, tmp, spool, lib, games, chche, crash, lock, opt, run, log, account
/var alt klasörleri (sağ taraf): cran, rwho, ipd, man, fonts, misc, hwclock,

/usr: bin, sbin, x11R6, share, include, src, lib, local
/usr/local: bin, man, lib, sbin, share
/usr/share: dict, man, sgml, misc, xml

/etc: X11, opt, sgml, xml

Reklam
Bu yazı faydalı oldu mu?
Yazar

Kutay Utku

Denediğim, kurduğum ve öğrendiğim teknolojileri sade bir dille anlatıyorum. Sorularını yorumlarda bekliyorum.

Tüm yazıları (666)

Yorumlar

Henüz yorum yapılmamış Düşüncelerini paylaşan ilk kişi sen ol.

Yorum yaz

E-posta adresin yayınlanmaz. Zorunlu alanlar * ile işaretlidir.

Kod paylaşırken <code> etiketini kullanabilirsin.0

Yorumun onaylandıktan sonra yayınlanır.