watch to prosty, ale niedoceniany strażnik terminala. Uruchamia wskazane polecenie w kółko, domyślnie co 2 sekundy, i za każdym razem odświeża jego wynik w tym samym miejscu na ekranie — dzięki temu nie musisz ręcznie klepać tej samej komendy raz za razem ani zaśmiecać historii tysiącem powtórzeń. Idealne, gdy chcesz na żywo obserwować, jak coś się zmienia: liczbę procesów, zajętość dysku, stan usługi, przyrost logów albo postęp jakiegoś zadania w tle. Zamiast wpatrywać się w statyczny zrzut, dostajesz odświeżany na bieżąco podgląd.
Składnia i najważniejsze opcje
Podstawowa forma to watch [opcje] polecenie. Polecenie warto brać w cudzysłów, jeśli zawiera potoki albo spacje, żeby watch potraktował je jako całość.
-n, --interval— zmienia odstęp między wykonaniami (np.-n 5). Akceptuje ułamki, np.-n 0.5; wartości poniżej 0,1 s są podciągane do 0,1.-d, --differences— podświetla to, co się zmieniło od poprzedniego odświeżenia. Bardzo pomaga wyłapać, która liczba właśnie skoczyła.-t, --no-title— chowa nagłówek u góry (interwał, polecenie, zegar), zostawiając czysty output.-g, --chgexit— kończy działanie, gdy tylko widoczny wynik się zmieni. Świetne do skryptów czekających na jakieś zdarzenie.-e, --errexit— zamraża ekran, jeśli polecenie zwróci błąd, i czeka na naciśnięcie klawisza zamiast lecieć dalej.-p, --precise— odpala polecenie co dokładnie N sekund od startu poprzedniego, a nie od jego zakończenia (stabilny rytm nawet przy wolnym poleceniu).-c, --color— zachowuje kolory ANSI z wyniku polecenia (bez tegowatchzwykle je zjada).-b, --beep— piknie, jeśli polecenie zwróci niezerowy kod wyjścia.
Przykłady użycia
watch -n 1 free -h— co sekundę pokazuje zużycie pamięci w czytelnych jednostkach. Klasyk przy diagnozie wycieków RAM.watch -d 'ls -l /var/log/nginx'— obserwujesz katalog z logami i widzisz podświetlone, które pliki rosną.watch -n 2 'df -h | grep /dev/sda1'— pilnujesz zajętości konkretnej partycji, żeby złapać moment przepełnienia dysku.watch -g 'systemctl is-active nginx'—watchsam się zamknie, gdy status usługi się zmieni — wygodne w skrypcie deployu.watch -n 5 'ps aux --sort=-%cpu | head'— lekki podgląd najbardziej żarłocznych procesów, gdy nie chcesz odpalać pełnegotop.
Częste błędy i pułapki
Najczęstsza wpadka to potoki bez cudzysłowów: watch ps aux | grep nginx zadziała nie tak, jak myślisz — watch dostaje tylko ps aux, a grep filtruje cały ekran. Poprawnie: watch 'ps aux | grep nginx'. Podobnie aliasy i funkcje powłoki nie są dla watch widoczne — trzeba je rozpisać albo wywołać przez bash -c. Pamiętaj też, że watch pochodzi z pakietu procps i jest typowo linuksowy — na macOS domyślnie go nie ma (doinstalujesz przez brew install watch), a BusyBox ma okrojoną wersję bez części flag. I nie ustawiaj samobójczo krótkich interwałów typu -n 0.1 na ciężkim poleceniu — obciążysz maszynę bardziej niż to, co obserwujesz.
Powiązane komendy: top, htop, tail -f oraz while w pętli powłoki.