Standart Hata
Coddy'nin Terminal Journey'sinin Temeller bölümünün bir parçası — ders 41 / 82.
Üçüncü ve son veri akışı standart hatadır ve stderr olarak kısaltılır. Bu akış, hata mesajları ve uyarılar için özel olarak tasarlanmıştır ve bunları normal çıktıdan ayrı tutar.
Bir komut başarısız olduğunda, hata mesajı standart hataya gider, standart çıktıya değil:
ls nonexistent_folderGördüğünüz hata mesajı stderr üzerinden gelir. Bu ayrım önemlidir çünkü hataları normal çıktıdan bağımsız olarak yönlendirebilirsiniz.
Standart hatayı yönlendirmek için 2> yerine > kullanın:
ls nonexistent_folder 2> errors.txt2, stderr'nin dosya tanımlayıcı numarasını ifade eder (stdout 1'dir, stderr 2'dir). Bu komut hata mesajını errors.txt içine yakalarken terminalinizi temiz tutar.
Her iki akışı da farklı dosyalara yönlendirebilirsiniz:
ls existing_folder nonexistent_folder > output.txt 2> errors.txtBaşarılı çıktı output.txt'ye giderken, hatalar errors.txt'ye gider. Her iki akışı da aynı dosyaya göndermek için 2>&1 kullanın:
ls existing_folder nonexistent_folder > all_output.txt 2>&1Bu, stderr'yi stdout'un gittiği yere yönlendirir ve her şeyi tek bir dosyada birleştirir.
Görev
Kolay2> operatörünü kullanarak bir hata mesajını bir dosyaya yönlendirin. Bu iki komutu sırayla çalıştırın:
lskullanarakmissing_folderadlı bir klasörü listelemeyi deneyin ve hata mesajınıerrors.txtadlı bir dosyaya yönlendirinerrors.txtdosyasının içeriğini görüntülemek içincatkullanın
İpucu: Biçim
ls foldername 2> filename'dir. Hata mesajı ekranda görünmek yerine dosyaya gider. Yakalandığını doğrulamak içincatkullanın.
Kopya kağıdı
Standart hata akışı (stderr), hata mesajları ve uyarılar için kullanılır; bunları normal çıktıdan ayrı tutar.
Standart hatayı yönlendirmek için 2> kullanın:
ls nonexistent_folder 2> errors.txt2, stderr'nin dosya tanımlayıcı numarasını ifade eder (stdout 1'dir, stderr 2'dir).
stdout ve stderr'yi farklı dosyalara yönlendirebilirsiniz:
ls existing_folder nonexistent_folder > output.txt 2> errors.txtHer iki akışı da aynı dosyaya göndermek için 2>&1 kullanın:
ls existing_folder nonexistent_folder > all_output.txt 2>&1Kendin dene
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Dizinler
Bir Dizin OluşturBir Dizin KopyalaBir Dizin Taşı ve Yeniden AdlandırBir Dizin SilÖzet - Dizin İşlemleri7Dosya İçeriği
Head ve TailKelime SayısıSort KomutuUnik KomutuGrep TemelleriBayraklarla GrepÖzet - Metin Dedektifi10Günlük Analizörü Projesi
Proje Genel BakışıGünlük Dosyasını Görüntüleme2Navigasyon
Çalışma Dizini'ni YazdırDosyaları ListeleDizin DeğiştirMutlak ve Göreli YollarEv ve Kök DizinÖzet - Yolunu Bul8Yönlendirme
Standart ÇıktıDosyaya Üzerine YazmaDosyaya EklemeStandart GirdiStandart HataÖzet - Günlük Oluşturucu3Dosyalar
Bir Dosya OluşturBir Dosya OkuBir Dosya KopyalaBir Dosyayı Taşı ve Yeniden AdlandırBir Dosya SilÖzet - Dosya İşlemleri6Joker Karakterler ve Desenler
Yıldız Joker KarakteriSoru İşareti Joker KarakteriKöşeli Parantez JokerleriJoker Karakterleri BirleştirmeÖzet - Seçici İşlemler9Borulama
Boru Nedir?İki Komutu ZincirlemeBirden Fazla Komutu ZincirlemeGrep ile BoruÖzet - Veri Boru Hattı