tee Komutu
Tee Komutu
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.
tee
komutuna ek bir parametre verilmediği sürece sisteme girilenstdin
girişleri hedef gösterilen dosyanın son satırına ekler.
Satır Sayısı Sayma
wc -l dosya1.txt | tee -a dosya2.txt
Bu örneğimizde wc
komutu word-count işlemi yapmakta ve -l
parametresiyle 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.
awk
sed
grep
echo
find
fd
benzeri komutlarla bir arada kullanarak sistem kayıtlarından daha etkili sonuçlar elde edeceğiz.
Yeni yazılarda görüşmek üzere...