8 Şubat 2013 Cuma

Kabuk Programlama: Temel Linux Komutları

Temel Linux Komutları
  • pwd : Bulunulan dizini verir.
  • whoami : Mevcut oturum kullanıcısını verir.
  • who : Oturumu açan kullanıcıları verir.
  • pinky : Oturumu açan kullanıcıları verir.
  • last : Oturumu açan son kullanıcıya ait bilgileri verir.
  • lastlog : Tüm kullanıcıların (/etc/passwd altındakilerin) en son oturum açtığı zamanı listeler.
  • ifconfig : IP bilgisini verir.
  • service <ServisAdi> <Operasyon>: Servis başlatır/durdurur/durumunu belirtir.

Not: Aynı işlem /etc/init.d dizini altındaki dosyalarla da gerçekleştirilir.
  • uname -a : İşletim sistemi hakkında bilgi verir.

Not: İşletim sistemi hakkındaki ayrıntılı bilgi /proc/version dosyasından elde edilebilir.
  • cd <Dizin>: İstenilen dizine gidilir.
  • which <Komut>: Komutun bulunduğu dizinini verir.

Not: "man" komutu ile bir komut hakkında ayrıntılı kullanım bilgileri verilir.
  • ls : Mevcut dizindeki dosyaları listeler.
  • ls <Dizin> : Belirtilen dizindeki dosyaları listeler.
  • namei <Dizin> : Belirtilen dizindeki dosyaları üst dizinleri dahil olmak üzere listeler.

  • echo <İfade> : Ekrana (Output Device) belirtilen ifadeyi yazdırır.
  • `Komut` : Komut kabuk tarafından çalıştırılır.
  • basename <Dizin>: Dizinde belirtilen son klasörün adı belirtilir.
  • dirname <Dizin>: Dizinde belirtilen klasörün bulunduğu üst dizin belirtilir.


  • mkdir <Klasor>: Yeni bir dizin (klasör) oluşturur.
  • rmdir <Klasor>: Mevcut dizin (klasör) silinir.
  • touch <Dosya>: Yeni dosya oluşturur.
  • touch <Dosya> --date <Tarih>: Belirli tarihte oluşturulmuş gibi bir dosya oluşturur.


  • cat <Dosya>: Belirtilen dosyanın içeriği okunur.



  • more <Dosya>: Belirtilen dosyanın içeriği okunur.
  • strings <Dosya>: Dosyadaki okunabilir karakterleri yazdırır.

  • <İfade> < <Dosya>: Sağ taraftaki veriyi sol taraftaki komuta girdi olarak sunar.
  • <İfade> > <Dosya> : Sol tarafındaki ifadenin ürettiği çıktıyı sağ tarafındaki dosyaya yönlendirir veya sol tarafındaki veriyi sağ tarafındaki komuta girdi olarak sunar.
  • <İfade/Dosya> >> <Dosya> : Belirtilen dosyaya ilgili ifade/dosya eklenir.
  • vi <Dosya> : Belirtilen dosya vi editörü ile açılır.
  • file <Dosya> : Belirtilen dosyanın türü hakkında bilgi verir.
  • grep <İfade> : Belirtilen dosyada istenilen ifadeyi arar.

Not: "-E" parametresi ile düzenli ifadeler, -A3 ifadesi ile sonraki 3 satır, -B2 parametresi ile önceki ilk 2 satır, -v parametresi ile diğer satırlar,... ekrana yazdırılır.
Not: Düzenli ifadelerde "*" ne olursa olsun, "$" sonu bu şekilde olsun, "^" başı bu şekilde olsun, "[a-z]" belirtilen karakterler arasında olsun, "{1,3}" 1/2 veya 3 tane olsun, "+" 1 veya sonsuz olsun, "?" 0 veya 1 olsun ... demektir. 
  • <Komut1> | <Komut2> : Komut1'in çıktısını Komut2'ye yönlendirir
  • <Komut> 1> /dev/null : Standart çıktıyı /dev/null'a (kara deliğe) gönderir. Özellikle stderr’e yapılan yönlendirmelerin ekrana bastırılmaması için kullanılır.
  • <Komut> 2> /dev/null : Standart hatayı /dev/null'a (kara deliğe) gönderir.

Not:  En çok kullanılan dosya oluşturma teknikleri aşağıda sıralanmıştır:
  • df : Dosya sistemi raporlanır.
  • du -sh <Dosya> : Dosya boyutunu verir.
  • rm <Dosya> : Belirtilen dosyayı siler. "-f" parametresi ile dosya zorla (force) silinir, "-r" parametresi ile altdizinlerle birlikte (recursive) silme işlemi gerçekleştirilir, "-i" parametresi ile kullanıcıya silme işlemi onayı alınarak (interactive) işlem tamamlanır.
  • chmod <İzinler> <Dosya> : İstenilen izin (read/write/execute) verilir. Bir klasörün içerisine girilmesi için R ve X hakları bulunmalıdır.
  • chown <Kullanici> <Dosya> : Dosya sahipliği değiştirilir.

  • find <Dizin>  -name <İfade> : Belirtilen dizinde istenilen isimdeki dosyayı arar.

  • find <Dizin> -user <KullaniciAdi>: Belirtilen dizinde istenilen kullanıcı tarafından oluşturulan dosyayı arar. "mtime" parametresi ise dosyada değişiklik tarihi üzerinde filtre yapmak için kullanılır. "0" ve "-1" değerinde son 24 saat, "1" değerinde son 24 saat ve son 48 saat arasında, "+1" değerinde ise 48 saatten daha fazla süre önce değiştirilen dosyaları tespit etmek için kullanılır. 


Not: Arama yapılması istenen izinler için "perm", dosya türleri için "type", dosya boyutu için "size", belli bir dosyadan daha sonra oluşturulmuş dosyalar için "newer" parametreleri kullanılır.

  • cp <Dosya> <KopyaDosya> : Dosya kopyalanır.
  • mv <Dosya> <KopyalanacakDizin> : Dosya taşınır.
  • wc -c/-w/-l <Dosya> : Belirtilen dosyadaki harf, kelime, satır vs sayısını verir.
  • awk '{print $KolonId}' : Belirtilen kolonları listeler.
  • cut -d "Ayirac" -f<ElemanId>: Belirtilen ayıraca göre elemanları listeler.
  • head -<SatirAdedi> : Belirtilen dosyadaki ilk N tane satır sayısını verir.
  • tail -<SatirAdedi> : Belirtilen dosyadaki son N tane satır sayısını verir.
  • tr <İlkİfade> <İkinciİfade> : Belirtilen karakterler değiştirilir.
  • sort <Dosya> : Sıralamayı gerçekleştirir. "-nr" parametresi ile tersten (numeric reverse) sıralanır.
  • uniq <Dosya> : Farklı ifadeler listelenir. "-c" parametresi ile tekrar adetleri de listelenir.
  • diff <Dosya1> <Dosya2> : İki dosya arasındaki farkı belirtir.
  • tar -czvf <SıkışmışDosya> <Dosya> : Sıkıştırılmış dosya oluşturulur.
  • $RANDOM: Rastgele sayı üretir:
  • :? : Yapılan son işlemin sayısal sonucunu verir. "0" ise işlem başarılı olarak gerçekleştirilmiştir. Aksi sonuçta işlem gerçekleştirilirken hata alınmıştır.

  • ; : Komutları sıralı bir şekilde son komuta kadar çalıştırır.
  • && : Komutları sıralı bir şekilde hata oluşturan komuta kadar (":?" sonucu 0 olmadıkça) çalıştırır.

Not: Konfigürasyon işlemleri için sık sık "./connfigure && make" komutları kullanılır. Böyle konfigürasyonda bir hata olması durumunda işlem sonlandırılır.

  • ps -ef : Çalışan prosesleri listeler.

  • & : Bir prosesi arka planda çalıştırmaya yarar. Arka planda çalışabilen bu proseslere Deamon denir. fg komutu ile bir proses öne, bg komutu ile arkaya alınabilir.
  • nohup : Komut satırı kapansa da uygulamanın çalışmasına devam etmesi için kullanılır.

  • jobs -l : Çalışan görevleri listeler.
  • kill -9 <Proses> : Belirtilen prosesi (zorla) öldürür.
  • id : Bağlı olunan kullanıcı belirtilir.
  • adduser <KullaniciAdi> : Kullanıcı oluşturulur.

  • groups <KullaniciAdi>: Kullanıcının grubunu listeler.


  • su - <KullaniciAdi>: Belirtilen kullanıcıya geçiş yapılır. "-" konulursa çevresel değişkenler de hedef kullanıcının çevresel değişkenleri de alınır. "-" konulmazsa sadece haklar aktarılır.

  • su -s <Kabuk> -c <Komut> <KullaniciAdi>: Oturum açma yetkisi olmayan belli bir kullanıcı gibi istenilen komut çalıştırılır. Aşağıdaki ekran görüntüsünde, "sshd" servis kullanıcısının home dizinine, sshd kullanıcısı gibi bir dosya oluşturulmuştur.


Not: root haklarına sahip kullanıcıda "#", normal bir kullanıcıda ise "$" ile imleç başlamaktadır.
  • dpkg -l : Kurulu paketleri listeler.
  • apt-cache search <PaketAdi> : Yüklenmek istenen paket aranır.
  • apt-get install <PaketAdi>: Paket yüklenir.
  • Degişken_Adi=Degisken
  • md5sum <Veri>: Veri özeti alınır.
  • fdisk : Disk bölümleme işlemleri gerçekleştirilir.
  • host <URL>: URL'in IP adresini verir.
  • host -l <DomainAdresi> <DNSSunucusu>: DNS üzerinden alan transferi (zone tranfer) gerçekleştirir.

Not: Zone transfer için dnsenum ve dnsrecon araçları da kullanılabilir. Kullanımları:
dnsenum <DomainAdı>
dnsrecon -d <DomainAdı> -t axfr
  • wget <URL>: URL'deki sayfa indirilir ve kaydedilir (Aşağıdaki örnek için "index.html" olarak kaydedilmiştir.)
  • gcc -o <DerlenmisUygulama> <DerlenecekKod>: Bir kodu derleyerek binary formata çevirir.


ÖRNEKLER

  • 3. satırdaki kullanıcının bilgilerinin harf sayısı:
  • En çok çalıştırılan 10 komut:
DİZİN YAPISI
  • / : En üst dizin
  • /bin : Açılış sırasında kullanılan programlar
  • /boot : Sistem yükleyicisinin kullandığı dosyalar 
  • /dev : Cihaz dosyaları 
  • /etc : Uygulamaların ve servislerin yapılandırma dosyaları 
  • /home : Kullanıcıların dizinlerinin bulunduğu dizin 
  • /lib : “/bin” dizinindeki dosyaların kullandığı kütüphane dosyaları
  • /mnt : Geçici bağlanan dosya sistemlerinin bulunduğu dizin 
  • /media : Geçici bağlanan cdrom, usb vb. bulunduğu dizin 
  • /opt : Ek yazılımların kurulduğu dizin yapısı 
  • /proc : Çerkirdek hakkında bilgiler tutan dosyaları içeren sanal bir dosya sistemi 
  • /root : “root” kullanıcısının ev dizini 
  • /sbin : Sistem yöneticisinin açılışta kullanabileceği programlar
  • /tmp : Geçici dosyaların tutulduğu dizin

KRİTİK DOSYALAR
  • /etc/resolv.conf : Sistem DNS sunucuları
  • /etc/issue : Dağıtım sürümü 
  • /etc/passwd : Yerel kullanıcılar 
  • /etc/shadow : Kullanıcı parola özetleri 
  • /etc/sudoers : Sudo kuralları 
  • /home/xxx/.bash_history : Kullanıcı komut tarihçesi 
  • /home/*/.ssh/id* : SSH anahtarları 
  • /home/*/.vnc : VNC uzaktan erişim bilgileri
  • /var/log/messages : Çoğu kayıt bilgisinin bulunduğu dosya 
  • /var/log/maillog : Mesaj sistemiyle ilgili kayıtlar 
  • /var/log/lastlog : Sisteme giren ve çıkan kullanıcıların kaydı – salt metin olmadığından “last” komutuyla içeriği görülebilir.


Kaynak:
http://www.galkan.net/p/bash-scripting-ile-pratik-programlama.html
http://www.pixelbeat.org/cmdline.html
http://www.hackings.org/2012/07/en-sk-kullanlan-linux-konsol-komutlar.html

Hiç yorum yok:

Yorum Gönder