Linux’un Aydınlık Yüzü – Dosya Dizin Yapısı & Temel Komutlar
0

Sizlere bu makalemde Linux dünyasına derinden bir giriş değil fakat Linux yönetimi konusunda ilk başlarda öğrenmemiz gereken bilgiler ve komutları anlatmaya çalışacağım devam makalemde ise Linux sistem yönetimi,devops süreçlerinde işimize yarayacak toolları ele alacağım bir seri oluşturmayı hedefliyorum.

Not: Anlatacağım komutlar diğer dağıtımlarlada kullanabileceğiniz komutlar olacaktır ben RHEL üzerinden anlatıyor olacağım.

Kısaca Linux hakkında bilgi verecek olursam eğer , Linux bir Unix işlettim sistemi türevi olan açık kaynak kodlu bir işletim sistemidir. Bu cümle kime sorsanız size ilk söyleyeceği cümledir hadi biraz daha sorgulayalım ama öncesinde

Kaynak Kod Nedir? Açık Kaynak Kod Nedir?

Kaynak Kod : Yazılımın oluşturulmasında içerdiği kodların tümü kaynak koddur, sadece bir tane kaynak kod dosyası yoktur yazılımlar birden fazla kaynak kod dosyası olabilir.

Açık Kaynak Kod: Örnek olarak bir exe dosyasının içinde kaynak kod mevcuttur ve derlenip exe haline getirildiğinde artık kaynak koda ihtiyacımız yoktur ve koduda göremeyiz. Windows tarafında kullandığımız ya da MacOS bu platformlarda kullandığımız uygulamalar buna örnektir fakat Linux ve Android platformları açık kaynak kodlu sistemlerdir ve yazan kişi kaynak kodlarıyla beraber bunları yayınlar.

Kodlar elimizdeyse artık bizde geliştirmeler ya da üzerinde oynamalar yapabiliriz

Linux açık kaynak kod bir işletim sistemi dedik kaynak kodu açıkladık şimdi bu dünyaya yavaştan giriş yapacaksak eğer size ‘Kernel’den bahsedeyim, kernel (çekirdek) işletim sisteminin olmazsa olmazıdır kalbidir diyebiliriz ve kernel donanım ile yazılımın arasında iletişimi sağlar, sistem üzerinde bellek ve çalışan servislerdeki süreçleri denetler.

Donanım ile yazılım arasında iletişimi sağlıyor bu kernel ama nasıl? Burdada yardımımıza Shell (kabuk) koşuyor Shell bizimle çekirdek arasında ki köprüyü oluşturuyor ve terminal ekranına girdiğimiz komutları yorumlayarak kernel e iletiyor. En çok kullanılan Shell programı ‘Bash’ dır.

İlerleye makale serimde Bash kısmına değinip Bash Script örnekleri vereceğim sizlere artık Terminal ekranını karşımıza almadan önce Linux un dizin yapısını anlatırken işimize yarayacak komutlarıda kurcalayalım.

Dizin & Dosya Yapısı ve İşlevleri

Linux dizin yapısını Windows tarafında ki gibi beklemeyin hiyerarşik bi yapıya sahip olup Root(kök) dizi en üst dizindir ve alt dizinlerde vardır bu alt dizinlerinde içlerindede dizinler ve dosyalar mevcuttur.

Not: Paketlerin çalışması için önemli dosyaların ve dizinlerin yerleri standart durumdadır.

Resim-1

Evet terminal ekranına giriş yaptık ve yukarıda göreceğiniz üzere bazı komutlar kullandım.

su – : diyerek normal kullanıcımdan root kullanıcısına geçiş yaptım.

pwd: Hangi dizinde olduğumu bana gösterir

ls : Daha geniş deyineceğim ama var olan dizinleri ve dosyalaları listelemek için ‘ls’ komutunu kullanırız.

cd: Dizinler arası geçiş için kullanılır. Bu komutta tek nokta bulunduğumuz klasörü ifade eder iki nokta ise bir üst klasörü. Olduğunuz dizinden çıkış yapmak istersek cd .. kullanmalıyız.

Evet gördüğünüz üzere root dizinin içindeki dosyalar karşımıza çıktı şimdi bunlar nedir ona bakalım.

/etc: Sistem ayarlarının ve yapılandırma dosyalarının olduğu dizindir çoğu işinizi bu dizinde halledersiniz örnek olarak Ağ ile ilgili ayar yapmak istiyorsanız config dosyaları bu dizin altındaır.

/bin: Normal user ve yetkili user (root) ‘ın kullanmış olduğu çalıştırılabilir dosyalar bu dizindedir.

/sbin: Sadece root kullanıcısının çalıştırabileceği sistem dosyalarını içeren dizindir.

/dev: Donanım tarafında ki aygıt dosyalarını içeren dizindir

/lib: Sistem kütüphanelerinin bulunduğu dizindir.

/home: Sistemdeki kullanıcılara ayrılan dosyaların bulunduğu dizindir.

/mnt: Geçici olarak sisteme mount ettiğimiz dosya sistemlerinin bulunduğu dizindir.

/root: Yetkili kullanıcı olan root a ait olan dizindir.

/tmp: Geçici dosyaların koyulduğu dizin. Belirli zaman aralıklarında temizlenmelidir.

/usr: Kurduğunuz programlar bu dizinie kurulur genelde ve paylaşılabilir dosyalar, çalıştırılabilir dosyalar ve programlara ait dosyalarda bu dizindedir.

/var: Sisteme ait bilgiler (log) dosyaları bu dizindedir ve bu dizinde geçici dosyalar mevcuttur bu dosyalar paylaşılması mümkün değildir yani diğer sistemlerinizle paylaştırılmaz

/proc: Bu dizindeki dosyalar disk üzerinde yer kaplamaz ve sistem kontrollerini var klasöründe ki gibi sistem bilgilerini üstünde tutan dizindir, sanal bir dosya sistemide diyebiliriz.

Kısaca size dizin yapısı hakkında bilgi verdim şimdi komutlarımıza ‘ls’ ile başlayalım.

Ls (Listeleme Komutu)

Ls dizinleri ve dosyaları listelememize yarar demiştik ls komutunun yanına farklı parametreler ekleyerek listeleme şeklini değiştirebiliriz.

Not: Ls komutunu dizin veya dosya ismi belirtmezseniz olduğu dizinin içeriğini size listeler.

ls’in yanına kullanabileceğimiz parametreler aşağıdaki gibidir.

ls -a : Dizin içerisinde ki tüm dosyaları listeler, burada tüm dosyalardan kastım gizli dosyalarda dahil.

Linux da gizli dosyalar nokta ‘.’ İle başlar ve normal ls komutu kullandığınızda gözükmezler.

ls -l : Yukarıda gördüğünüz üzere yukarıdan aşağıya listelemek için kullanılır ve dosya hakkında bize bilgilerde verir birazdan bu bilgilere aşağıda değineceğim.

ls -h : Dosya boyutları normalde byte olarak gösterir Linux, biz burada kullandığımız parametre ile megabyte,gigabyte cinsinden gösterir.

ls -R : Listelenen dizinin içinde bulunan alt dizinleride içeriğini listelemek için kullanırız.

ls -o: Tek fark dizindeki grup bilgisini göstermez

Dizin & Dosya Yapısı Yetkileri ve İzinleri

Şimdi dizin içerisindeki dosyaları ayrıntılı listeleyip inceleyelim.


Resim-2

Gördüğünüz üzere ls -a yı kullandığımda gizli dosyalarıda gösterdi parametreleri beraberde kullanabiliriz o yüzden ls -la diyerek sys dizini altındaki tüm dosyaları listeleledim bu dosyaların yanında değişik şeyler var onların anlamları ne hemen şöyle anlatayım size;

drwxr-xr-x. 2 root root 0 Mar 10 16:05 power

En başta dosya tipi yani burda d ile başlamış, dosya tipleri nelerdir inceleyelim

Sade tire (-) : Regular File

D: Directory

B : Block Device

C : Charecter Device

Dosya tipini bize verdikten sonra izinleri anlamamız için 3 ayrı gruba ayırdım.

rwx |r-x |r-x

İlk 3 karakter dosya sahibinin yetkileri, ortadaki 3 karakter dosyanın sahibiyle aynı grupta bulunan kullanıcıların yetkilerini son 3 karakter ise diğer kullanıcıların yetkileridir.

Bu harfler ne anlama gelmektedir;

R: okuma yetkisi

W: Yazma yetkisi

X : Program dosyasıysa çalıştırma yetkisi olduğu anlamına gelir

(-) : Tire yukarıda belirttiğim 3 karakterden hangisine denk geliyorsa o iznin verilmediği anlamındadır. (Dosya tipi ile karıştırmayınız)

Dizini incelemeye devam edelim oradaki 2 rakamı hard link sayısını verir. ( Hard link kavramından bahsedeceğim) ilk yazan root dosya sahibini diğer root kısmı ise olduğu grubu 0 yazan dosya boyutunu tarih kısmı ise oluşturulduğu tarih bilgisini bize verir.

Şimdi ise dosya üzerinde izinleri değiştirelim burda bize yardımcı olacak komut ‘chmod’

chmod

Chmodu 2 farklı şekilde çalıştırabiliriz.

  • İznin sayısal değeri
  • İznin harf karşılığı

Peki Linux işletim sisteminde izinler grup olarak ve dosya olarak ayrılır bunlarda kendi içlerinde 3 farklı şekilde inceleyebiliriz.

Grup bazlı;

  • Dosya sahip izni
  • Dosya grup izni
  • Diğer kullanıcıların izni

 

Dosya bazlı;

  • Dosya Okuma (r)
  • Dosya Yazma (w)
  • Dosya Çalıştırma (x)

 

İzinlerin içerik bilgisini verdiğimize göre chmod u kullanabileceğimiz sayısal değerler tam olarak nedir bir bakalım. Her grup tek başına ele alınır ve izinlerin değerleri toplanarak izinlerin sayısal karşılığını elde edebiliriz, izinlerin sayısal değerleri;

  • Read : 4
  • Write : 2
  • Execute :1

 

Yukarıdaki izinimizi hesaplarsak eğer rwx |r-x |r-x = 755 e tabi eder.

Şimdi bir dizin oluşturalım ve ona full izin verelim.

mkdir : Dizin oluşturma komutu.

Resim-3

Yukarıda gördüğünüz üzere dizini oluşturduk ilk listelediğimizde ve son listelediğimiz zaman aralarında ki izin durumlarının farklarıda belli olmaktadır.

Harf olarak değer atamak istediğimizde ise;

Dosya sahibi : (u) user

Dosya Grubu (g) grup

Diğer kullanıcılar (o) others

Dosya da izin vermek için + izni geri almak için – parametresi kullanılır

Örnek: chmod +w efa dediğimde tüm kullanıcılara yazma izni vermiş oluyorum

rm (Dizin,Dosya Silme)

rm komutu sistemdeki dosya ve dizinleri silmek için kullanılır. Rm ye dair örnekler ve parametreler aşağıda ki gibidir.

rm dosya ismi (Dosya silmek için)

rmdir dizinismi (İçi boş dizini silmek için)

rm -r dizin ismi ( İçi dolu dizini silmek için alt dizinlerle beraber siler)

rm -i : İnteraktif mod devreye girer ve sileceğiniz her dizin ve dosya için user dan izin ister

rm -f : onay istemeden silmek için kullanılır

cp-mv (Dosya Kopyalama ve Taşıma)

cp komutu dosyayı kopyalamak mv komutu ise dosyaları taşımak için kullanırız.

cp komutu parametreleri;

Resim-4

-R : Dizin kopyalamak istediğimizde bu parametreyi kullanırız sadece cp komutu çalışmaz.

-p : Kopyalanan dosya ve dizinin izinlerini korur

d : Dosyanın kendisi yerine linklenmiş halini kopyalamak için kullanılır.

-f : Kopyalama işlemi sırasında bize soru sormadan işlemi gerçekleştirir ve eğer kopyalacağımız dosya veya dizin hedefte var ise sormadan hedefteki dosyayı siler ve kopyalama işlemini gerçekleştirir.

-i : Kopyalanacak hedef dosya mevcut ise kullanıcıya sorup kopyalama işlemini gerçekleştirir.

-u : Kopyalanan dosya hedef dosyadan sonra oluşturulduysa (yani yeni ise) kopyalama işlemini gerçekleştirir.

mv komutunun kullanımıda cp komutu ile aynıdır ve f,i,u parametreleri mv içinde geçerlidir.

Not: mv komutu ile dosya ve dizinde isim değişikliğide yapabiliriz.

cat,more,find,grep ( Dosya Görüntüleme ve Arama)

cat: Metin tabanlı dosya görüntülemek için kullanılır, cat komutunu dosya oluşturmaktada ve birden fazla dosyayı birleştirmek içinde kullanabiliriz.

more: Cat ile aynı işlevi görür farkı içerikleri sayfa sayfa görebilmekteyiz.

find : Dosya aramak için kullanılır.

grep: arama ve aramalarda filtreleyerek arama için kullanılır

Örnek : grep emre /etc/passwd : etc passwd altında emre kelimesi geçenleri ara demek istedik bu komutumuzda.

Gelin bu komutları parametreleriyle beraber inceleyelim.

Cat


Resim-5

-e : Satır sonlarını belirlemek için $ karakterini ekler

-t : Metinlerde geçen tab karakterini ^| olarak gösterir

-A : t ve e parametlerini beraber kullanmak isterseniz bu parametre yeterlidir.

-n : Metni satır satır numaralandırır.

Satır başı ve sonu olarak görütülemek istiyorsak satır başında head satır sonunda tail komutu kullanılır ve kaç satır olarak görmek isterseniz sonuna eklemelisiniz, eklemezseniz default olarak 10 satır göstermektedir.

head -20 efadosya

tail -30 efadosya

Resim-6

Find

Sistem içerisinde dizin veya dosya aramak için kullanırız. Find’e dair parametre örnekleri aşağıda ki gibidir

Resim-7

Yukarıda görüldüğü üzere isim olarak arama yapmak istediğimizde find -name network dedik ve aramamızı yaptı daha sonra sonuna * veya ? işaretide eklediğimizde daha geniş bir arama yapar.

-user : Kullancı bazlı arama yapar belirlediğimiz kullanıcıya ait dosyaları arar. Nouser diyere bir kullanıcıya tanımlı olmayan dosyaları aratabilirisiniz.

-group: Grup bazlı arama yapar belirlediğimiz gruba ait dosyaları arar. nogroup diyere bir gruba tanımlı olmayan dosyaları aratabilirisiniz.

-perm : İzin bazlı arama yapar burda yukarıda bahsettiğimiz izin parametrelerini kullanarak yapabilirsiniz.

Resim-8

-type: Dosya tipine göre arama yapmak için kullanılır yukarıda bahsettiğimiz dosya parametrelerini kullanarak arama yapabilirisiniz.

newer: belirttiğiniz dosyadan daha yeni oluşturulmuş dosyaları bulmak için kullanılır

-size : + ve – kullanarak belirlitilen büyüklüğe sahip dosyaları aramak için kullanılır.

Find tarafında bir çok parametre mevcuttur ihtiyacınıza göre araştırıp bulabilirsiniz ben ilk başlarda işimize yarayacak olan parametrelerden bahsettim.

ln,ln -s (Link Tanımlama)

Link tanımlamayı kısaca anlatmak gerekirse Windows işletim sistemlerinde ki kısayol oluşturma diyebiliriz ama daha geniş bir şekilde özetleyeceksekte bir dizini veya dosyayı kopyalamak yerine birden fazla yerden ulaşılmasını istiyorsakta linkleyerek bağ kurabiliriz.

2 tip link kavramı mevcuttur.

Hard Link: Linklediğimiz dosyanın orijinal kopyasıdır ve orijinal dosyayı silsek bile hard link yaptığımız dosya açılabilir ve içeriği okunabilir durumdadır.

Komut : ln kaynak hedeflink


Resim-9

Kaynak dosyayı silip kontrol edelim.



Resim-10

Gördüğünüz üzere linklediğimiz dosyayı sildim fakat hedefteki dosyaya baktığımda hala mevcuttur.

Soft Link: Kısayol diyebiliriz orjinali silinirse herhangi bir geçerliliği kalmaz.

Komut: ln -s kaynak hedeflink

Resim-11

Soft link yaptığımda ise karşıma böyle çıkmaktadır.

Chown,chgrp (Dizin Erişim ve Sahip İşlemleri)

Dosya sahibinin değiştirilmesi için chown grub değişitirlmesi isteniyorsa chgrp komutu kullanılmaktadır.

chown user_name filename

chgrp user_name:group_name filename

Örnek:

Resim-12

Tar,gzip (Dosya Sıkıştırma ve Yedekleme)

Tar : Arşivleme yapmamızı sağlayan komuttur sıkıştırma ile karıştırmayınız ama arşivlediğimiz dosyayı sıkıştırmakta istiyorsak yanında gzip kullanabiliriz.

Gzip: Bahsettiğimiz üzere gzip ile dosya sıkıştırabiliriz, sıkıştırma işleminde sıkıştırılan dosyanın sonuna gz uzantısı eklenir ve orijinal dosya ile yer değiştirir.

Gzip’in sıkıştırma seviyeleri mevcuttur bunlar 1’den 9a kadardır 1 en hızlı 9 en yavaştır.

İlk başta tar parametrelerinden bahsedelim.

-z : Bu parametreyi kullandığımızda gzip kullanılarak sıkıştırma işlemini gerçekleştirir, gzip kullanarak sıkıştırıdığınız dosyayı yine -z parametresi kullanarak açabilirsiniz. Compress programını kullanıyorsanız eğer büyük Z ile bu işlemlerin aynısını gerçekleştirebilirisiniz. -Z

Not: tar ile birlikte sıkıştırma işlemini gerçekleştirmek istediğimiz gz uzantısı otomatik olarak gelmez biz manuel olarak yazmalıyız. Efadosyaadi.tar.gz gibi)

-f : özel bir dosya ismi ya da belli bir device ismi belirlemek için kullanılır

-c: tar dosyayı yaratmak için kullanılır

-x: tar dosyası açmak için kullanılır

-t: tar dosyası içeriğini listelemek için kullanılır

-v : işlemleri standart çıkışa göre listelemek için kullanılır yani komutu girdikten sonra yapılan işlemleri satır satır bize listeler.

-r : tar arşive dosya eklemek için kullanılır burda eklediği dosyalar tar olmayan dosyalardır.

-u: tar arşiv dosyasındaki dosyaları yenilemek ve değiştirmek için kullanılır

-d: Arşivlenen dosyalar arasında içerikleri karşılaştırır

-A: tar dosyalarını arşive ekler

Gzip : dosyayı sıkıştırmak için kullanılır bize ortalama %40 sıkıştırma sağlar ve gz uzantısı otomatik olarak gelir.

Gunzip: ziplenmiş dosyayı açmak için kullanılır

Birkaç örnek yapalım, aşağıdaki örneklerde ilk 3 farklı dosyamı zipledim ve daha sonra bunları efa.tar adı altında arşivledim ve en sonki komutumlada tar dosyasını açmadan dosyanın içeriğini görüntüledim.

Resim-13

Evet elimden geldiğince Linux tarafı hakkında özet bilgiler verip Linux işletim sisteminin dosya ve dizin yapısını ele alıp buralarda işimize yarayacak komutları sizlere aktardım umarım faydalı olur.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

TAGs: linux komutları, temel linux komutları, en çok kullanılan linux komutları,gzip nedir,ls nedir, linux Dizin yapısı,linux dosya yapısı,shell nedir, bash nedir, su komutu nedir,su komutu kullanımı,pwd komutu,linux dizin yetkilendirme, linux dosya yetkilendirme,chmod nedir, linux klasör oluşturma, linux dosya oluşturma

Bu İçeriğe Tepkin Ne Oldu?
  • 5
    harika_
    Harika!!
  • 0
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 0
    olmad_
    Olmadı!
  • 2
    k_zd_m_
    Kızdım!

İstanbul doğumluyum. 2013 senesinde Lise stajında Türkiye İş Bankası GM'de başlayan maceram şuan Xinerji Software şirketinde DevOps Architect olarak devam etmektedir. Bu süreç aralığında çalıştığım diğer firmalar, LG Electronics GM - Europ Assistance Türkiye GM - Glasshouse - bestcloudfor.me ( Vodafone Türkiye Outsource). Kariyer yolculuğumu DevOps üzerine yoğunlaştırdım ve bu alanda çalışmalar gerçekleştirmekteyim.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

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