watch komutu: Kullanımı, -n aralığı, -d vurgulama ve çıktı değişince çıkma
watch komutu, verilen bir komutu 2 saniyede bir yeniden çalıştırıp çıktısını tüm terminal ekranına yeniden çizen bir Linux komutudur. Bir AlmaLinux 9 sunucusunda dosyalar başka bir pencereden değiştirilirken watch ile izlendiğinde -d seçeneği değişen karakterleri vurguladı, -g seçeneği ise çıktı değiştikten sonra watch komutunu sonlandırdı.
Aşağıdaki çıktılar, AlmaLinux 9.8 sunucusunda root hesabıyla bir çalışma klasöründe alınmıştır; Debian 12 sunucusunda yalnızca sürüm kontrol edilmiştir. Ekranın en üstündeki başlık satırında ana makine adı örnek değer server1 ile değiştirilmiştir ve saatler UTC'dir.
1️⃣ watch komutu nasıl kullanılır
watch'tan sonra yeniden çalıştırılacak komutu yazarsanız, seçenek yoksa bu komut 2 saniyede bir çalıştırılır ve ekran yeni çıktıyla değiştirilir. date izlendiğinde ekranın en üstünde bir başlık satırı çıktı, bir boş satırın ardından date çıktısı geldi.
watch dateEvery 2.0s: date server1: Thu Oct 29 02:28:07 2026
Thu Oct 29 02:28:07 UTC 2026Başlık satırının solunda yenileme aralığı ve çalışan komut, sağında ana makine adı ve son çalıştırma saati bulunur. Aynı ekrana 2 saniye sonra yeniden bakıldığında başlık satırındaki saat ile date çıktısı birlikte değişmişti.
Every 2.0s: date server1: Thu Oct 29 02:28:09 2026
Thu Oct 29 02:28:09 UTC 2026watch siz sonlandırana kadar çalışmaya devam ettiği için Ctrl+C ile sonlandırılır. Ctrl+C'ye basılınca watch ekranı kayboldu ve komut istemi geri geldi. Hemen ardından kontrol edilen çıkış kodu 0'dı.
echo $?0watch, bir kez çıktı verip biten komutları tekrar tekrar çalıştırmak için kullanılır. Süreç başına CPU ve bellek kullanımının nasıl değiştiğini görmek için ekranını kendisi yeniden çizen top komutu daha uygundur.
watch, procps-ng paketinde bulunan bir komuttur. Sürüm [watch -v] ile kontrol edilir; AlmaLinux 9.8 sunucusunda 3.3.17, Debian 12 sunucusunda 4.0.2 idi.
watch -vwatch from procps-ng 3.3.17watch -vwatch from procps-ng 4.0.22️⃣ watch aralık ve vurgulama seçenekleri
-n'den sonra saniye yazarsanız yenileme aralığı değişir. [watch -n 1 date] ile çalıştırıldığında başlık satırının sol tarafı Every 1.0s oldu.
watch -n 1 dateEvery 1.0s: date server1: Thu Oct 29 02:28:15 2026
Thu Oct 29 02:28:15 UTC 2026man sayfasına göre aralık 0,1 saniyeden kısa ayarlanamaz; daha küçük değerler 0,1 saniyeye çevrilir. Ondalık ayırıcı olarak hem nokta hem virgül tanınır.
-d, bir önceki yenilemeden farklı olan karakterleri vurgular. Çalışma klasöründeki size.log [ls -l] ile izlenirken başka bir pencereden dosyaya bir satır eklendi.
watch -d -n 1 ls -l size.logEvery 1.0s: ls -l size.log server1: Thu Oct 29 02:28:53 2026
-rw-r--r-- 1 root root 7 Oct 29 02:28 size.logprintf 'line 2\n' >> size.logDosya boyutu 7'den 14'e çıkınca boyut sütunundan satır sonuna kadar her şey vurgulandı. Sayı bir basamak uzadığı için ardındaki bütün karakterler birer konum kaydı. Sonraki yenilemede değer aynı kaldığı için vurgu kayboldu.
Every 1.0s: ls -l size.log server1: Thu Oct 29 02:28:54 2026
-rw-r--r-- 1 root root 14 Oct 29 02:28 size.logİlk çalıştırmaya göre değişen yerleri vurgulamaya devam etmek için [--differences=permanent] kullanılır (man sayfasına göre).
-t, başlık satırını ve altındaki boş satırı kaldırıp yalnızca komutun çıktısını bırakır.
watch -t -n 1 dateThu Oct 29 02:28:19 UTC 20263️⃣ watch komutunun çıkış koşulları ve seçenekleri
-g, komutun çıktısı değişince watch komutunu sonlandırır. Bir durum dosyasının içeriğinin değişmesini bekleyip sonraki işe geçerken kullanılır.
watch -g -n 1 cat status.txtEvery 1.0s: cat status.txt server1: Thu Oct 29 02:29:12 2026
runningBaşka bir pencereden, aşağıdaki komutla status.txt dosyasının içeriği done olarak değiştirildi.
printf 'done\n' > status.txtBunun üzerine watch sona erdi, komut istemi geri geldi ve çıkış kodu 0 oldu.
echo $?0-e, komut 0 dışında bir çıkış koduyla bitince ekran yenilemesini durdurur. Çalışma klasöründe olmayan bir dosya ls ile izlendiğinde, ls'in hata çıktısıyla birlikte ekranın en alt satırında bir tuşa basınca çıkılacağını söyleyen bir uyarı çıktı.
watch -e -n 1 ls nofile.txtEvery 1.0s: ls nofile.txt server1: Thu Oct 29 02:29:18 2026
ls: cannot access 'nofile.txt': No such file or directory
command exit with a non-zero status, press a key to exitBaşlık satırındaki saat çalıştırmanın hemen sonrasında donup kaldı ve bir tuşa basınca watch sona erdi. Bu seferki çıkış kodu 8'di.
echo $?8man sayfası 8 çıkış kodunu, komutun hatayla bittiği durumu da kapsayan bir değer olarak açıklar.
📌 Başlıca seçenekler: bu yazıda çalıştırılan sonuçlar
| Seçenek | Görev | Bu yazıdaki sonuç | |
|---|---|---|---|
| -n saniye | Yenileme aralığını değiştirir (varsayılan 2 saniye) | Başlık satırı Every 1.0s oldu | |
| -d | Bir önceki yenilemeden farklı karakterleri vurgular | Boyut 7 → 14 olunca o sütundan satır sonuna kadar vurgulandı, sonraki yenilemede kayboldu | |
| -t | Başlık satırını ve altındaki boş satırı kapatır | Yalnızca bir satır date çıktısı kaldı | |
| -g | Çıktı değişince watch komutunu sonlandırır | running → done sonrasında sona erdi, çıkış kodu 0 | |
| -e | Komut hatayla bitince ekranı durdurur | Bir tuşa basınca sona erdi, çıkış kodu 8 | |
| -v | Sürüm bilgisini yazdırır | AlmaLinux 9.8 sunucusu: watch from procps-ng 3.3.17, Debian 12 sunucusu: watch from procps-ng 4.0.2 |
📎 Diğer seçenekler: resmî kılavuza göre
| Seçenek | Görev | |
|---|---|---|
| -b | Komut 0 dışında bir çıkış koduyla bitince bip sesi çıkarır | |
| -c | ANSI renk ve stil kodlarını yorumlayıp komut çıktısını renkleriyle gösterir | |
| -p | Her aralıkta çalışacak şekilde ayarlayarak yenileme saatinin kaymasını önler | |
| -x | Komutu sh -c yerine exec ile çalıştırır, böylece daha az tırnak gerekir | |
| -w | Uzun satırları alt satıra kaydırmadan keserek yazdırır | |
| --differences=permanent | İlk çalıştırmadan bu yana değişen her yeri vurgulamaya devam eder | |
| -h | Yardımı yazdırır |
4️⃣ watch komutunda tırnak işaretleri ve pipe
watch aldığı komutu sh -c ile çalıştırdığından, pipe(|) veya $ içeren bir komutun tamamı tek tırnak içine alınır. Çalışma klasöründeki dosya sayısı [ls | wc -l] ile izlendiğinde başlık satırında pipe dahil komutun tamamı göründü.
watch -n 1 'ls | wc -l'Every 1.0s: ls | wc -l server1: Thu Oct 29 02:30:22 2026
6Başka bir pencereden bir dosya daha oluşturulunca sonraki yenilemede sayı 6'dan 7'ye çıktı.
printf 'c\n' > q3.txtEvery 1.0s: ls | wc -l server1: Thu Oct 29 02:30:24 2026
7[watch -n 1 ls | wc -l] tırnaksız girilirse kabuk önce pipe'ı ayırır ve watch'ın tüm ekran çıktısı wc'ye gider. Bu yüzden izlenecek komutta pipe varsa komutun tamamı tırnak içine alınır.
$ da aynı kurala uyar. [watch -n 1 echo $$] tırnaksız çalıştırıldığında geçerli kabuk $$ ifadesini önce bir sayıya çevirdi ve başlık satırındaki komutta da o sayı göründü.
watch -n 1 echo $$Every 1.0s: echo 3755802 server1: Thu Oct 29 02:29:37 2026
3755802Tek tırnak içine alınınca $$ olduğu gibi aktarılır; bu yüzden başlık satırında echo $$ göründü ve her yenilemede yeni çalıştırılan sh'nin PID'si yazdırıldı.
watch -n 1 'echo $$'Every 1.0s: echo $$ server1: Thu Oct 29 02:29:40 2026
3756270Every 1.0s: echo $$ server1: Thu Oct 29 02:29:41 2026
3756333Geçerli kabuğun PID'si [echo $$] ile kontrol edildiğinde, tırnaksız çalıştırmada sabit kalan sayıyla aynıydı.
echo $$3755802Disk kullanımı gibi yavaş değişen değerler birkaç saniyelik aralıkla izlenir. du komutu: -s yalnızca toplamı, -h ise boyutları K ve M gibi birimlerle yazdırır. Çalışma klasörü [du -sh .] ile izlenirken başka bir pencereden bir günlük dosyasına 8.001 bayt eklenince sonraki yenilemede 28K, 36K oldu.
watch -n 2 du -sh .Every 2.0s: du -sh . server1: Thu Oct 29 02:30:34 2026
28K .printf '%08000d\n' 0 >> grow.logEvery 2.0s: du -sh . server1: Thu Oct 29 02:30:36 2026
36K .🔲 watch komutu simülatörü
Aşağıdaki simülatörde watch komutunu çalıştırdıktan sonra [🖊 Diğer pencere] çipleriyle dosyaları değiştirerek ekranın nasıl değiştiğini kendiniz görebilirsiniz.
🔢 SSS & önerilen içerikler
Sistem durumu
Linux uptime komutu (sunucu çalışma süresi & 1, 5, 15 dakikalık ortalama yük)
Sunucunun açıldığından beri geçen süreyi ve 1, 5 ve 15 dakikalık ortalama yükü tek satırda gösteren uptime komutu.
Metin
Linux head komutu ve tail komutu
Bir dosyanın başını ve sonunu yazdıran head ve tail komutları. Büyüyen bir günlüğün sonunu takip etmek için [tail -f] kullanılır.
Disk
df komutu
Her dosya sistemi için toplam boyutu, kullanımı ve boş alanı yazdıran df komutu.
ℹ️ Satış ortaklığı bildirimi
Bu sitenin içeriklerinde satış ortaklığı bağlantıları bulunur. Bir ziyaretçi bu bağlantılar üzerinden ürün veya hizmet satın alırsa bu site satıcıdan komisyon alır. Bu süreçte alıcının ödediği tutar (kampanya indirimlerinde tutar düşer↓) artmaz. Yayımlanan fiyat, indirim ve stok bilgileri yazının yazıldığı zamana aittir ve gerçek durumdan farklı olabilir; bu yüzden satın almadan önce son bilgiyi satıcıdan kontrol etmenizi rica ederiz. Ürünler kendi ölçütlerimize göre seçilir ve değerlendirilir; komisyon alınıp alınmaması tanıtım sırasını veya değerlendirme içeriğini etkilemez.