w to jedna z tych komend, które w jednej linijce mówią Ci więcej niż trzy zakładki monitoringu. Pokazuje, kto jest aktualnie zalogowany na maszynie, z jakiego terminala i hosta, jak długo siedzi bezczynnie oraz — co najważniejsze — jaki proces właśnie odpala. Do tego w nagłówku dorzuca to samo, co uptime: aktualny czas, jak długo system działa, liczbę zalogowanych użytkowników i obciążenie (load average) z ostatnich 1, 5 i 15 minut. Jeśli wchodzisz na serwer i chcesz w sekundę wiedzieć „kto tu grzebie i czy maszyna nie płonie”, to jest Twoja komenda. Należy do pakietu procps-ng, więc znajdziesz ją praktycznie na każdej dystrybucji Linuksa.
Składnia i najważniejsze opcje
Podstawowa składnia jest banalnie prosta: w [opcje] [użytkownik]. Bez argumentów pokazuje wszystkich, a podanie nazwy użytkownika filtruje wynik tylko do jego sesji.
-h,--no-header— nie drukuje nagłówka. Przydatne, gdy przerabiasz wynik skryptem.-s,--short— krótki format: pomija czas logowania oraz kolumny JCPU i PCPU.-f,--from— przełącza wyświetlanie pola FROM (zdalny host, z którego ktoś się łączy).-i,--ip-addr— w polu FROM pokazuje adres IP zamiast nazwy hosta (koniec z czekaniem na DNS).-o,--old-style— stary styl: dla czasu bezczynności poniżej minuty zostawia puste miejsce zamiast zer.-p,--pids— dokleja PID procesu w kolumnie WHAT.
Przykłady użycia
w— pełny widok: nagłówek z load average plus lista wszystkich zalogowanych i ich procesów.w pawel— pokazuje tylko sesje użytkownika pawel. Idealne, gdy chcesz sprawdzić, co odpalił jeden konkretny człowiek.w -i— zamiast nazw hostów pokazuje IP; szybciej się ładuje i od razu widzisz, z jakiego adresu ktoś siedzi.w -hs— bez nagłówka, w skróconym formacie. Świetne jako wejście dogrepalboawkw skrypcie.w -f— wymusza (lub chowa) kolumnę FROM, jeśli Twoja dystrybucja domyślnie jej nie pokazuje.
Częste błędy i pułapki
Pierwsza pułapka: domyślne wyświetlanie pola FROM zależy od dystrybucji. U jednych jest widoczne od razu, u innych trzeba je włączyć przez -f — więc nie zakładaj, że brak kolumny FROM to błąd. Druga rzecz: kolumna IDLE pokazuje bezczynność terminala, a nie procesu. Sesja może wisieć „bezczynna” 3 godziny, a w tle i tak mieli proces w tle. Trzecia: JCPU to czas CPU wszystkich procesów podpiętych do danego tty, a PCPU tylko bieżącego procesu z kolumny WHAT — łatwo je pomylić. I na koniec: -s to short, nie żaden „sort”. Nic nie sortuje, tylko ucina kolumny.
Powiązane komendy: who (prostsza lista zalogowanych), whoami, users, uptime (sam nagłówek z load average), last (historia logowań), ps oraz top do zaglądania w procesy.