w

Pokazuje zalogowanych użytkowników i procesy, które aktualnie wykonują.

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 do grep albo awk w 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.