Skip to content

i) Dizin İşlemleri

Taylan Özgür Bildik edited this page Jun 26, 2019 · 1 revision

Dizinler Hakkında

Linux işletim sisteminde bütün programlar, aygıtlar, dosyalar ve genel olarak sistem, hiyerarşik bir düzen içerisindedir. Yani komut satırını kullanacaksak her şeyi oluşturan bu hiyerarşik düzen içerisinde rahatlıkla gezebiliyor olmamız gerekiyor. İşte bu bölümde, hiyerarşide rahatlıkla gezinme ve görüntüleme için gerekli komutlara tek tek 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.

enter image description here

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.

enter image description here

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.

enter image description here

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

enter image description here

Eğer direk olarak ana dizine dönmek istersek de cd komutunu kullanmamız gerekiyor.

enter image description here

Ö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.

enter image description here

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.

enter image description here

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

enter image description here

Çıktıda da görüldüğü gibi cd - komutu ile iki konum arasında pratik şekilde gidip gelebiliyoruz.

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.

enter image description here

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.

enter image description here

Çı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 l parametresi 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ış.

enter image description here enter image description here enter image description here

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.

enter image description here

ls -h

Listelenen dizinlerin boyutunu okunaklı(human readable) şekilde verir. Okunaklıdan kasıt dosya boyutunu KB, MB, GB türünden büyüklük olarak vermesidir. Karşılaştırmanız açı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.)

enter image description here

ls -i

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

enter image description here

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 içerisinde farklı boyutlara sahip dosyaları barındıran /root/run dizini altında işlem yaptım.

enter image description here

ls -t

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

enter image description here

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.

enter image description here

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

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.

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.

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.

enter image description here

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.

enter image description here

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.

enter image description here

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ıralanmış 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.

enter image description here

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.

enter image description here

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.

enter image description here

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 komutunurm -ri dizin1 dizin2 dizin3 şeklinde kullanarak toplu şekilde silme işlemi de gerçekleştirebilirsiniz.

enter image description here