“Bir zamanlar kızların da iğrenç olduğunu düşünmüştünüz”
by Paco Underhill - Neden Satın Alırız? S. 216

Notlarım: Komut Satırı En İyi Arkadaşınız

Tarih: Mart 10th, 2013 | Yazar: | Kategoriler: Komut Satırı | Etiketler: , , , | 1 Yorum »

Bu yazımda, buradaki yazıyı The Command Line is Your Best Friend okurken çıkardığım notları paylaşmak istiyorum. (Özet severlerin hoşuna gideceğini düşünerek 🙂 )

Kendim için not aldığım için, çok fazla detayları katmadım. Ama birilerine faydası dokunur diyerek paylaşıyorum.

Not 1: Yazıda geçen komut satırı *nix(Unix/Linux) ortamındaki komut satırıdır. Bu yüzden Windows ortamında bu komutları denemeniz için Cygwin uygulamasını indirebilirsiniz. Bu uygulama ile birçok BASH komutunu Windows işletim sistemi üzerinde çalıştırmanız mümkün.

Not 2: Bu yazıdakilere ek olarak, sizin de ekleyebileceğiniz kullanışlı komutlar veya püf noktalar varsa, yorum olarak paylaşırsanız sevinirim. Şimdiden teşekkürler.

Unix sistemlerde her şey bir dosyadır(file). Klavye, fare, ekran ve diğer her şey birer dosyadır.

Dosya türü ayraçları:

  • 0 standart girdi(stdin)
  • 1 standart çıktı(stdout)
  • 2 standart hata(stderr)

Genel:

  • Komut girilen satırın başında $ varsa kullanıcı root değil, # varsa ise kullanıcı root.
  • ~ işareti o anki kullanıcıya ait home dizinini gösterir. Örnek; dizine gitmek için cd ~ kullanılır veya o dizindeki bir dosyayı açmak için: cd ~/dosyaismi
  • kullaniciadi@computerhostname @’den önce kullanıcı adı sonrası ise bilgisayarın host ismi
  • Herhangi bir değişkeni ulaşmak için $degiskenadı şeklinde kullanıyoruz.
  • Bir değişkenin içerdiği değeri ekrana yazmak için echo $değişkenadi kullanıyoruz. Örnek: echo $PS1
  • Dosya oluşturmak için touch dosyasına veya touch dizin/dosyaisimi de olabilir.
  • mcedit dosyaadi şeklinde dosyaları düzenleyebilirsin. Programlama dili desteği olduğu için code renklendirmesi var. Editörden çıkmak için iki kez üst üste ESC basılarak çıkılıyor veya F10 ile. Aşağıda gözüken numaraların fonksiyon tuşlarındaki karşılıkları ile kullanabilirsin.
  • nokta(.) işareti şu anki konumu ifade eder. iki nokta(..) işareti bir üst dizinin konumunu ifade eder. Örnek; şu anki konumdan alt bir dizine geçmek istiyorsak: cd ./altdizi
  • cat dosyaismi komutu ile girilen dosya isminin içeriği okunabilir.
  • grep “aranacak kelime” dizin/dosyaismi ile belirtilen dosyanın içeriği içinde arama yapılabilir. Ek olarak –color eklenerek gelen sonuçta eşleşen bölge renklendirilebilir. Örnek; grep “kelime” deneme.txt –color
  • pipe: bu komut “|” işareti ile kullanılır. | işaretinden önceki komutun ürettiği çıktıyı | işaretinden sonraki komuta aktarır. Örnek; cat ./SecondDir/ThirdFile | grep “Another” veya ls | grep “deneme” –color Bu örnekte cat ile içeriğini okuduğumuz dosyanın çıkıtısı üzerinden, grep ile “deneme” kelimesini arıyoruz.
  • sed: bu komut ile çıktı veya dosya içinde regular expression kullanarak arama yapılıyor. Örnek; cat ./SecondDir/ThirdFile | grep “Another” | sed -e “s/AnotherFile/MyFile/”
  • [geçici]kendi komutunu tanımlama: alias komutismi=”çalıştırmak istediğim komutlar” Örnek: alias listele=”ls” Ancak bu yolla oluşturulan komutlar oturum süresince korunur. Oturumdan çıkıldığında(logout) bu komutlar silinir. Yani geçicidir.
  • [kalıcı]kendi komutunu tanımlama: .bashrc veya .bashprofile dosyaların içerisine alias ile kendi komutumuzu kalıcı olarak tanımlayabiliyoruz. Bu iki dosya genelde kullanıcıya ait home klasöründe(~) bulunuyormuş.
  • .dosyaismi gibi başında nokta(.) ile başlayan isimlendirmeler gizli dosyaları belirtmek için kullanılır.
  • traceroute: bu komut ile yazacağımız hedefe giden yolda uğradığımız noktaları görebiliyoruz. Örnek; traceroute 8.8.8.8 veya traceroute www.google.com
  • ifconfig: komutu ile ağ yapılandırmasını(network configuration) görebiliyoruz.
  • netstat: komutu ile açık olan bağlantıları listeliyoruz. Örnek: netstat veya netstat -an

Yönlendirme(Redirection)

  • İçeri yönlendirme <: bir komuta bir dosya yönlendirmek istiyorsak eğer, komut < dizin/dosyaismi şeklinde gönderebiliriz
  • Dışarı yönlendirme >: bir komutun çıktısını bir dosyaya yazdırmak istiyorsak eğer, komut > dizin/dosyaismi şeklinde yazdırabiliriz. Örnek: bir klasörün içerisindeki dosya ve klasörleri bir dosyaya yazdırmak istiyorsak; ls > dosyaismi
Sadece hataları yönlendirmek istiyorsak eğer; ls 2> dosyaismi şeklinde veya hataları dışarıda bırakıp standard çıktıyı yönlendirmek istiyorsak eğer ls 2> dosyaismi olarak kullabiliriz. 2 yönlendirildiyse 1 ekranda yazar, 2 dosyaya gider. Yani kalan türler ekrana basılır. Bknz: Dosya türü ayraçları.
Türler arası da yönlendirme yapmak mümkün. Örneğin: stderr’i stdout’a doğru yönlendirebiliriz. Bu şekilde bir kullanımda 1(stdout) aynı zamand 2(stderr)’i de temsil eder. Örnek; find . -name *File 1>./SecondDir/ThirdFile 2>&1
Görmek istemediğimiz çıktıları /dev/null ‘a yönlendirebiliriz. /dev/null ‘a yönlendirilen herhangi bir şey yok olur, kayıt altına alınmaz. Örnek: wget -r -P /dev/null http://www.domain.com

Arama(Find)

  • find aranacak klasörün yolu( nokta(.) ile şu anki klasörü iki nokta (..) ile bir üst klasörü belirtebiliriz) -name aranacak dosyanın tam adi deneme.txt gibi Örnek; find . -name deneme.txt veya find klasor -name deneme.txt
  • find ile arama yaparken bilmediğimiz karakterler için ? ve * işaretlerini kullanabiliriz. ? bilinmeyen bir karakteri temsil ederken * karakteri birden fazla karakteri temsil eder. Örneğin; find . -name deneme.* veya find -name deneme.??? Üç kez soru işareti kullandık nedeni txt’nin 3 karakterli olması. Bu özel karakterler sadece dosya uzantısında değil dosya isminin kendisinde de kullanılabilir.

İzinler(Permissions)

  • Nesnenin sahibi nesnenin izinlerini her durumda değiştirebilir, ancak nesnenin izinleri yoksa chown ile sahibini değiştiremez. Bu durumda izinleri ayarlayıp daha sonra sahip değiştirilebilir.
  • Her bir kullanıcı en az bir gruba dahil olur.
  • Uygulamalar kendi kullanımları için özel kullanıcı oluştururlar. Erişimi sınırlı dosya ve klasörlere bu kullanıcı ile erişirler.
  • Tüm kullanıcılar /etc/passwd konumundaki dosyada yer alır.
  • Tüm gruplar /etc/group konumundaki dosyada yer alır.
  • drwxr-xr-x 5 csaba csaba 4096 Feb 24 00:44 Kırmızı: kullanıcı, Mavi: grubu temsil eder. Bunlar dosyanın sahipleridir(Owner)
  • Dosya/klasör sahibini değiştirmek için: chown user:group hedef Örnek: chown Can:root deneme.txt Sadece iznimiz olan dosya/klasör’lerde değişiklik yapabiliriz. Grup veya kullanıcı bazında. root gibi yönetici konumundaki kullanıcılar tüm dosya ve klasörlerde değişiklik yapabilir.
  • drwxr-xr-x 5 csaba csaba 4096 Feb 24 00:44 Kullanıcı izinleri 3 kategoride yer alır. Bunlar;
    • Kullanıcı(User): Nesnenin sahibi olan kullanıcının izinleri
    • Grup(Group): Nesnenin sahibi olan grubun izinleri.
    • Diğerleri(Others): Diğer kullanıcıların izinleri.
  • drwxr-xr-x 5 csaba csaba 4096 Feb 24 00:44 Burada yer alan r, w, x’in anlamları
  • okuma izni
  • yazma izni
  • çalıştırma(execute) izni
  • ise directory’i temsil ediyor olabilir.(Benim fikrim)
  • – ise herhangi bir izin olmadığını temsil ediyor.         
  • chmod +rwx ./ThirdDir/ buradaki +‘nın anlamı izin ekledir. Bunun yerine  kullanılırsa izin çıkarılır.
  • İzinlerin nümerik karşılıkları:
    • rwx: Each bit is set to 1: 111. Which in decimal is 7.
    • rw-: Is represented as 110. Which in decimal is 6.
    • r-x: Is represented as 101. Which in decimal is 5.
    • r--: Is represented as 100. Which in decimal is 4.
    • -wx: Is represented as 011. Which in decimal is 3.
    • -w-: Is represented as 010. Which in decimal is 2.
    • --x: Is represented as 001. Which in decimal is 1.
    • ---: Is represented as 000. Which in decimal is 0.

Bir Yorum Var

  1. 1 Adana Havaalimanı Oto Kiralama said at 12:47 on Haziran 11th, 2013:

    Teşekkürler… 🙂


Yorum Yap