Takip et

Linux Temelleri – Bölüm 2: Dizin Hiyerarşisini Anlamak

Linux işletim sistemi, Windows’taki C:\ sürücüsü gibi tek bir ana sürücü mantığı yerine, her şeyin tek bir kök dizin (/) altında toplandığı …

Linux Temelleri – Bölüm 2: Dizin Hiyerarşisini Anlamak

Linux işletim sisteminin kalbinde, her şeyin düzenli ve mantıklı bir şekilde organize edildiği güçlü bir dosya sistemi yatar. Bu sistemin temelini oluşturan dizin hiyerarşisini anlamak, bir Linux kullanıcısı veya yöneticisi olmak için atılacak en önemli adımlardan biridir. Dosyaların nerede bulunduğunu, sistemin nasıl çalıştığını ve sorunları nasıl gidereceğinizi bilmek, Linux deneyiminizi kökten değiştirecektir. Bu makalede, Linux’un dizin yapısının derinliklerine inecek, her bir ana dizinin amacını keşfedecek ve bu hiyerarşide nasıl gezineceğinizi öğreneceksiniz.

Linux Dizin Hiyerarşisine Giriş ve FHS

Linux işletim sistemi, Windows’taki C:\ sürücüsü gibi tek bir ana sürücü mantığı yerine, her şeyin tek bir kök dizin (/) altında toplandığı bir hiyerarşik yapı kullanır. Bu yapı, işletim sisteminin kararlılığını, güvenliğini ve esnekliğini sağlayan temel bir mimari prensiptir. Her dosya ve dizin, bu kök dizinden dallanarak belirli bir amaca hizmet eden alt dizinlerde bulunur.

Linux Dosya Sistemi Kavramı

Linux’ta “dosya sistemi” terimi, hem dosyaların disk üzerinde nasıl düzenlendiğini hem de bu düzenlemenin kullanıcıya nasıl sunulduğunu ifade eder. Her şey bir dosyadır felsefesiyle, donanım aygıtlarından ağ soketlerine kadar her şey dosya olarak temsil edilir. Bu birleşik yaklaşım, sistem yönetimini ve programlamayı basitleştirir, çünkü tüm kaynaklara standart dosya işlemleriyle erişilebilir.

Kök Dizin (/) ve Her Şeyin Başlangıcı

Linux dosya hiyerarşisinin en tepesinde, her şeyin başlangıcı olan kök dizin (/) bulunur. Tüm diğer dizinler ve dosyalar, doğrudan veya dolaylı olarak bu kök dizinin altında yer alır. Bir Windows sistemindeki “Bilgisayarım” veya “Bu Bilgisayar”ın tüm sürücüleri listelemesi gibi, Linux’ta da kök dizin, tüm bağlama noktalarını ve sistemin tüm içeriğini barındırır.

Filesystem Hierarchy Standard (FHS) ve Önemi

Linux dağıtımları arasındaki tutarlılığı sağlamak ve yazılım geliştiricilerin işini kolaylaştırmak amacıyla Filesystem Hierarchy Standard (FHS) geliştirilmiştir. FHS, belirli dizinlerin belirli türdeki dosyaları içermesi gerektiğini tanımlayan bir standarttır. Bu sayede, farklı Linux dağıtımlarında (Ubuntu, Fedora, Debian vb.) bile temel sistem dizinlerinin amaçları aynı kalır. FHS’ye uyum, sistem yöneticilerinin farklı sistemler arasında kolayca geçiş yapabilmesini ve yazılımların beklendiği gibi çalışmasını garanti eder.

Aşağıdaki tablo, FHS’nin tanımladığı bazı önemli dizinleri ve amaçlarını özetlemektedir:

Dizin Amaç Örnek İçerik
/ Tüm dosya sisteminin kökü. Diğer tüm dizinler
/bin Temel kullanıcı komutları. ls, cp, mv
/sbin Sistem yönetimi için temel komutlar. fdisk, shutdown, reboot
/etc Sistem genelinde yapılandırma dosyaları. passwd, fstab, network ayarları
/home Kullanıcıların kişisel ev dizinleri. /home/kullaniciadi/belgeler
/usr Kullanıcı programları ve verileri (salt okunur). /usr/bin, /usr/lib, /usr/share
/var Değişken veriler (loglar, spool dosyaları, veritabanları). /var/log, /var/cache
/tmp Geçici dosyalar. Sistem yeniden başlatıldığında genellikle silinir. Uygulama geçici dosyaları
/dev Cihaz dosyaları. /dev/sda, /dev/null
/proc Çalışan süreçler hakkında bilgi içeren sanal dosya sistemi. /proc/cpuinfo, /proc/meminfo
/sys Çekirdek ve donanım hakkında bilgi içeren sanal dosya sistemi. Donanım ayarları
/opt İsteğe bağlı (üçüncü taraf) yazılım paketleri. Google Chrome, VS Code kurulumları
/boot Önyükleme dosyaları (çekirdek, initramfs). GRUB yapılandırması
/mnt Geçici olarak bağlanan dosya sistemleri için bağlama noktası. Manuel disk bağlamaları
/media Çıkarılabilir medya (CD-ROM, USB) için bağlama noktası. USB bellekler, harici diskler
/run Çalışma zamanı verileri. Sistem süreçlerinin PID dosyaları

Temel Sistem Dizinleri: Yönetim ve İşletim

Linux sisteminin düzgün çalışması için hayati öneme sahip olan bu dizinler, genellikle sistem yöneticileri tarafından yönetilen ve kullanıcıların doğrudan müdahale etmemesi gereken alanlardır.

Yürütülebilir Komutlar ve Sistem İkilileri: /bin, /sbin

/bin dizini, sistemin çalışması için gerekli olan temel kullanıcı komutlarını içerir. Bu komutlar, sistemin tek kullanıcı modunda bile çalışabilmesini sağlar (örneğin, ls, cp, mv, cat). /sbin dizini ise, sistem yönetimi için gerekli olan ve genellikle root yetkisi gerektiren komutları barındırır (örneğin, fdisk, ifconfig, shutdown). Bu ayrım, güvenlik ve sistem bütünlüğü açısından önemlidir.

Sistem Ayarları ve Kütüphaneler: /etc, /lib, /boot

/etc dizini, tüm sistem genelindeki yapılandırma dosyalarını içerir. Ağ ayarlarından kullanıcı şifrelerine, başlatma betiklerinden servis tanımlarına kadar her şey burada bulunur. Bu dizin, bir sistemin “kimliği” gibidir. /lib dizini, /bin ve /sbin dizinlerindeki programlar ve çekirdek modülleri tarafından kullanılan paylaşımlı kütüphaneleri barındırır. /boot dizini ise, sistemin başlatılması için gerekli olan önyükleme yükleyicisi (GRUB), Linux çekirdeği ve initramfs gibi dosyaları içerir.

Sanal Dizinler ve Donanım Arayüzleri: /dev, /proc, /sys

/dev dizini, sistemdeki tüm donanım aygıtlarını temsil eden özel dosyaları içerir (örneğin, /dev/sda sabit diski, /dev/null “kara delik” aygıtı). Bu dosyalar, donanımla etkileşim kurmak için bir arayüz sağlar. /proc ve /sys dizinleri ise fiziksel olarak diskte bulunmayan, çekirdek tarafından oluşturulan sanal dosya sistemleridir. /proc, çalışan süreçler ve sistem kaynakları hakkında gerçek zamanlı bilgi sunarken, /sys, çekirdek modülleri ve donanım hakkında daha düşük seviyeli yapılandırma ve bilgi sağlar.

Kullanıcı, Uygulama ve Değişken Veri Dizinleri

Bu dizinler, kullanıcıların kişisel verilerini, kurulu uygulamaları ve sistemin çalışma zamanında ürettiği değişken verileri barındırır.

Kullanıcı Ev Dizinleri: /home

Her normal kullanıcının kendi kişisel dizini /home altında bulunur (örneğin, /home/kullaniciadi). Bu dizin, kullanıcının belgelerini, indirmelerini, masaüstü dosyalarını, yapılandırma dosyalarını (nokta dosyaları olarak bilinen gizli dosyalar) ve diğer kişisel verilerini içerir. Bu sayede, sistemin diğer bölümlerinden izole edilmiş, kişiselleştirilmiş bir çalışma alanı sunulur.

Uygulama Yüklemeleri ve Paylaşılan Veriler: /usr, /opt

/usr dizini, “Unix System Resources” (Unix Sistem Kaynakları) anlamına gelir ve çoğu kullanıcı programını ve uygulamasını barındırır. Genellikle salt okunur olarak kabul edilir ve /usr/bin (kullanıcı programları), /usr/lib (kütüphaneler) ve /usr/share (belgeler ve paylaşılan veriler) gibi alt dizinlere sahiptir. /opt dizini ise, sistemde kurulu olan isteğe bağlı veya üçüncü taraf yazılım paketleri için kullanılır. Örneğin, bir web tarayıcısı veya özel bir geliştirme ortamı buraya yüklenebilir.

Değişken Veri ve Loglar: /var

/var dizini, sistemin çalışması sırasında sürekli olarak değişen verileri (variable data) içerir. Bu dizin, sistem log dosyalarını (/var/log), paket yöneticisi önbelleklerini (/var/cache), e-posta kuyruklarını (/var/spool), web sunucusu dosyalarını (/var/www) ve veritabanlarını (/var/lib) barındırır. Disk alanı doluluğu veya performans sorunları genellikle /var dizinindeki aşırı büyüyen dosyalardan kaynaklanır.

Geçici ve Harici Depolama Dizinleri

Bu dizinler, geçici dosyaların saklanması ve harici depolama birimlerinin sisteme entegre edilmesi için kullanılır.

Geçici Dosyalar ve Çalışma Zamanı Verileri: /tmp, /run

/tmp dizini, uygulamalar ve kullanıcılar tarafından oluşturulan geçici dosyaları barındırır. Bu dizindeki içerikler genellikle sistem yeniden başlatıldığında veya belirli aralıklarla otomatik olarak silinir. Bu nedenle, önemli verilerinizi burada saklamaktan kaçınmalısınız. /run dizini ise, sistemin çalışma zamanında oluşturulan geçici dosyaları ve süreç kimlik dosyalarını (PID dosyaları) içerir. /run dizini, sistem başlatıldığında temizlenir ve sistemin çalışma durumunu yansıtır.

Harici Cihaz Bağlantı Noktaları: /mnt, /media

/mnt dizini, “mount” (bağlama) kelimesinden gelir ve genellikle sistem yöneticileri tarafından geçici olarak bağlanan dosya sistemleri (örneğin, ağ paylaşımları, ek sabit diskler) için bir bağlama noktası olarak kullanılır. /media dizini ise, çıkarılabilir medya (USB bellekler, CD/DVD’ler, harici sabit diskler) için otomatik bağlama noktaları olarak kullanılır. Bir USB belleği taktığınızda, genellikle /media/kullaniciadi/USB_adi gibi bir yolda görünür.

Dizin Yapısının Güvenlik ve Performans Etkileri

Linux’un dizin hiyerarşisi, güvenlik ve performans açısından kritik rol oynar. Her dizinin belirli bir amacı olması, izinlerin daha kolay yönetilmesini sağlar. Örneğin, /etc dizinindeki yapılandırma dosyalarına yalnızca root kullanıcısının yazma izni olması, sistemin yetkisiz değişikliklere karşı korunmasına yardımcı olur. Ayrıca, farklı dizinlerin farklı disk bölümlerine ayrılması, bir bölümün dolmasının diğer bölümleri etkilemesini önleyerek sistem kararlılığını artırır ve I/O performansını optimize edebilir.

Dizinlerde Gezinme ve Yönetim: Temel Komutlar

Linux dizin hiyerarşisinde etkili bir şekilde çalışmak için bazı temel komutları bilmek şarttır.

Mevcut Dizin ve Dizin Değiştirme: pwd, cd

pwd (print working directory) komutu, o anda bulunduğunuz dizinin tam yolunu gösterir. Örneğin, /home/kullaniciadi/belgeler. cd (change directory) komutu ise dizinler arasında geçiş yapmanızı sağlar.


pwd
# Çıktı: /home/kullaniciadi

cd /var/log
pwd
# Çıktı: /var/log

cd ..
pwd
# Çıktı: /var

cd ~
pwd
# Çıktı: /home/kullaniciadi (Ev dizinine döner)

Dizin İçeriğini Listeleme: ls

ls komutu, bir dizinin içeriğini listelemek için kullanılır. Çeşitli seçeneklerle (flags) birlikte kullanılarak daha detaylı bilgiler elde edilebilir.


ls
# Mevcut dizindeki dosya ve dizinleri listeler

ls -l
# Detaylı liste görünümü (izinler, sahip, boyut, tarih)

ls -a
# Gizli dosyalar da dahil olmak üzere tüm dosyaları listeler

Dizin Oluşturma, Silme, Kopyalama ve Taşıma: mkdir, rmdir, cp, mv

mkdir (make directory) yeni bir dizin oluşturur. rmdir (remove directory) boş bir dizini siler. Dolu bir dizini silmek için rm -r kullanılır (dikkatli olun!). cp (copy) dosya ve dizinleri kopyalar. mv (move) ise dosya ve dizinleri taşır veya yeniden adlandırır.


mkdir yeni_dizin
# "yeni_dizin" adında bir dizin oluşturur

rmdir yeni_dizin
# Boş "yeni_dizin"i siler

cp dosya.txt yeni_dizin/
# dosya.txt'yi yeni_dizin'e kopyalar

mv eski_ad.txt yeni_ad.txt
# dosyanın adını değiştirir

mv dosya.txt baska_dizin/
# dosya.txt'yi baska_dizin'e taşır

Dizin İzinleri ve Sahiplik: chmod, chown (Kısa değinme)

Linux'ta her dosya ve dizinin belirli izinleri ve bir sahibi vardır. chmod (change mode) komutu dosya ve dizin izinlerini değiştirirken, chown (change owner) komutu dosya veya dizinin sahibini ve grubunu değiştirir. Bu komutlar, sistem güvenliğinin temel taşlarından biridir ve yetkisiz erişimi engellemek için doğru şekilde yapılandırılmalıdır.


ls -l dosya.txt
# -rw-r--r-- 1 kullanici grup 0 May 15 10:00 dosya.txt
# (rw: okuma/yazma, r: okuma)

chmod 755 script.sh
# script.sh'ye okuma, yazma, çalıştırma izni verir (sahip için)
# ve diğerleri için okuma, çalıştırma izni verir.

Sonuç

Linux dizin hiyerarşisini anlamak, bu güçlü işletim sisteminde ustalaşmanın ilk ve en önemli adımıdır. FHS standardı sayesinde, hangi dosyanın nerede olması gerektiği konusunda net bir yol haritasına sahibiz. Bu yapı, sadece düzen sağlamakla kalmaz, aynı zamanda sistemin güvenliğini, kararlılığını ve yönetilebilirliğini de artırır. Bu makalede öğrendiğiniz temel dizinler ve komutlar, Linux dünyasında daha bilinçli ve yetkin bir şekilde hareket etmenizi sağlayacaktır. Dizin hiyerarşisi hakkında bilgi sahibi olmak, sorun gidermeden yeni yazılımlar kurmaya kadar her alanda size büyük avantajlar sunacaktır. Linux'u keşfetmeye devam edin!

SSS (Sık Sorulan Sorular)

Kök dizin (/) nedir?
Kök dizin, Linux dosya sisteminin en üst seviyesidir ve tüm diğer dizinler ile dosyaların başlangıç noktasıdır. Windows'taki C:\ sürücüsüne benzer ancak tüm dosya sistemini kapsar.
FHS (Filesystem Hierarchy Standard) neden önemlidir?
FHS, farklı Linux dağıtımları arasında dizin yapısında tutarlılık sağlar. Bu sayede yazılımlar beklendiği gibi çalışır ve sistem yöneticileri farklı sistemlerde kolayca gezinebilir.
Kullanıcıların kişisel dosyaları nerede saklanır?
Her kullanıcının kişisel dosyaları, /home/kullaniciadi yolunda bulunan kendi ev dizininde saklanır.
Geçici dosyalar hangi dizinde bulunur ve ne zaman silinir?
Geçici dosyalar genellikle /tmp dizininde bulunur ve sistem yeniden başlatıldığında veya belirli aralıklarla otomatik olarak silinir.
Sistem yapılandırma dosyaları hangi dizinde yer alır?
Sistem genelindeki tüm yapılandırma dosyaları /etc dizininde bulunur.
Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

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

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.