Linux temelleri
Terminal, dosya sistemi, dosya işlemleri, yönlendirme ve borular.
Seviye 101 · 18 ders · 21 pratik lab
Dersler
Başlangıç
- Linux nedir, güvenlik ekipleri neden onunla çalışır: Telefonda, sunucuda ve bulutta çalışan Linux nedir, güvenlik ekipleri neden onu seçer? Sıfırdan öğrenirsin.
- Terminal ve kabuk: ilk komutların: Bilgisayarla yazarak konuşmak: ekrandaki satır ne bekliyor, ne cevap veriyor? İlk komutlarını yazarsın.
- Yardım almak: man, info, --help: Bir komutu bilmiyorsan kime soracaksın? Sistemin kendi kılavuzunu (man) ve --help'i kullanmayı öğrenirsin.
- Kısa görev: hiç bilmediğin bir komutu yalnızca kılavuzla çöz
Dosya sistemi
- Dizin ağacı ve gezinmek (mutlak ve göreli yol): Dosyalar ağaç gibi dizilir. Bu ağaçta nerede olduğunu görür, istediğin klasöre gitmeyi öğrenirsin.
- Dosyaları tanımak: ls, gizli dosyalar, türler: Klasörde neler var? Gizli dosyaları, dosya türlerini ve boyutlarını görmeyi öğrenirsin.
- Oluşturmak, kopyalamak, taşımak, silmek ve joker karakterler: Dosya ve klasör oluşturmak, kopyalamak, taşımak, silmek; * ve ? gibi joker karakterlerle birçok dosyayı tek komutta seçmek.
- Bağlantılar ve dosya aramak (ln, find, which): Bir dosyaya ikinci bir kısayol vermek ve diskte kaybolan bir dosyayı find ile bulmak.
- İçeriği okumak: cat, less, head, tail -f: Uzun bir dosyayı sayfa sayfa okumak, başını ve sonunu görmek, büyüyen bir günlüğü (log) canlı izlemek.
- Kısa görev: dağınık proje klasörünü düzenle ve kayıp dosyayı bul
Komutları birleştirmek
- Yönlendirme, stdout ile stderr ve borular: Bir komutun çıktısını dosyaya yazmak ya da sonraki komuta aktarmak (boru); normal çıktıyla hata mesajı arasındaki fark.
- Süzmek ve saymak: grep, sort, uniq, wc, cut: grep ile büyük bir metinden istediğin satırları süzmeyi, sıralamayı ve tekrarları saymayı öğrenirsin; günlük (log) analizinin temeli budur.
- Çıkış durumu ve zincirleme komutlar (&&, ||, ;): Bir komut başarılı oldu mu, nasıl anlarsın? Komutları "öncekisi başarılıysa devam et" diye nasıl zincirlersin?
- Değişkenler, PATH ve .bashrc: Kabuğun hatırladığı değerler, komutların nerede aranacağı (PATH) ve ayarlarının kalıcı olması (.bashrc).
- Takma adlar, komut ikamesi ve geçmiş: Uzun komutlara kısa ad vermek, bir komutun çıktısını başka komutta kullanmak ve eski komutlarına geri dönmek.
- Dosya düzenlemek: nano ve vim'e ilk adım: Terminalde bir ayar dosyasını açıp düzenlemek: kolay olan nano ve her sunucuda bulunan vim'e ilk adım.
- Kısa görev: tek satırlık komutla günlük özet çıkar
Kapanış
- Bitirme görevi: bir olay klasörünü incele ve şüpheli IP'yi bul: Gerçek bir olay gibi: bir şirketin günlük (log) klasörünü incele, şüpheli IP adresini bul ve raporla.
Pratik lablar
- Bilinmeyen seçeneği kılavuzda bul: Bir betikte geçen seçeneğin ne işe yaradığını man sayfasından bul ve tek cümleyle cevap dosyasına yaz.
- Görevi yapacak komutu apropos ile bul: Adını bilmediğin bir işi yapan komutu apropos ve man bölümleriyle bul ve o komutla istenen çıktıyı üret.
- Dosya biçimini 5. bölümden öğren ve düzelt: Bozuk yapılandırma dosyasının biçimini ilgili man 5 sayfasından öğren ve hatalı satırları düzelt.
- Ev dizinindeki gizli dosyayı bul: Bir kullanıcının ev dizininde gizlenmiş nokta dosyasını bul ve içindeki notu cevap olarak gir.
- Uzantısı yalan söyleyen dosyayı yakala: Resim klasöründe aslında betik ya da arşiv olan dosyayı file komutuyla bul ve adını cevap olarak gir.
- Kırık sembolik bağlantıları onar: Uygulama dizinindeki kırık bağlantıları bul, hedefleri doğru olanları yeniden oluştur, gereksizleri sil.
- Yapılandırmadaki port değerini nano ile değiştir: Uygulama yapılandırmasındaki port satırını nano ile istenen değere çevir ve dosyayı kaydet.
- nano'da arayıp birden çok satırı düzelt: Uzun bir yapılandırma dosyasında nano'nun arama ve değiştirme özelliğiyle eski sunucu adının geçtiği her yeri yenisiyle değiştir ve başka satıra dokunmadan kaydet.
- Yazma izni olmayan dosyadaki düzenlemeyi nano'da kurtar: Yetkisiz açtığın sistem dosyasında yaptığın değişikliği nano'dan çıkmadan geçici bir dosyaya yaz, sudo ile yerine koy ve özgün dosyanın yedeğini bırak.
- Son bir günde değişen dosyaları say: Proje dizininde son 24 saatte değişen dosyaları find -mtime ile bul ve sayısını cevap olarak gir.
- Son bir saatte değişen dosyaları bul: Web kök dizininde son bir saat içinde değiştirilmiş dosyaları bul ve listesini cevap dosyasına kaydet.
- İki an arasında değişen dosyaları ayıkla: Bakım penceresinin başlangıcını ve bitişini gösteren iki işaret dosyasını kullanarak find -newer ile yalnızca o aralıkta değişen dosyaları bul ve en yeniden eskiye sıralı listeyi kaydet.
- İkinci komutu yalnızca ilki başarılıysa çalıştır: Rapor dizinini oluşturan ve yalnızca oluşturma başarılıysa içine tarih adlı boş bir dosya koyan tek satırlık komutu && ile yaz.
- Komut başarısız olursa yedek yola geç: Özel yapılandırma dosyası varsa onu, yoksa || ile varsayılan dosyayı gösteren komutu yaz ve her iki durumda $? değerini cevap dosyasına kaydet.
- Başarısız adımda duran komut zinciri kur: Yedek alma adımlarını && ve || ile zincirle, bir adım başarısız olursa hata mesajı yazıp dursun.
- Hataları ayrı dosyaya yönlendir: Taramayı çalıştır, normal çıktıyı bir dosyaya, hata mesajlarını başka bir dosyaya yönlendir.
- En çok istek yapan IP'yi bul: Erişim günlüğünde en çok istek gönderen IP adresini sort ve uniq ile bul ve cevap olarak gir.
- Tek satırlık komutla günlük özet çıkar: Tek bir boru hattıyla bugünkü hata sayısını, en sık hata mesajını ve etkilenen servisleri özet dosyasına yaz.
- Yanlış komutu çalıştıran PATH'i düzelt: ls yazınca sahte bir betiğin çalışmasına neden olan PATH ayarını bul ve .bashrc dosyasında düzelt.
- Zararlı takma adı ayıkla: Kullanıcının kabuk dosyalarında sudo komutunu taklit eden takma adı bul, kaldır ve yerini cevap olarak gir.
- Komut geçmişinden saldırganın adımlarını çıkar: Ele geçirilmiş hesabın komut geçmişini incele ve indirilen dosyanın adresini ve kalıcılık için yapılan değişikliği raporla.
Kurs hakkında
Linux temelleri, komut satırını gerçekten anlamak isteyenler için ayrıntılı bir kurstur. Çekirdek ile dağıtımın farkından başlar, kabuğun bir komutu nasıl okuduğunu gösterir ve dosya sistemi, yönlendirme, borular, süzme araçları, değişkenler ve dosya düzenlemeye kadar ilerler.
Derslerin çoğu bir güvenlik gözüyle kurulmuştur: sahte uzantılı dosyayı tanırsın, erişim kaydında en çok istek yapan adresi bulursun, PATH ile oynanmış bir komutu ve zararlı bir takma adı fark edersin. Son derste bir olay klasörünü tek başına inceler, saldırganın IP adresini ve bıraktığı kalıcılık izini bulup rapor yazarsın.
Ne öğreneceksin
- Çekirdek, dağıtım ve kabuk kavramlarını ayırmak; bir komutun yapısını okumak
- man, info ve --help ile bilmediğin komutu kendi başına öğrenmek
- Mutlak ve göreli yollarla gezinmek; dosya türlerini, inode ve zaman damgalarını okumak
- Joker karakterler, bağlantılar ve find ile dosya bulmak ve yönetmek
- stdout ile stderr’i ayırmak, yönlendirme ve borularla komutları birbirine bağlamak
- grep, sort, uniq, wc, cut ve tr ile kayıt dosyalarından sonuç çıkarmak
- Çıkış durumu, &&, || ile komut zincirlemek; değişkenler, PATH ve .bashrc
- nano ve vim ile dosya düzenlemek
Kimler için
Linux’u işinde kullanacak öğrenciler, sistem ve güvenlik alanına yeni girenler ve komutları ezberden kullanıp nedenini öğrenmek isteyenler için.
Ön koşullar
Ön bilgi gerekmez. Linux’a hızlı başlangıç kursunu bitirmiş olmak işi kolaylaştırır ama şart değildir.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde geçer. Kurulum gerekmez; lab her derste temiz başlar.
Sık sorulan sorular
- Linux’a hızlı başlangıç kursuyla farkı ne?
- Hızlı başlangıç en gerekli komutları kısa yoldan uygulatır. Bu kurs daha yavaş ve derindir: kabuğun nasıl çalıştığını, yönlendirmeyi, boruları ve süzme araçlarını ayrıntılı işler.
- Dersler ne kadar sürer?
- Her ders 35 ile 60 dakika arasındadır; 8 ile 10 adım ve bir kısa sınav içerir. Kursun tamamı yaklaşık 11,5 saat sürer.
- Güvenlik bilgim yok, örnekleri anlayabilir miyim?
- Evet. Güvenlik örnekleri (sahte uzantı, değiştirilmiş PATH, kayıt incelemesi) sıfırdan, gündelik benzetmelerle anlatılır.
- Kurulum gerekir mi?
- Hayır. Tarayıcında açılan Kali Linux terminalinde çalışırsın.