1.                        

8-) Sıfırdan Temel Linux Eğitimi [Dizin İşlemleri]

'Dökümanlar' forumunda Al-Farabi tarafından 8 Temmuz 2018 tarihinde açılan konu

  1. Al-Farabi

    Al-Farabi Albay

    Katılım:
    16 Ocak 2016
    Mesaj:
    1,324
    Beğeniler:
    103
    Ödül Puanları:
    63
    Dizinler Hakkında
    Linux işletim sisteminde bütün programlar, aygıtlar, dosyalar ve genel olarak sistem, hiyerarşik bir düzen içersindedir. Yani komut satırını kullanacaksak her şeyi oluşturan bu hiyerarşik düzen içerisinde rahat şekilde geziyor olabilmemiz gerek. Bu bölümde bu hiyerarşide gezinme ve görüntüleme için gerekli komutlara değineceğiz.

    pwd
    Bu komut sayesinde o an bulunduğumuz dizinin adını öğrenebiliriz. Genellikle sistem yöneticilerinin sık kullandığı bir komuttur.

    Örnek vermek gerekirse Linux'ta hiyerarşik bir düzen var dedik. Bu hiyerarşik düzen kök dizinine(root) bağlıdır her kullanıcı buna root da dahil kendi ev dizinine(home) sahiptir. Böylece neden root(kök) isminin kullanıldığını da tekrar anlamış oluyoruz. Konsol çalışmaya varsayılan olarak kendi ev dizininde başlar. Root kullanıcısının ev dizini /root dizinidir. Bunu teyit etmek istersek pwd komutunu kullanabiliriz.

    [​IMG]

    Root kullanıcısının dışında da sistemde başka kullanıcılar olabilir. Bu kullanıcıların ev dizini(home) ise /home/kullanıcı_adışeklindedir.

    Bu durumu test etmek için "kullanici" adında yeni bir kullanıcı oturumu oluşturdum ve oluşturduğum bu oturum içerisinde komut satırına pwd komutunu verdim. Çıktısı aşağıdaki şekilde oldu.

    [​IMG]

    cd (Change Directory)
    Bu komut sayesinde dizinler arası geçiş yapabiliyoruz. Zaten daha önceki kısımlarda da bu komutu kullanmak durumunda kalmıştık hatırlarsanız.

    Komutumuzu kullanırken gitmek istediğimiz dizinin adresini vermeliyiz. Ben önceki bölümlerde oluşturduğum dizinin en alt klasörüne gitmek istiyorum. Bunun için komut satırına cd Desktop/yeni_dizin/yeni/en_yeni şeklinde bir komut veriyorum.

    [​IMG]

    Artık gitmek istediğim dizinin içerisindeyiz. Eğer bir önceki dizine (bir dizin geriye) dönmek istersek komut satırına cd ..yazmamız yeterli.

    [​IMG]

    Eğer direk olarak ana dizine dönmek istersek cd komutunu kullanmalıyız.

    [​IMG]

    Örneğin bir alt dizine geçip orada yer alan başka bir klasöre girmek istiyoruz diyelim. Bunun için komutumuzu cd ../klasör_adı şeklinde bir kullanabiliriz. Ben örnek olması açısından /etc dizini içerisindeyken bir geri dizine dönüp daha sonra home konumuna gelmek için cd ../home komutunu kullanıyorum.

    [​IMG]

    Ancak dikkat etmeniz gereken nokta komutu yazarken iki noktadan(..) hemen sonra boşluk bırakmadan gitmek istediğimiz dizini belirtiyoruz. Eğer boşluk bırakarak yazarsak aşağıdaki şekilde bir uyarı alırız.

    [​IMG]

    Eğer sürekli iki dosya arasında gidip geliyorsak bir önceki dosyaya cd - komutu ile dönebiliriz.

    [​IMG]

    Çıktıda da görüldüğü gibi cd - komutu ile iki konum arasında pratik şekilde gidip gelebiliyoruz.
     
    MrX bunu beğendi.
  2. Al-Farabi

    Al-Farabi Albay

    Katılım:
    16 Ocak 2016
    Mesaj:
    1,324
    Beğeniler:
    103
    Ödül Puanları:
    63
    ls
    Listeleme ve görüntüleme işini yapan bu komutumuzu anlatmadan önce defalarca kullandık. Bu da gösteriyor ki ls komutu çok yaygın şekilde kullanılan komutlardan. Bu komuta sürekli işimiz düşecek. Bu komutun da pek çok parametresi mevcut ben hepsini olmasa da birkaçını ele alarak anlatıma devam ediyorum.

    En temel kullanımı ile başlayacak olursak, ls komutu içinde bulunduğumuz dizinde yer alanları bizlere gösterir. Örneğimize ana dizindeyken ls komutunu vererek başlayalım.

    [​IMG]

    Görüldüğü üzere ls komutumuzu kullanmamız ardından bulunduğumuz ana konumda yer alan tüm dosyalar konsola basılmış oldu.

    ls-l
    Eğer çıktımız ayrıntılı olsun istiyorsak komut satırına komutu parametresi ile beraber ls -l şeklinde yazmamız gerekiyor.

    [​IMG]

    Çıktımızda dosya izinleri, dosya boyutu, oluşturulma tarihi gibi bilgiler sıralanmış oldu. Tabii ki ls komutu kullanımı bununla sınırlı değil, parametreler ile devam edelim.

    ls-a
    Bizim yukarıdaki çıktımızda gizli dosyalar bulunmuyor. Eğer istersek gizli dosyaları da aynı şekilde listeleyebiliriz. Bunun için ls komutunun a parametresini kullanıyoruz. Çıktımızın düzenli ve listeli olması adına a parametresinin yanına bir de lparametresi kullanmak istiyorum. Bunun için komut satırına ls -la şeklinde veya ls -al şeklinde komutu girmemiz gerekiyor. Ayrıca bu komutu ls -a -l şeklinde ayrı ayrı olarak da girebiliriz. Sonuçta bu komutun parametresi hem birleşik hem de ayrı ayrı şekilde yazılabilir. Kullanım tercihi size kalmış.

    [​IMG] [​IMG] [​IMG]

    ls -A
    . ve .. dizinleri hariç gizli dosyalar da dahil bütün dosyaları görmek istersek ls komutumuzu ls -A şeklinde kullanabiliriz. Ayrıca çıktıları düzgün şekilde listelemek adına l parametresi de dahil edebileceğimizi biliyorsunuz.

    [​IMG]

    ls -h
    Listelenen dizinlerin boyutunu okunaklı(human readable) şekilde verir. Okunaklıdan kasıt dosya boyutunu KB, MB, GBtüründen büyüklük olarak vermesidir. Karşılaştırmanız acısından bir normal şekilde birde daha okunaklı şekilde olanın çıktılarını aşağıda veriyorum. (Ayrıca komutumuza -l parametresini eklemiş olmamızın sebebi dizin ayrıntılarını dolayısıyla da dosya boyutunu görebilmektir.)

    [​IMG]

    ls -i
    Düğüm numarasını verir. Düğüm(inode) numarası nedir diyecek olursanız bu konuya ileride değineceğiz şimdiilik bu parametrenin bu görevi yerine getirdiğini bilsek yeter.

    [​IMG]

    ls -S
    Dosya büyüklüğüne göre sıralar. Dosyalar büyüklüklerine göre sıralanacağından komutun daha net anlaşılması için /root/rundizini altında işlem yaptım.

    [​IMG]

    ls -t
    Dosyanın değiştirilme tarihine göre sıralar.

    [​IMG]

    ls -r
    Konsola basılan çıktıyı ters çevirerek basar. Karşılaştırmanız açısından normal liste sırası ve -r parametreli ters liste sırasını aşağıda veriyorum.

    [​IMG]

    Örneğin ls -tl komutu ile dosyları oluşturulma tarihlerine göre en yeniden eskiye doğru sıraldık. Bu sıralayı en eskiden yeniye doğru yapmak istersek komutumuza r parametresi ekleyerek kullanmamız gerekir.

    [​IMG]

    Bir başka örnek ls -Sl komutu ile dosya ve dizinleri büyükten küçüğe sıralarken eğer komutumuza birde r parametresi eklersek bu sefer komutumuzun çıktısı ters şekilde yani küçükten büyüğe doğru sıralanmış olacak.

    [​IMG]

    Yukarıda bahsi geçen ls komutu, açıkladığım parametreleri dışında da oldukça fazla parametreye sahip. Bunları öğrenmek için man kılavuz sayfasını inceleyin lütfen.
     
    MrX bunu beğendi.
  3. Al-Farabi

    Al-Farabi Albay

    Katılım:
    16 Ocak 2016
    Mesaj:
    1,324
    Beğeniler:
    103
    Ödül Puanları:
    63
    Dizin Oluşturma Ve Silme
    Dizin oluşturmak için mkdir , silmek için ise ileride tekrar dosya sistemlerinde değineceğimiz rm komutu kullanılıyor.

    mkdir
    Klasör oluşturmamıza olanak sağlayan komuttur. En temel kullanımı mkdir klasör_adı şeklindedir. Örneğin bulunduğumuz konuma dosyalar adında bir dizin oluşturalım. Bunun için komut satırına mkdir dosyalar yazmamız yeterli. Ayrıca klasörümüzün oluşup oluşmadığını da ls komutu ile teyit ediyoruz.

    [​IMG]

    Eğer çoklu şekilde klasör oluşturmak istersek klasör isimlerini peş peşe yazarak bu işlemi gerçekleştirebiliriz. Komutun kullanımı mkdir dizin1 dizin2 dizin3 şeklindedir.

    [​IMG]

    Ayrıca klasör oluştururken izin ayarlarını da dilediğimiz şekilde ayarlayabiliriz. Bu imkanı bize -m parametresi sağlıyor. Kullanımı mkdir -m izin_kodu klasör_adı şeklindedir.

    [​IMG]

    Burada yer alan izin kavramı hakkında endişelenmeyin ileride "Erişim Yetkileri" kısmında ele alacağız. Kafası karışan arkadaşlar isterse şimdilik bu kısmı geçebilir yada "Erişim Yetkileri" konusuna göz atarak devam edebilir.

    rm
    Komutumuzu ileride dosya işlemleri bölümünde tekrardan ele alacağız. Ancak şimdi rm yani silme komutunun dizinler üzerinde kullanımı öğrenmeliyiz.

    Dizin dediğimiz şey iç içe sırlanmış klasör ve dosyalardan oluşan bir yol. Yani bu yolu silmek istediğimizde içerisindeki her şeyi de silmeliyiz. Bu yüzden komutumuzu -r parametresi ile birlikte kullanarak dizinin içerisindeki dosyalar da dahil her şeyi silmesini söylemiş oluruz. Yani komutun dizin silme işlemi için kullanım rm -r silinecek_dizin şeklindedir.

    [​IMG]

    Ve dizin, içerisinde bulunanlar ile birlikte silinmiş oldu. Eğer komutumuzu parametresiz olarak yani -r olmadan rm secureşeklinde verseydik, komut satırı bu işlemi dizinin içerisinde klasör ve dosya bulunması nedeniyle gerçekleştiremezdi.(Klasör içerisinde hiçbir şey bulunmasa dahi aynı uyarıyı verecektir.) Bu durumu denemek için daha önceden oluşturmuş olduğumuz dosyalar isimli klasörümüzü -r parametresi olmadan silmeye çalışalım.

    [​IMG]

    Konsol bize " 'dosyalar' silinemedi: Bu bir dizin " şeklinde uyarı verdi.

    Eğer silmeden(işlem yapılmadan) önce bize sorulsun yani bizi uyarsın istiyorsak komuta -i parametresi de ekleyebiliriz.

    [​IMG]

    Gördüğünüz gibi konsol işlem yapmadan önce her işi bize sordu ve "y" yanıtını aldığı için silme işlemine devam etti. Bu sayede dizinleri kontrollü şekilde silmiş olduk.(Kullandığınız sistemin diline göre onaylama yanıtı değişmektedir. Örneğin kullandığınız dil Türkçe ise onay vermek için kullanılan yanıt "e"{burdaki "e" den kasıt "evet" onayının kısaltması olan "e" karakteridir.} olacaktır.)

    Ayrıca dizin silme işlemlerini rm -ri dizin1 dizin2 dizin3 şeklinde kullanarak toplu şekilde silme işlemi de gerçekleştirebilirsiniz.

    [​IMG]


    Dokümantasyon Kaynağı
    [​IMG]
    Her türlü soru, öneri veya görüşleriniz için bana bu adresten geri bildirimde bulunabilirsiniz.

    Videolu eğitimi incelemek için buraya tıklayın.
     
    MrX bunu beğendi.

Bu Sayfayı Paylaş

Share