İçerik Menüsü

8.Doküman

Dizinler Hakkında

Konu Etiketleri

pwd , cd , ls , dizin oluşturma , dizin silme , mkdir , rm

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.

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.

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.

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.

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

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

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.

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

Çı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.

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.

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

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.

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

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.

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.

ls -t

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

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.

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

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.

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.

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.

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.

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.

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. Yine de aklınızda bulunsun, sistemi hangi dilde kullanırsanız kullanın ingilizce onay ifadesi olan "y" her dilde onaylama işlevini yerine getirebiliyor.)

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

Alıştırmalar Hakkında

Öğrendiğiniz bilgilerin kalıcı olması için mutlaka bolca alıştırma yapmalısınız.Burada belirtilen alıştırmalar dışında da kendi kendinize özellikle de zorlandığınız konularda bol bol alıştırmalar yapın. Aksi halde öğrendiğiniz bilgiler kısa sürede unutulup gidecektir. Yani gerçekten öğrenmek istiyorsanız lütfen öğrendiğinizi hissede kadar alıştırmalar yapın.

O anda bulunduğunuz dizinini öğrenmek için ilgili komutu kullanın.

/root  dizinindeyken masaüstü konumuna (Desktop ) konumuna gelin.

/Desktop  konumundayken /etc  konumuna gelin.

Ana dizindeyken(/) Documents  dizinine geçiş yapın.

/etc konumundayken bir dizin geri gidip /lib  dizinine geçiş yapın.

/lib dizinindeyken bir dizin geri gidip dizin içeriğini listeleyin.

/etc  dizini ile /lib  dizini arasında ilgili komutu kullanarak hızlı geçişler(gidip gelin) yapın.

Bulunduğunuz dizindeki içerikleri ilgili komut bütünü yardımıyla ayrıntılı şekilde listeleyin.

Bulunduğunuz dizinde yer alan dosya ve dizinleri konsoldan ilgili komut bütünü yardımıyla büyüten küçüğe doğru listeleyin.

Bulunduğunuz dizinde yer alan dosya ve dizinleri konsoldan ilgili komut bütünü yardımıyla küçükten büyüğe doğru listeleyin.

Bulunduğunuz dizindeki gizli dosyalar da dahil olacak şekilde tüm içeriği listeleyin.

Bulunduğunuz dizinde yer alan dosya ve dizinleri konsoldan ilgili komut bütünü yardımıyla oluşturulma tarihlerine göre yeniden eskiye doğru listeleyin.

Bulunduğunuz dizinde yer alan dosya ve dizinleri konsoldan ilgili komut bütünü yardımıyla oluşturulma tarihlerine göre eskiden yeniye doğru listeleyin.

"yeni" isminde bir klasör oluşturun. Ve ls  komutu ile oluştuğunu teyit edin.

 "bir", "iki", "üç" adlarında 3 klasörü tek seferde oluşturun ve ls  komutu ile oluşup oluşmadıklarını teyit edin.

 Oluşturmuş olduğunuz klasörü ya da mevcut başka bir klasörü silin.

 Oluşturmuş olduğunuz  "bir", "iki", "üç" adlarında 3 klasörü tek seferde silin.

 "a", "b", "c","d" adlarında 4 klasörü tek seferde oluşturun ve 4 klasörü tek seferde kontrollü yani tek tek onay isteyecek şekilde silin.

Geri Bildirimde Bulunun

Sizlere daha verimli bir kaynak sunabilmemiz için, uygulamada veya dokümantasyonlarda yer alan tüm hata ve eksiklerimizi bize bildirebilirsiniz.