gokayburuc.dev

tee Komutu

Tee Komutu

bash-logo

tee komutu standart-input ifadelerini okumak ve onları standart-output olarak dosyalara yazmak için kullanılan bir komuttur.

Örnek uygulamalarla konuyu pekiştirmeye çalışalım:

ping yollama ve logları kayıt altına alma

ping z3.fm | tee z3fm_ping.txt 

Yukarıda verilen kod satırı z3.fm isimli bir mp3 indirme servisine 64 bytlık paketler halinde ping atarak verilen sonuçları z3fm_ping.txt isimli bir dosyaya borulamakta ve böylece kayıt altına almaktadır.

HATIRLATMA: | işareti (Pipeline) bir komutun çıktısını başka bir komuta girdi olarak kullanmak amacıyla kullanılır.

Satır Sayısı Sayma

wc -l dosya1.txt | tee -a dosya2.txt 

Bu örneğimizde wc komutu word-count işlemi yapmakta ve -lparametresiyle satırları saymaktadır. dosya1.txt isimli dosyanın satırlarının sayısını saydıktan sonra | ile stdout ifadesini yeni komut için stdin haline getirmektedir. tee komutu ile sayılan satırları -a append parametresi yardımıyla dosyanın en sonuna ilave eder.

Disk bilgisinin görüntülenmesi

df -h | tee disk_usage.txt 

df komutu -h parametresi ile disk kullanım oranlarını human-readable insanlar tarafından okunabilir bir şekilde verecektir. | ile tee komutuna boruladığımızda disk kullanım oranlarımızı bir dosyaya stdin olarak aktarmış bulunuyoruz.

Yukarıdaki komut aşağıdakine benzer bir çıktı verecektir:

Filesystem      Size  Used Avail Use% Mounted on
udev            2.9G     0  2.9G   0% /dev
tmpfs           591M  3.6M  587M   1% /run
/dev/sda5       233G  183G   39G  83% /
tmpfs           2.9G  184M  2.8G   7% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs           2.9G     0  2.9G   0% /sys/fs/cgroup
/dev/loop0      128K  128K     0 100% /snap/bare/5
/dev/loop1      164M  164M     0 100% /snap/chromium/2897
/dev/loop3      167M  167M     0 100% /snap/chromium/2905
/dev/loop2       56M   56M     0 100% /snap/core18/2823
/dev/loop5       64M   64M     0 100% /snap/core20/2318
/dev/loop4       56M   56M     0 100% /snap/core18/2829
/dev/loop6       64M   64M     0 100% /snap/core20/2264
/dev/loop11      75M   75M     0 100% /snap/core22/1380
/dev/loop7       75M   75M     0 100% /snap/core22/1122
/dev/loop10      68M   68M     0 100% /snap/cups/1058
/dev/loop9       67M   67M     0 100% /snap/cups/1052
/dev/loop8       67M   67M     0 100% /snap/core24/423
/dev/loop12     219M  219M     0 100% /snap/gnome-3-34-1804/66
/dev/loop13     219M  219M     0 100% /snap/gnome-3-34-1804/93
/dev/loop14     350M  350M     0 100% /snap/gnome-3-38-2004/143
/dev/loop15     505M  505M     0 100% /snap/gnome-42-2204/172
/dev/loop16     506M  506M     0 100% /snap/gnome-42-2204/176
/dev/loop17     488M  488M     0 100% /snap/gnome-46-2404/26
/dev/loop21      28M   28M     0 100% /snap/nvim/2823
/dev/loop20      92M   92M     0 100% /snap/gtk-common-themes/1535
/dev/loop18     225M  225M     0 100% /snap/mesa-2404/44
/dev/loop22     432M  432M     0 100% /snap/qt515-core20/31
/dev/loop19      65M   65M     0 100% /snap/gtk-common-themes/1514
/dev/loop23      26M   26M     0 100% /snap/nvim/2819
/dev/loop27      13M   13M     0 100% /snap/snap-store/1113
/dev/loop25      39M   39M     0 100% /snap/snapd/21759
/dev/loop26      13M   13M     0 100% /snap/snap-store/959
/dev/loop24     433M  433M     0 100% /snap/qt515-core20/32
/dev/loop28      39M   39M     0 100% /snap/snapd/21465
/dev/loop29     447M  447M     0 100% /snap/telegram-desktop/6024
/dev/loop30     447M  447M     0 100% /snap/telegram-desktop/6055
/dev/sda2       512M  4.0K  512M   1% /boot/efi
tmpfs           591M  112K  591M   1% /run/user/1000

Birden çok dosyaya yazma

echo "Merhaba Dunya" | tee dosya1.txt dosya2.txt dosya3.txt

Yukarıdaki komut birden çok dosyaya "Merhaba Dünya" ifadesini yazdıracaktır.

yazma korumalı dosyalara ekleme

echo "bu satırı ekledik" | sudo tee -a /etc/cron.d/anacron

Normalde etc/ isimli klasördeki bir dosyaya erişim sistem tarafından kısıtlandığından dolayı bu engeli aşmak adına sudo komutu yardımıyla super-user izni alarak sistem dosyalarına erişim sağlıyoruz.

Sonuç ve Değerlendirme

Örneklerin sayısı dilediğiniz kadar arttırılabilir. Ne kadar fazla komut ve parametre ile çalışıyorsanız o kadar çok miktarda komut işlemi geliştirebilirsiniz. tee komutu bash altında diğer komutlarla birlikte çalışan bir komuttur. Bu tarz komutları yardımcı komutlar olarak değerlendireceğiz.

benzeri komutlarla bir arada kullanarak sistem kayıtlarından daha etkili sonuçlar elde edeceğiz.

Yeni yazılarda görüşmek üzere...