Linux Dosya ve Dizin Hiyerarşisi: Verileri Organize Etme Sanatı
- Murat Akpınar
- Linux öğrenme yolculuğu
- 24 Ağustos 2023
İçindekiler
Bir Linux sunucusuna ilk kez bağlandığınızda / altında yirmiye yakın dizin görürsünüz ve hiçbirinin adı ne işe yaradığını söylemez: /etc, /opt, /srv, /var. Bu isimler rastgele seçilmedi — her biri Filesystem Hierarchy Standard (FHS) adlı bir sözleşmenin parçası. O sözleşmeyi bilen yönetici, ömründe hiç görmediği bir dağıtımda bile log dosyasını, yapılandırmayı ve kullanıcı verisini nerede arayacağını bilir.
Bu yazıda kök dizinin altındaki yapıyı dizin dizin geziyoruz: her dizinin görevi ne, hangi veri nerede durur ve bu ayrım yedekleme ile sorun giderme kararlarınızı nasıl belirler.
Dizin İsimlendirmesi: Linux, dosya ve dizinleri büyük-küçük harf duyarlılığına göre isimlendirir. Bu nedenle “Belgeler” ve “belgeler” iki farklı dizini temsil eder.
Linux’taki Dizinler
Kök Dizin ("/"): Bilgisayar dünyasında her şeyin bir başlangıcı vardır. Linux’ta bu başlangıç noktası, kök dizin olan “/”. Tüm dosya ve dizinler, bu kök dizininden türetilir ve onun altında düzenlenir.
Not — usr-merge: Debian 12, Ubuntu 22.04, RHEL 9 ve Arch gibi güncel dağıtımlarda /bin, /sbin ve /lib artık ayrı birer dizin değildir; sırasıyla /usr/bin, /usr/sbin ve /usr/lib‘e işaret eden sembolik linklerdir. ls -l /bin çıktısı bunu gösterir. Aşağıdaki açıklamalar bu dizinlerin görevini anlatır; dosyaların fiziksel olarak durduğu yer güncel sistemlerde /usr altıdır.
/bin (Binary): Bu dizin, temel sistem komutlarını içerir. İşletim sistemi başlatıldığında kullanılabilmesi için gereken temel komutlar burada yer alır.
/boot: İşletim sistemi başlatılırken kullanılan dosyaları içerir. Önyükleme sürecini yönetmek için gerekli olan veriler bu dizinde bulunur.
/dev (Device): Fiziksel ve sanal aygıtların dosya temsillerini içerir. Bu dizindeki dosyalar, sistemdeki aygıtların kullanılabilir durumda olduğunu gösterir.
/etc (Etcetera): Sistem ve uygulamaların yapılandırma dosyalarını içerir. Sistem ayarlarının ve yapılandırmalarının bulunduğu önemli bir dizindir. Kurduğumuz her şeyin ayarlar dosyası (config) dosyaları burada bulunur.
/etc/fstab (File Systems Table): Linux ve diğer Unix benzeri işletim sistemlerinde kullanılan bir konfigürasyon dosyasıdır. Bu dosya, sistemdeki disk bölümlerini ve dosya sistemlerini nasıl monte edileceğini belirten bilgileri içerir. Dosya sistemlerinin monte edilme düzenini yönetmek için kullanılır.
/home: Kullanıcı ev dizinlerini barındırır. Her kullanıcının kendi dizini vardır ve burada kişisel dosyaları saklanır.
/lib (Library): Paylaşılan kitaplıkları içerir. Uygulamaların çalışması için gereken kitaplıklar bu dizinde yer alır.
/media: Çıkarılabilir ortamların (USB sürücüler, CD-ROM’lar vb.) otomatik olarak bağlandığı dizindir.
/mnt (Mount): Geçici olarak bağlanan dosya sistemlerini içerir. Diğer dosya sistemlerine erişim sağlamak için kullanılır.
/opt (Optional): Üçüncü taraf yazılımlar için kullanılır. Bu dizin altında ek yazılımlar ve uygulamalar bulunabilir.
/proc: Çalışan programlar ve Sistem(Kernel) hakkında bilgilerin, dosyaların bulunduğu dizindir. Dizinin içi aslında boştur. Sistem açıldığı zaman sistemin özellikleri dosya olarak görünür. Top komutunu çalıştırdığımızda solda gelen numaralar /proc dizinin altında oluşan dosyalardan bilgileri alır.
/root: Süper kullanıcı (root) ev dizinini temsil eder. Yalnızca root kullanıcısının erişebildiği kritik dosyalar burada saklanır.
/sbin (System Binary): Sistem yönetimi için gerekli olan temel komutları içerir. Bu dizin, sadece sistem yöneticileri tarafından kullanılır.
/srv (Service): Sistem yöneticilerinin veya sunucu uygulamalarının verilerini düzenli bir şekilde saklayabilmesi için oluşturulmuştur.
/sys: kernel (çekirdek) ile iletişim kurmak ve kernel tarafından sağlanan sistem ve aygıt bilgilerine erişim sağlamak için kullanılan bir sanal dosya sistemidir. Bu dizin, çekirdek tarafından sunulan çeşitli ayarlar ve istatistiklerle ilgili bilgileri içerir.
/tmp (Temporary): Geçici dosyaların saklandığı dizindir. Bu dosyalar genellikle oturum boyunca kullanılır ve daha sonra temizlenir.
/usr (Unix Shared Resources): Kullanıcıların ve uygulamaların ortak kaynaklarını içerir. Uygulamaların ve belgelerin bulunduğu bir dizindir.
/var (Variable): Değişken verileri içerir. Log dosyaları, e-posta, veritabanları gibi dinamik olarak değişen veriler burada saklanır.
Sonuç
Dizin yapısının tamamını ezberlemek gerekmez; üç ayrımı bilmek yeter:
- Yapılandırma
/etc‘de, değişen veri/var‘da, paylaşılan kaynaklar/usr‘de durur. Bir sunucuyu yedeklerken bakacağınız yer bu ayrımdır:/usraltındakiler paket yöneticisiyle yeniden kurulabilir,/etc‘deki değişiklikleriniz ve/var‘daki veriniz kurulamaz. /procve/sysdiskte yer kaplamaz. Çekirdeğin canlı durumunu dosya gibi gösteren sanal dosya sistemleridir; sistem kapandığında içerikleri kalmaz.topkomutunun okuduğu değerler de oradan gelir.- Bir dosyayı nereye koyacağınız tercih değil, sözleşmedir. Kendi yazılımınızı
/opt‘a, yazdığınız betikleri/usr/local/bin‘e koyduğunuzda sizden sonraki yönetici nerede arayacağını bilir.
Yol haritasının 2. bölümünü — temel kabuk kavramlarını — burada tamamladık. Sırada temel komutlar ve dosya işlemleri var: Dosya Oluşturma ve Kopyalama (touch, cp). Serinin tamamına GNU/Linux Öğrenme Yolculuğu sayfasından ulaşabilirsiniz.