Go ile komut satırı araçları
Alt komutları, yapılandırma dosyaları ve düzgün çıkış kodları olan, tek ikili dosya olarak dağıtılabilen komut satırı araçları yazarsın.
Seviye 201 · 18 ders · 15 pratik lab
Dersler
Araç iskeleti
- İyi bir komut satırı aracının özellikleri
- flag ile alt komutlar
- cobra ile komutlar ve bayraklar
- stdin, stdout, stderr ve çıkış kodları
- Kısa görev: yardım metni ve sürüm bayrağı olan iskelet
Dosyalar ve yapılandırma
- filepath.WalkDir ve desenlerle dosya bulmak
- YAML ve TOML yapılandırma dosyaları
- Ortam değişkenleri ve ayar öncelik sırası
- embed ile dosyaları ikiliye gömmek
- Okunur tablo ve renkli çıktı
- Kısa görev: dosya, ortam ve bayrak ayarlarını birleştir
Sistemle çalışmak ve dağıtım
- os/exec ile güvenli komut çalıştırmak
- Sinyalleri yakalamak ve temiz çıkış
- Uzun işler için ilerleme ve iptal
- Çapraz derleme: GOOS ve GOARCH
- Sürüm bilgisi gömmek: ldflags ve debug.BuildInfo
- Kısa görev: üç platform için sağlama toplamlı sürüm paketi
Bitirme
- Bitirme görevi: klasörleri tarayıp yinelenen ve büyük dosyaları raporlayan araç
Pratik lablar
- Yardım ve sürüm bayraklı iskelet: flag paketiyle yardım metni, sürüm bayrağı ve bilinmeyen bayrakta kullanım çıktısı veren araç iskeletini yaz.
- FlagSet ile alt komutlar eklemek: ekle, listele ve sil alt komutlarını ayrı FlagSet'lerle yaz; her alt komutun kendi yardımı ve bayrakları olsun.
- flag tabanlı aracı cobra'ya taşımak: Alt komutlu aracı cobra'ya taşı; kalıcı bayrakları ve argüman doğrulamasını ekle, eski komut satırlarının aynı çıktıyı verdiğini testle göster.
- Girdiyi dosyadan ya da borudan okumak: Dosya adı verilmezse ya da tire verilirse standart girdiden okuyan satır sayma aracını yaz.
- Hataları stderr ve çıkış koduna bağlamak: Sonucu stdout'a, tanıları stderr'e yazan ve kullanım, girdi ve iç hata için farklı çıkış kodu döndüren düzeni kur.
- Uçbirime göre renkli tablo basmak: tabwriter ile hizalı tablo bas; çıktı uçbirim değilse ya da NO_COLOR tanımlıysa renk kodlarını kapat ve iki durumu testle kapsa.
- Desene uyan dosyaları bulmak: filepath.WalkDir ve Match ile desene uyan dosyaları listele; gizli dizinleri atla.
- YAML ve TOML ayarını aynı yapıya okumak: Uzantıya göre YAML ya da TOML dosyasını aynı ayar yapısına çöz ve bilinmeyen anahtarı hata olarak bildir.
- Dosya, ortam ve bayrak ayarlarını birleştirmek: Varsayılan, dosya, ortam değişkeni ve bayrak sırasıyla ayarları birleştir; her değerin hangi kaynaktan geldiğini gösteren bir döküm komutu ekle.
- Komutu kabuksuz çalıştırıp çıktısını almak: exec.Command ile argümanları ayrı vererek bir programı çalıştır; stdout ve stderr'i ayrı topla ve çıkış kodunu döndür.
- Sinyalde geçici dosyaları temizleyip çıkmak: signal.NotifyContext ile kesme sinyalini yakala; süren işi durdur, geçici dizini sil ve doğru çıkış koduyla bitir.
- Uzun kopyalamada ilerleme ve iptal: Büyük dosya kopyalayan komuta yüzde ilerleme ve context ile iptal ekle; iptalde yarım hedef dosya kalmamalı ve alt süreç öldürülmeli.
- Varsayılan ayarı ikiliye gömmek: Varsayılan ayar dosyasını ve yardım metnini embed ile ikiliye göm; dosya sistemi olmadan çalıştığını test et.
- Sürüm bilgisini derlemede gömmek: Sürümü ldflags ile göm; verilmediğinde debug.BuildInfo'dan işlem kimliğini ve derleme zamanını okuyan sürüm komutunu yaz.
- Üç platform için sürüm paketi üretmek: GOOS ve GOARCH ile üç platforma çapraz derleyen, arşivleyen ve SHA-256 özet dosyası üreten betiği yaz; derlemenin yinelenebilir olduğunu göster.
Kurs hakkında
Alt komutları, yapılandırma dosyaları ve düzgün çıkış kodları olan, tek ikili dosya olarak dağıtılabilen komut satırı araçları yazarsın.
Ne öğreneceksin
- Araç iskeleti
- Dosyalar ve yapılandırma
- Sistemle çalışmak ve dağıtım
- Bitirme
Ön koşullar
Aynı yolun 101 düzeyindeki kurslarını bitirmiş olmak ya da o konuları biliyor olmak yeterlidir.
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
- Bu kurs benim düzeyime uygun mu?
- Kurs 201 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.