Rust ile komut satırı ve sistem araçları
clap, serde ve standart kütüphaneyle dosya, süreç ve ağ işleri yapan hızlı, tek dosyalık araçlar yazar ve dağıtırsın.
Seviye 301 · 17 ders · 15 pratik lab
Dersler
Komut satırı aracı
- clap ile argümanlar ve alt komutlar
- Dosya okuma, BufReader ve hata bağlamı
- serde ile JSON ve TOML
- Klasör ağacında gezinmek
- Çıkış kodları, stdin ve stdout
- Kısa görev: renkli çıktılı basit arama aracı
Süreçler ve ağ
- std::process ile komut çalıştırmak
- std::net ile TCP istemci ve sunucu
- reqwest ile HTTP istemcisi
- Zaman aşımı ve yeniden deneme
- Kısa görev: lab servislerini yoklayan araç
Kalite ve dağıtım
- Entegrasyon testleri ve test verisi
- criterion ile kıyaslama
- Statik ve çapraz derleme
- cargo audit ve cargo deny ile bağımlılık denetimi
- Kısa görev: aracını sürümle ve paketle
Bitirme
- Bitirme görevi: dosya bütünlüğü izleme aracı
Pratik lablar
- Sinyalde düzgün kapanan satır hizmeti: Satır tabanlı hizmete sonlandırma sinyalinde yeni bağlantıyı reddeden, açık istekleri bitiren ve süre dolunca çıkan düzgün kapanış ekle.
- clap ile seçenek doğrulamak: Bir yedekleme aracına --gun ve --hedef seçeneklerini clap derive ile ekle; geçersiz sayıda anlaşılır hata ver.
- Alt komutlu etiket aracı: add, list ve remove alt komutlarını clap ile tanımla ve her birinin çıkış kodunu testlerle doğrula.
- Borudan okuyan süzgeç aracı: Girdiyi dosyadan ya da stdin'den okuyan, hataları stderr'e yazan ve doğru çıkış kodu dönen bir süzgeç tamamla.
- JSON envanteri serde ile okumak: Bir sunucu envanteri JSON dosyasını serde ile yapılara oku ve eksik alanlarda varsayılan değer kullan.
- TOML ayarlarını ortam değişkeniyle birleştirmek: TOML dosyasından okunan ayarları ortam değişkenleriyle ezen ve öncelik sırasını testlerle kanıtlayan kodu yaz.
- Dizin ağacında büyük dosyaları bulmak: Dizin ağacını gezip boyut eşiğini aşan dosyaları listeleyen kodu yaz; okunamayan dizinlerde durmadan uyarı ver.
- Bir komutun çıktısını Command ile yakalamak: std::process::Command ile df çalıştırıp kullanım yüzdelerini ayrıştır; komut başarısızsa hata döndür.
- Zaman aşımlı TCP bağlantı denetimi: Lab hedeflerindeki izinli portlara connect_timeout ile bağlanıp açık, kapalı ve zaman aşımı durumlarını ayıran bir denetçi yaz.
- Yeniden denemeli HTTP istemcisi: Lab API'sine istek atan istemciye üstel bekleme ile en fazla üç yeniden deneme ekle; 4xx yanıtları yeniden denenmesin.
- Satır tabanlı yankı sunucusu: std::net ile her satırı büyük harfe çevirip geri gönderen bir sunucu yaz ve aynı anda iki istemciyle test et.
- Komut satırı aracına bütünleşme testi: tests/ klasörüne aracı gerçekten çalıştıran ve çıktı ile çıkış kodunu denetleyen bir bütünleşme testi ekle.
- Ayrıştırıcıyı criterion ile ölçmek: Satır ayrıştırıcısı için bir criterion ölçümü yaz, gereksiz String ayırmalarını kaldır ve hızlanmayı göster.
- Açıklı bağımlılığı güncellemek: cargo audit'in bildirdiği açıklı sürümü güncelle, cargo deny lisans kuralını düzelt ve derlemenin bozulmadığını kanıtla.
- Statik ikili derlemek: Aracı musl hedefi için statik derle, ldd ile bağımlılık kalmadığını doğrula ve sürüm bilgisini ikiliye göm.
Kurs hakkında
clap, serde ve standart kütüphaneyle dosya, süreç ve ağ işleri yapan hızlı, tek dosyalık araçlar yazar ve dağıtırsın.
Ne öğreneceksin
- Komut satırı aracı
- Süreçler ve ağ
- Kalite ve dağıtım
- Bitirme
Ön koşullar
Aynı yolun 101 ve 201 düzeyindeki konularına hâkim olmalısın.
Lab ortamı
Dersler, tarayıcında açılan sana özel bir Kali Linux terminalinde ve ona bağlı özel bir lab ağında geçer. Kurulum gerekmez.
Sık sorulan sorular
- Bu kurs benim düzeyime uygun mu?
- Kurs 301 düzeyindedir; daha düşük düzeydeki kursların konularını bildiğin varsayılır.
- Kurulum gerekir mi?
- Hayır. Her ders tarayıcında açılan sana özel bir lab ortamında geçer.
- Dersler nasıl işleniyor?
- Her ders 8 ile 10 adımdan ve bir kısa sınavdan oluşur. İlk adımlarda yazman gereken komut gösterilir, sonraki adımlarda yardım azalır; iki denemede takılırsan çözüm açılır.
- Ücretsiz deneyebilir miyim?
- Evet. Her kursun ilk üç dersi ücretsizdir.