Temel komutlar öncesinde bilinmesi gereken bir takım hususlar aşağıdaki gibidir:
- “~” ifadesi komutu çalıştıran hesabın ev (home) dizinini belirtir.
- “.” ifadesi mevcut dizini belirtir.
- “..” ifadesi bir üst dizini belirtir.
- Dosya adındaki “?” ifadesi tek bir karakteri belirtir. Örneğin, “a?i” ifadesi “aai”, “abi”,… olabilir.
- Dosya adındaki “*” ifadesi birden çok karakteri belirtir. Örneğin, “a*i” ifadesi “ai”, “aai”, “aaai”, “as2k9fi”… olabilir.
- Bir komut çalıştırılması ile ilgili yardım almak için komut adından sonra “-h”, “–h”, “-help”, “–help” ifadeleri kullanılabilir.
Temel Komutlar
- which <Komut> : Belirtilen komutun bulunduğu dizinini verir.
- whatis <Komut> : Belirtilen komut hakkında kısa bilgi verir.
- man <Komut> : Belirtilen komut hakkında ayrıntılı kullanım bilgilerini verir.
- locate <Dosya> : Belirtilen dosyanın bulunduğu dizini belirtir.
- echo <İfade>: Ekrana (Output Device) belirtilen ifadeyi yazdırır. Bir komutun çıktısı ekrana yazılmak isteniyorsa (komutun, kabuk tarafından çalıştırılması amaçlanıyorsa), bu komut
ifadeleri arasına yazılır.
- figlet <İfade>: Ekrana (Output Device) belirtilen ifadeyi formatlı bir şekilde yazdırır.
- setxkbmap <DilKodu>: Klavyenin dilini günceller.
Dizin Komutları
- pwd : Mevcut durumda bulunulan dizini verir.
- cd <Dizin>: Belirtilen dizine gidilir.
- ls <Dizin> : Belirtilen dizindeki dosyaları listeler. Herhangi bir dizin belirtilmemiş ise, mevcut durumda bulunulan dizindeki dosyaları listeler. “-la” parametresi ile gizli dosyalar da dahil olmak üzere, belirtilen dizindeki dosyalar hakkında ayrıntılı bilgileri listeler. “-R” parametresi ile alt dizinlerin içeriği de listelenir.
- mount <KaynakDizin> <HedefDizin> : Belirtilen kaynağı, belirtilen hedefe mount eder.
- umount <Dizin> : Mount edilmiş olan dizin, umount edilir.
- mkdir <Klasor>: Belirtilen isimde yeni bir klasör (dizin) oluşturur. Birden fazla klasör adı tanımlanarak, çoklu klasör oluşturulabilir. “-p” parametresi ile var olmayan dizinde, belirtilen dizin de dahil olmak üzere bir klasör oluşturulur. Geçici bir dosya oluşturmak için “/tmp/$USER.XXXXXX” ifadesi kullanılabilir.
- rmdir <Klasor>: Mevcut dizin (klasör) silinir.
- basename <Dizin> : Dizinde belirtilen son klasörün adı belirtilir.
- dirname <Dizin> : Dizinde belirtilen klasörün bulunduğu üst dizin belirtilir.
Dosya Komutları
- touch <Dosya> : Belirtilen isimde yeni bir dosya oluşturur. Birden fazla dosya adı tanımlanarak, çoklu dosya oluşturulabilir. “–date” seçeneği ile belirtilen tarihte hazırlanmış gibi, dosya oluşturulur.
- 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.
- cat <Dosya> : Belirtilen dosyanın içeriği okunur.
- more <Dosya> : Belirtilen dosyanın içeriği okunur. Dosya boyutu uzunsa, ekrana sığacak kadarı ekrana yazdırılır ve kullanıcıdan yazının devamı okunması için talepte bulunması beklenir.
- vi <Dosya> : Belirtilen dosyanın içeriği okunur, yazılır.
- nl <Dosya> : Belirtilen dosyanın içeriği satır değeri ile birlikte okunur.
- strings <Dosya>: Dosyadaki okunabilir karakterleri yazdırır.
- file <Dosya> : Belirtilen dosyanın türü hakkında bilgi verir.
- grep <İfade> : Belirtilen dosyada istenilen ifadeyi arar. “-E” parametresi ile düzenli ifadeler, “-Eo” ile eşleşen düzenli ifadeler, -A3 ifadesi ile sonraki 3 satır, -B2 parametresi ile önceki ilk 2 satır, -v ile eşleşmeyen durumlar,… ekrana yazdırılırken; “-q” ile ekrana çıktı yazılmaz. Düzenli ifadelerde “*” 0 ve sonsuz olsun, “+” 1 veya sonsuz olsun, “.” herhangi bir karakter olsun, “$” sonu bu şekilde olsun, “^” başı bu şekilde olsun, “[a-z0-9A-Z]” veya [abc] ile belirtilen karakterler arasında olsun, “{1,3}” 1/2 veya 3 tane olsun, {5} 5 tane olsun, “-R” ile özyinelemeli arama, “|” veya olsun, “?” 0 veya 1 olsun … demektir.
1 2 3 4 5 6 7 8 9 10 |
echo "aabbbcccd" | grep -Eo "^a*c$" echo "aabbbcccd" | grep -Eo "^a.*c$" echo "aabbbcccd" | grep -Eo "^a.*c$" echo "aabbbccc" | grep -Eo "^a.*c$" echo "aabbbccc" | grep -Eo "^a.*" echo "aabbbccc" | grep -Eo "^a+b+" echo "https://turkiyem.gov.tr" | grep -Eo "^(http(s)?|ftp(s)?)://(www)?|(mail)?" echo "https://www2.turkiyem.gov.tr" | grep -Eo "^(http(s)?|ftp(s)?)://(www)?|(mail)?" echo "httpssss://turkiyem.gov.tr" | grep -Eo "^http(s)+://" echo "deneme.hesabi@gmail.com.tr" | grep -Eo "^[A-Za-z0-9\.]+@[A-Za-z0-9\.]+\.(com|net|org)(\.(tr))?" |
IP için dizenli ifade örneği:
echo “10.24.6.0” | grep -E “^(([1-9]|[1-9][0-9]|1[0-9][0-9]|2([0-4][0-9]|5[0-5]))\.){3}([1-9]?[0-9]|1[0-9][0-9]|2([0-4][0-9]|5[0-5]))$”
- exec <Komut>: Komut çıktısının sonucu üzerinde başka bir komut çalıştırır.
- find <Dizin> <Seçenekler>: Belirtilen dizinde belirtilen seçeneklerle dosya/klasör aranır. “-name” parametresi ile dosya adına göre, “-user” parametresi ile kullanıcı adına göre, “-type” parametresi ile dosya türüne göre (dizin, dosya),”-mtime” parametresi ile dosya değişiklik tarihine göre, “-perm” parametresi ile dosya iznine göre, “-size” parametresi ile dosya boyutuna göre… filtreleme yapılarak dosya/klasör aranır. “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. Ayrıca, belli bir dosyadan daha sonra oluşturulmuş dosyalar için “newer” parametresi kullanılır.
İpucu: En çok kullanılan dosya oluşturma teknikleri aşağıda sıralanmıştır:
- namei <Dizin> : Belirtilen dizindeki dosyaları üst dizinleri dahil olmak üzere listeler.
- cp <Dosya> <KopyaDosya> : Dosya kopyalanır.
- mv <Dosya> <KopyalanacakDizin> : Dosya taşınır.
- wc <Seçenekler> <Dosya> : Belirtilen dosya için, “-c” parametresi için harf, “-w” parametresi için kelime, “-l” parametresi için satır sayısını verir.
- awk <Seçenekler> <Dosya> : Belirtilen dosyada “-F” parametresinde belirtilen ayıraca göre, kolonları listeler ve “print” ile belirtilen kolonları ekrana yazdırır. Ayıracı ekrana bastırmaz.
- sed <Seçenekler> < <Dosya> : Dosya içerisindeki ifadeyi başka bir ifade ile değiştirilir. “s” karakteri ile ayıraç belirtilir. Bu ayıraç genellikle “/” olarak belirtilirken “_”, “;” gibi karakterler (“s_İfade1_İfade2_g” gibi) de olabilir. İkinci ayıraçtan sonraki ID değeri değiştirilmesi istenen ifadenin görüldüğü ilk iterasyonda değişimin yapılacağını belirtir. Örneğin; ‘s/Ali/Ahmet/4’ ifadesinde sadece 4. “Ali” kelimesi “Ahmet” ile değişecektir. Eğer ID değerinin boş olması 1, “g” olması ise tamamı anlamına gelir. İkinci ayıraçtan sonraki kısımdaki “i” ile büyük/küçük harf duyarsızlık sağlanır; “p” ile ekrana yazdırılır; “w” ile değişimin gerçekleştirildiği satırlar için dosyaya yazdırma işlemi gerçekleştirilir.
1 2 3 4 5 6 7 8 |
echo "K;L;M;N;O;P;R;S;T" | sed 's/;/\t/g' echo "Ali arkana BaK bak Ali bAk" | sed -e 's/a/A/' -e 's/b/B/2' echo "Siber <b> Güvenlik </b> Portaline <i>hoşgeldiniz</i>." | sed -e 's/<[^>]*>//g' sed -n 's/HoMe/Ev/gipw passwd_farkiOlanlar' /etc/passwd ls cat passwd_farkiOlanlar sed -n 's/home/EV/gp' /etc/passwd # DOS'tan Unix'e (\r veya \n kaldırma): sed 's/.$//' filename |

- cut <Seçenekler> <Dosya> : Belirtilen dosyada “-d” parametresinde belirtilen ayıraca göre, kolonları listeler ve “-f” ile belirtilen kolonları ekrana yazdırır. Ayıracı da ekrana bastırır.
- head -<SatirAdedi> <Dosya> : Belirtilen dosyadaki ilk N tane satır sayısını verir.
- tail -<SatirAdedi> <Dosya> : Belirtilen dosyadaki son N tane satır sayısını verir.
- tr <İlkİfade> <İkinciİfade> : Belirtilen karakterler değiştirilir.
- sort <Dosya> : Dosya içerisindeki veriler sıralanır. “-nr” parametresi ile tersten (numeric reverse) sıralanır.
- uniq <Dosya> : Dosya içerisindeki veriler tekil olarak listelenir. Bu komuta sıralı dosya verilmesi gerekmektedir. “-c” parametresi ile tekrar adetleri de listelenir.
- diff <Dosya1> <Dosya2> : İki dosya arasındaki farkı belirtir
- tar <Seçenekler> <SıkışmışDosya> <Dosya> : Belirtilen seçeneklere göre sıkıştırılmış dosya oluşturur veya sıkıştırılmış dosyayı dışarı çıkarır.
- gzip <TarDosyasi> : Tar formatlı dosyayı sıkıştırır.
- md5sum <Dosya> : Belirtilen dosyanın/ifadenin MD5 özetini verir.
- sha1sum <Dosya> : Belirtilen dosyanın/ifadenin SHA1 özetini verir.
- gcc <Seçenekler> <BetikDosyasi> : Betik dosyasi derlenerek “-o” parametresi ile belirtilen isimde çalıştırılabilir dosya oluşturulur.
- stat <Dosya>: Dosyanın (sistem dosyaları dahil) durumunu belirtir.
Sahiplik Komutları
- 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. Bir dosyanın çalıştırılabilmesi için X hakkı gereklidir.
Not: “750” gibi sayısal ifadeler kullanmak yerine “chmod u+rwx,g=rx,o-x YeniDosya.c” gibi ifadeler de kullanılabilir. Ayrıntılı bilgi için bakınız.
- chown <Kullanici> <Dosya> : Dosyanın sahibi olan kullanıcı değiştirilir.
- chgrp <Grup> <Dosya> : Dosyanın sahibi olan grup değiştirilir.
Yönlendirme Komutları:
- <İ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 veya Dosya> >> <Dosya> : Belirtilen dosyaya ilgili ifade/dosya eklenir.
- <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.
Oturum Bilgileri
- id : Mevcut oturumda komutu çalıştıran kullanıcının adını ve üye olduğu grupları verir.
- whoami : Mevcut oturumda komutu çalıştıran kullanıcının adını verir.
- su – <KullaniciAdi>: Belirtilen kullanıcıya geçiş yapılır (Substitute User).
- sudo <Komut>: “/etc/sudoers” dosyasındaki ayara göre komut çalıştırılır. Genellikle “root” gibi komut çalıştırmak için kullanılır.
- logname : Mevcut oturumda komutu çalıştıran kullanıcının adını verir.
- who : Mevcut anda, Linux bilgisayara uzaktan veya yerel olarak oturum açmış olan kullanıcı listesini verir.
- pinky : Mevcut anda, Linux bilgisayara uzaktan veya yerel olarak oturum açmış olan kullanıcı bilgilerini (oturum kabuğu, oturum açtığı zaman,… ) verir.
- last : Oturum açılmış olan tüm oturumlar ile ilgili bilgileri verir.
- lastlog : Tüm kullanıcıların (/etc/passwd altındakilerin) en son oturum açtığı zamanı listeler.
- history : Oturumu bulunan kullanıcının çalıştırdığı komutları listeler. “-c” parametresi ile eski komutlar silinir.
Paket Güncelleme Komutları
- dpkg : Yüklü paketleri listeler. “-l” ile tüm yüklü paketleri listeleme, “-L <PaketAdi>” ile paket ile yüklenen dosyaları listeleme, “-p <PaketAdi>” ile paketi detaylandırma, “-S <PaketAdi>” ile paketi arama, “-i <PaketAdi>” ile paketi kurma, “-r <PaketAdi>” ile paketi silme, “-P <PaketAdi>” ile pakete ait programı ve konfigürasyonları silme,… gibi işlemler gerçekleştirilebilir.
- apt-get dist-upgrade : Paketler güncellenir, bağımlılıklar güncellenir/eklenir/kaldırılır.
- apt-get update : /etc/apt/sources.list tarafından gösterilen depolardaki uygulama listesine göre, paketlerin listesini (paketlerin kendisini değil) günceller. Herhangi bir güncelleme işleminden önce bu komut çalıştırılır ve böylece uygulamanın son güncel hali/versiyonu/bağımlılıkları öğrenilir.
- apt-get upgrade : Yüklü/Kurulu olan paketler güncellenir.
- apt-cache search <PaketAdi> : Yüklenmek istenen paket internette aranır.
- apt-get install <PaketAdi> : “/etc/apt/sources.lst” dosyasındaki depolardan belirtilen paket yüklenir. “apt-get remove <PaketAdi>” komutu ile belirtilen paket kaldırılır.
Ağ İşleme Komutları
- ifconfig : IP bilgisini verir.
- netstat <Seçenekler> : Mevcut sistemin ağ bağlantılarını listeler.
- arp : Bilgisayarın ARP tablosunu listeler.
- ping <IP> : Belirtilen adrese ping atılır.
- host <IP> : Belirtilen adresin DNS kayıtlarını listeler.
- wget <URL> : Belirtilen adrese ait HTML sayfası indirilir.
Servis İşleme Komutları
- service <ServisAdi> <Operasyon>: Servis başlatılır/durdurulur/durumu belirtilir.
- Init betikleri: /etc/init.d dizini altındaki betiklerle servis başlatılır/durdurulur/durumu belirtilir.
Proses İşleme Komutları
- :? : 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 “./configure && make” komutları kullanılır. Böyle konfigürasyonda bir hata olması durumunda işlem sonlandırılır.
- & : Bir prosesi arka planda çalıştırmaya yarar. Arka planda çalışabilen bu proseslere Deamon denir.
- jobs : Çalışan görevleri listeler.
- fg : Arka planda çalışan bir proses ön plana alınır.
- time <Komut> : Belirtilen komutun çalışma süresini ekrana yazar.
- nohup : Komut satırı kapansa da uygulamanın çalışmasına devam etmesi için kullanılır.
- kill <Proses> : Belirtilen prosesi öldürür. “-9” parametresi ile proses öldürülmeye zorlanır.
Kullanıcı ve Grup Komutları
- adduser <Kullanici> <Seçenekler> : Kullanıcı oluşturulur.
- groups <Kullanici> : Kullanıcının grubunu listeler.
- passwd <Kullanici> : Belirtilen kullanıcının parolası değiştirilir.
Sistem Yönetimi Komutları
- hostname : Bilgisayarın adını verir veya bilgisayarın adı güncellenir.
- uname : İşletim sistemi hakkında bilgi verir.
- Version dosyası: İşletim sistemi hakkındaki ayrıntılı bilgi /proc/version dosyasından elde edilebilir.
- Filesystems dosyası: İşletim sisteminin dosya sistemi hakkında ayrıntılı bilgi /proc/filesystems dosyasından elde edilebilir.
- fdisk : Disk bölümleme işlemleri gerçekleştirilir.
- free : Sistem tarafından kullanılan ve boşta olan bellek miktarını listeler.
- df : Dosya sistemi raporlanır.
- du -sh <Dosya> : Dosyanın bölümlenme boyutunu verir.
- ps -ef : Çalışan prosesleri listeler.
- top : Çalışan proseslerin bellekte kapladığı alan listelenir
- date : Sistem tarihini ekrana yazar. “+%c” seçeneği ile tarih gösterim formatını değiştirir. Ayrıca belirtilen tarihe göre sistem tarihini günceller.
- uptime : Sistemi çalışma süresini belirtir.
- lspci : Sürücüleri listeler.
İpuçları
- Dosya üzerinde arama, belli satırda işlem yapmak için önce tüm dosyanın açılması performansı azaltır. Örneğin; “cat” komutunun çıktısını “head” komutuna vermek yerine, “head” komutundan sonra dosya adını vermek performansı arttırır.
DİZİN YAPISI
/ : En üst dizin, kök (root) dizindir.
/bin : Açılış sırasında kullanılan programlar ve işletim sistemi yüklendikten sonra (standart kullanıcılar tarafından) kullanılan bir çok program (binary) bu dizinde bulunur.
/boot : Sistem yükleyicisinin kullandığı dosyaları içerir.
/dev : Cihaz dosyaları, donanımlar bu dizindedir.
/etc : Uygulamaların ve servislerin (SSH, Apache) yapılandırma dosyalarını içerir.
/home : Kullanıcı dizinlerinin bulunduğu dizindir.
/lib : “/bin” ve “/sbin” dizinindeki dosyaların kullandığı kütüphane dosyalarını ve bazı kernel modüllerini içerir.
/mnt : Geçici bağlanan dosya sistemlerinin ve donanım aygıtlanırının bulunduğu dizindir.
/media : Geçici bağlanan cdrom, usb vb. bulunduğu dizindir.
/opt : Ek yazılımların kurulduğu dizin yapısı
/proc : Çerkirdek hakkında bilgiler tutan dosyaları (prosesler gibi) içeren ve sistem durumunu kontrol amacıyla kullanılan sanal bir dosya sistemidir. Bellek / RAM bilgisi (/proc/meminfo), CPU bilgisi (/proc/cpuinfo) bu dizin altındaki dosyalardadır.
/root : “root” kullanıcısının ev dizinidir.
/sbin : Sistem yöneticisinin (“root”) açılışta ve işletim sistemi yüklendikten sonra kullanabileceği programları içerir.
/tmp : Geçici dosyaların tutulduğu dizindir. Siztem yeniden başladığında içeriği silinir.
/usr : Paylaşılabilir (Kullanıcılara ait) dosyaları ve programları içerir.
/var : Log, mail gibi değişken sistem bilgilerini içerir.
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.
Kaynaklar:
http://www.galkan.net/p/bash-scripting-ile-pratik-programlama.html
https://www.sibertalimhane.com/mark/linux-egitimi/
https://www.youtube.com/watch?v=s1rNjzUo6IQ
https://github.com/xapax/security/blob/master/basics_of_linux.md
http://www.pixelbeat.org/cmdline.html
http://www.hackings.org/2012/07/en-sk-kullanlan-linux-konsol-komutlar.html
https://www.syslogs.org/linux-sistem-yoneticisi-egitim-dokumanlari/
https://geekviews.tech/kali-linux-commands-complete-list/
[…] http://www.siberportal.org/blue-team/securing-linux-operating-system/basic-linux-commands/ […]