EMZETT.
Giriş yap

Kabuk: borular (pipe) ve yönlendirmeler

Kısaca: Kabukta bir boru (|) bir programın çıktısını sonrakinin girdisine bağlar, yönlendirmeler (>, <) girdi ve çıktıyı dosyalara yönlendirir. Bunlardan küçük araçlarla güçlü komut zincirleri kurulur.

Biraz daha ayrıntılı: Her programın üç standart kanalı vardır: girdi (stdin, 0), çıktı (stdout, 1) ve hata çıktısı (stderr, 2). Kabuk bunları yeniden bağlayabilir.

Ayrıntılı

  • Boru: cat log.txt | grep ERROR | sort | uniq -c | sort -rn | head hata iletilerini süzer, sayar ve sıralar. Programlar eşzamanlı çalışır.
  • Çıktıyı dosyaya: komut > dosya üzerine yazar, komut >> dosya ekler.
  • Girdiyi dosyadan: komut < dosya.
  • Hataları ayırma: komut 2> hatalar.txt, ikisi birlikte komut > hepsi.txt 2>&1 veya kısaca &> hepsi.txt (bash). Sıraya dikkat: 2>&1, 1’in şu anda gösterdiği yere kopyalar.
  • Atma: komut > /dev/null 2>&1.
  • Aynı anda gösterme ve kaydetme: komut | tee dosya.txt.
  • Komut yerine koyma: $(komut), bir komutun çıktısını başka bir satıra yerleştirir.
  • Here-string ve here-doc: <<< "metin" ve <<EOF ... EOF metni girdi olarak iletir.
  • Borularda başarı: Varsayılan olarak yalnızca son komutun dönüş değeri sayılır. set -o pipefail önceki hataları da bildirir.

Ayrıca bak: Kabuk betikleri yazma, Bash