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.