Yeni yazı: Kümenin Kapağını Açalım: Kubernetes Bileşenleri Birbirini Neden Hiç Aramaz?
Linux Dosya ve Dizin Hiyerarşisi: Verileri Organize Etme Sanatı

Linux Dosya ve Dizin Hiyerarşisi: Verileri Organize Etme Sanatı

İç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: /usr altındakiler paket yöneticisiyle yeniden kurulabilir, /etc‘deki değişiklikleriniz ve /var‘daki veriniz kurulamaz.
  • /proc ve /sys diskte yer kaplamaz. Çekirdeğin canlı durumunu dosya gibi gösteren sanal dosya sistemleridir; sistem kapandığında içerikleri kalmaz. top komutunun 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.

Paylaş :

İlgili Yazılar

GNU/Linux Öğrenme Yolculuğu

GNU/Linux Öğrenme Yolculuğu

Eğer imkanlarınız dahilindeyse “Mustafa Akgül Özgür Yazılım Yaz Kampı” ziyaret ederek tamamen gönüllülerden oluşan ücretsiz eğitim kampını ziyaret edebilir ve yüz yüze bir eğitim alabilirsiniz. Sadece Linux için de değil bir çok alanda kurslar da var. Beni bu alanda bir kariyer edinmemi sağlayan kursa ve eğitmenlerime teşekkürü borç bilirim.

Sanallaştırma Virtualization Nedir ?

Sanallaştırma Virtualization Nedir ?

Günümüzün bilişim dünyasında önemli bir teknoloji dönüşümünü temsil eder. Fiziksel donanımları soyutlama ve kaynakları daha verimli kullanma kabiliyeti sayesinde işletim sistemleri, uygulamalar ve veriler artık daha esnek, ölçeklenebilir ve güvenli bir şekilde yönetilebiliyor. Sanallaştırma, bilişim altyapılarını daha verimli hale getirerek, kaynak kullanımını optimize ederek ve maliyetleri düşürerek işletmelerin rekabet gücünü artırmada önemli bir role sahiptir.

Symbolic Link ve Hard Link

Symbolic Link ve Hard Link

İşletim sistemlerinde dosyaları düzenlemek ve yönetmek, veri organizasyonunun temel bir parçasıdır. GNU/Linux dünyasında, dosyaları bağlamak için kullanılan iki önemli kavram Symbolic Link (Sembolik Bağlantı) ve Hard Link (Sert Bağlantı) olarak karşımıza çıkar. Bu yazıda, Symbolic Link ve Hard Link kavramlarını ayrıntılı bir şekilde inceleyecek ve her iki bağlantı türünün nasıl çalıştığını ve farklılıklarını örneklerle anlatacağız.