Linux eğitim yazılarımıza dördüncüsü ile devam ediyoruz. Şimdiye kadar, Linux’un nasıl ortaya çıktığından, bir Linux sistemini oluşturan ana bölümlerden, dağıtım kavramından bahsederek; Linux shell ve Linux komut satırına terminaller üzerinden nasıl erişildiğini anlatmaya çalıştık. Bu yazımızda Linux dosya sistemi konusuna göz atacağız.
Kabuk Komut İstemcisini (Shell Command Promt) kullanmak
Bir terminal öykünücüsünü (grafiksel terminal) başlattıktan veya bir Linux sanal konsolunda oturum açtıktan sonra, kabuğun komut satırı arayüzüne erişirsiniz. Bu komut satırı arayüzü bizi kabuğa ulaştıran bir geçit gibidir. Kabuk komutlarını girdiğimiz yer burasıdır. Bir önceki yazımızda, bu konudan bahsetmiş ve kullanacağımız varsayılan kabuğun bash olduğunu söylemiştik.

Bash kabuğunun varsayılan istem simgesi dolar işaretidir ($). Bu sembol, kabuğun komut girmenizi beklediğini gösterir. Ubuntu ya da Debian tabanlı sistemler için aşağıdaki şekilde bir görüntüyle karşılaşırsınız:
taylan@ubuntu:~$
Buradan kullanıcı adının “taylan” sistemin de “ubuntu” olduğunu anlıyoruz. Sistem ismi “server1” gibi bir isim de olabilirdi, ilk yapılandırma ile alakalı bir isim.
Eğer dolar işareti ($) yerine diyez (#) işareti görüyorsanız, oturumunuz “root” olarak açılmış demektir.


Sistem yöneticisi değilseniz ve sisteme müdahale etmeniz gerekmiyorsa, root oturumuyla pek bir işlem yapmanızı tavsiye etmiyoruz. İmkânınız varsa, normal bir kullanıcı oluşturup işlemleri bu kullanıcı üzerinden yürütün. Normal bir sistem kullanıcısı olduğunuzu dolar ($) işaretinden anlayabilirsiniz.
Linux dosya sistemi
Eğer Linux sistemini yeni kullanan ya da tecrübesi olmayan bir kullanıcı iseniz, dosyaların ve klasörlerin neye göre ilişkilendirildiği konusunda kafanız karışabilir.
Öncelikle şunu söyleyelim, Linux sürücü (disk) yollarını harflerle adlandırmaz. Windows’daki gibi fiziksel sürücülerin adı C:\ ya da D:\ değildir.
Mesela, Windows ortamında “teknopusula.txt” adlı dosyanın bulunduğu yolu,
C:\Users\Taylan\Documents\teknopusula.txt
olarak görebilirsiniz. Aynı dosyayı bir taşınabilir belleğin kök dizinine kopyalarsanız yol;
J:\teknopusula.txt
olarak görünür. Windows taşınabilir belleği J:\ harfiyle adlandırmıştır.
Linux dosya sistemi dosyaları “sanal dizin” adı verilen tek bir dizin yapısında saklar. Sanal dizinde, bilgisayarda yüklü olan tüm depolama aygıtlarının dosya yolları bulunur ve tek bir dizin yapısında birleştirilir.
Bu sanal dizin yapısının birleştirildiği dizin “root” (kök dizin) olarak adlandırılır. Windows’takine benzer bir şekilde kök dizinin altında diğer tüm dosya ve klasörler listelenir.
Kök dizini “/” (ileri slaş) ile gösterilir. Klasörler dizin yapısında listelenirken yine ileri slaş simgesi kullanılır. Windows’taki simgenin “\” (geri slaş) olduğuna dikkat edin.

Şimdi az önceki teknopusula.txt dosyasının Linux’ta nasıl görüntülendiğine bakalım:
/home/taylan/Documents/teknopusula.txt
Aynı dosya Linux’e bağlı bir taşınabilir bellekte ise doyanın yolu;
/dev/sdb/teknopusula.txt
şeklinde görünür.
Dosya yollarını incelediyseniz, dosyaların hangi fiziksel diskte olduğuna dair Windows’taki gibi bir bilgi göremezsiniz.
Linux diskleri nasıl isimlendirir?
Bu konuya hızlıca değinip geçelim. Disklerin “mount” edilmesi konusunu başka bir yazıda ayrıntılı işlemeye çalışacağız.
Önce Windows mantığını kısaca anlatalım:
Diyelim ki bir tane 100 GB boyutlu fiziksel diskiniz var. Eğer tek parça olarak bunu biçimlendirip kurulum yaptıysanız diskiniz tek bir sürücü adıyla C:\ şeklinde adlandırılır. Eğer diskinizi iki parçaya böldüyseniz, C:\ ve D:\ şeklinde iki farklı adla görürsünüz. Ya da 100 GB ve 250 GB boyutlu iki fiziksel disk olduğunu varsayalım. Bölümleme yapmadıysanız C:\ ve D:\ adını alacaklardır. Bunun yanında bir harici disk bağlarsanız bu da sonraki harflerden birini, mesela F:\ adını alabilir.

Linux için aynı durumlara bakalım.
Tek bir disk bölümlendirilmediyse disk adı : sda
Tek bir disk iki parçaya bölümlendirildiyse : sda1, sda2
İki fiziksel disk bölümlenmediyse : sda, sdb
İki fiziksel disk ve her ikisi iki parçaya bölümlü ise : sda1, sda2, sdb1, sdb2
Tek bir fiziksel disk (sda) varken bir taşınabilir disk adı : sdb ya da sdb1
Yukarıdaki örneklerde SCSI ya da SATA disklerin bağlı olduğunu varsaydık. Baştaki “s” SCSI veya SATA’yı temsil ediyor. IDE diskler için hda gibi bir isimlendirme ile karşılaşabilirsiniz. Detayı şimdilik önemli değil. Sondaki harf ve sayılardan isimlendirme olayı anlaşılmıştır herhalde.

İşte bu isimlendirilen diskler kök dizinde bir klasöre bağlanır. Genellikle bu klasör /dev klasörüdür. Farklı bağlanma yöntemleri de mevcut, bunun detayına dediğimiz gibi şimdi girmek istemiyoruz.
Klasöre bağlanmış teknopusula.txt dosyasının yolu harici diskte iken;
/dev/sdb/teknopusula.txt
yolu ile görünmüştü.
Peki normal diskte neden /dev/sda/home/… şeklinde değil de /home/taylan/Documents klasöründe göründü?
Çünkü Linux, sistem kurulurken birincil diski kök dizinine direkt bağladı. Yani “/” aslında ilk diski temsil ediyor.
Hatta ikincil bir fiziksel ya da mantıksal diski kurulum esnasında “home” dizini için kullanmak istediğinizi belirtirseniz, sdb ya da sda2 diski direkt olarak /home klasörüne bağlanır. “home” klasörü kullanıcı dosyaları için kullanılır.
Temel Linux Klasör Yapısı
Bir Windows işletim sisteminde C:\ diskine girdiğinizde Program Files, Windows, ProgramData, Users gibi klasörlerle karşılaşırsınız. Bunların hangi amaçlarla oluşturulduğunu bir Windows kullanıcısı az çok bilir.
Linux sisteminde ise kök dizine girdiğinizde karşılaşacağınız temel klasörler ve özet amaçlarını aşağıda listeledik.
| Klasör | Kullanım amacı |
| / | Sanal dizinin köküdür. Normalde direkt dosya barındırmaz. |
| /bin | Binary klasörüdür. Kullanıcı düzeyindeki GNU araçlarını barındırır. |
| /boot | Boot klasörü. Boot için gerekli dosyaları saklar |
| /dev | Device (cihaz) klasörü. Cihaz bağlantıları için kullanılır. |
| /etc | Sistem konfigürasyon dosyalarını barındırır. |
| /home | Kullanıcı dosyalarını saklar. Her kullanıcı için alt klasör açılır. |
| /lib | Library (kütüphane) klasörüdür. Sistem ve uygulama kütüphane dosyalarını barındırır. |
| /media | Çoğunlukla çıkarılabilir diskler için bağlama noktası olarak kullanılır. |
| /mnt | Mount (bağlama) klasörüdür. Çıkarılabilir diskler için kullanılabilen bir başka bağlama noktası. |
| /opt | Opsiyonel bir klasör. Üçüncü parti uygulamalar ve veriler için kullanılabilir. |
| /proc | Process (işlem) klasörü, varsayılan donanım ve işlem bilgilerinin saklandığı alandır. |
| /root | Root’un (sistem yöneticisi) home dizinidir. |
| /sbin | Sistem binary klasörü, yönetici seviyesindeki GNU araçları içindir. |
| /run | Runtime verileri ve sistem çalışması sırasında oluşan verileri saklar. |
| /srv | Servis klasörü, yerel servis dosyalarını saklar. |
| /sys | Sistem klasörü, sistemsel donanım bilgilerini depolar. |
| /tmp | Geçici (temporary) dosyaların saklandığı ve yok edildiği alandır. |
| /usr | “User binary” klasörü, GNU araç ve verilerinin çoğunun saklandığı yerdir. |
| /var | Variable (değişken) klasörü, günlük dosyaları gibi değişken verilerin tutulduğu alandır. |
Bu dizin yapısı Filesystem Hierarchy Standard’a (FHS) göredir. Standart bir müddet önce değişmişti. Hala eski standarda göre dizin yapısını koruyan dağıtımlar da olabilir.

Linux’u grafik arabiriminde kullanıyorsanız bu klasörlere farenizi kullanarak tıklayıp dilediğiniz gibi gezinebilirsiniz ve dosyaları açabilirsiniz.
Ancak Linux’u bir terminal ekranından ya da uzak bir sistemden yine terminal kullanarak yönetiyorsanız, Linux dosya sistemi içindeki klasör ve dosyalar arasında gezinmek için bash komutları kullanmak zorundasınız.

Bununla birlikte, Linux sistemlerinin vazgeçilmesi olan bash kodlama ile uğraşacaksanız da dizin yapısında komutlarla nasıl hareket edeceğinizi bilmelisiniz.
Bir sonraki yazımızda Linux dizin yapısında komut istemiyle nasıl gezineceğimizi ve kopyalama, yeniden adlandırma, dosya oluşturma, silme gibi temel işlemleri komut istemiyle nasıl yapacağımızı anlatacağız.
