Comando w in Linux: sessioni, inattività e tempi CPU degli utenti

w mostra le sessioni degli utenti e informazioni sulle attività associate ai loro terminali, come inattività e comando corrente. Offre una vista più dettagliata di who, che si concentra sull'elenco degli accessi. È una fotografia del momento, non l'inventario completo di tutti i processi o delle attività di una persona.

Nell'implementazione procps-ng, una raccolta di strumenti per osservare i processi su Linux, l'intestazione riporta normalmente ora corrente, tempo di funzionamento del sistema, numero di utenti registrati e medie di carico. Le righe successive descrivono le sessioni. Colonne, fonti dei dati e opzioni disponibili possono variare con versione e configurazione della distribuzione.

Sintassi e prima lettura del sistema

w [opzione...] [utente]

Questa è la notazione della sintassi, non un comando da copiare con le parentesi quadre. Su Linux con procps-ng disponibile esegui:

w

Confronta prima l'intestazione con la macchina che stai esaminando. Il tempo di funzionamento indica da quanto il sistema è avviato; non è la durata di ogni login. Le tre medie di carico riguardano gli ultimi 1, 5 e 15 minuti.

Su Linux il carico medio considera attività eseguibili o in attesa non interrompibile, tipicamente per operazioni di ingresso/uscita. Non è una percentuale di utilizzo della CPU (unità centrale di elaborazione): un valore alto non permette da solo di distinguere saturazione della CPU e attese di ingresso/uscita. Per approfondire occorrono anche altre misure del sistema.

Usa w --help, w -V e man w per controllare la versione installata. Qui i comandi e la lettura dei campi sono stati confrontati con i manuali di procps-ng e Linux: l'ambiente locale Windows Git non dispone di w né di un ambiente WSL utilizzabile, quindi non è stata eseguita una prova locale delle sessioni Linux.

Limitare le righe a un utente

w alice

L'argomento alice limita le informazioni a quell'utente. È un nome di esempio: sostituiscilo con l'account che vuoi osservare. Non serve creare un nuovo account per seguire la spiegazione e il comando non assume l'identità dell'utente indicato.

Se non compaiono righe, verifica che ci siano sessioni riconosciute per quel nome e che il contesto sia quello corretto. L'assenza di una sessione nell'elenco non dimostra che l'account sia inesistente o privo di processi. Inoltre, non dedurre automaticamente dal riepilogo di sistema un conteggio limitato alle righe filtrate.

Nascondere l'intestazione

w -h

L'opzione h elimina l'intestazione, lasciando le righe delle sessioni disponibili. Non significa chiedere aiuto: per la guida di procps-ng usa --help. In particolare, non interpretare -h come la sola rimozione della prima riga se l'uscita contiene anche una riga con i nomi delle colonne.

Prima di usare questa vista, esegui w senza opzioni per riconoscere le colonne effettive. L'uscita è destinata alla lettura umana: larghezze, campi e formati dei tempi possono cambiare, quindi non trattare una posizione fissa del testo come un'interfaccia stabile per uno script.

Interpretare una riga e i tempi CPU

w -h

Un esempio illustrativo, con la colonna remota presente e nel formato lungo, è:

alice pts/0 192.0.2.10 09:00 2:10 0.01s 0.01s vim notes.txt

Le parti indicano utente alice, terminale pts/0, origine remota, ora di accesso, inattività, JCPU, PCPU e comando corrente. Nome, indirizzo, orario e valori sono dati dell'esempio; la tua uscita può avere colonne diverse. Il testo vim notes.txt nella colonna WHAT identifica l'attività selezionata da w per quella sessione, non un comando che devi eseguire per usare w.

  • IDLE indica l'inattività del terminale secondo i dati consultati. Non equivale al tempo trascorso dal login e non dimostra che la CPU sia inattiva. Alcuni tipi di sessione grafica possono produrre una misura poco rappresentativa.
  • JCPU somma il tempo CPU dei processi associati al terminale. Secondo il manuale di procps-ng include le attività in background ancora in esecuzione, ma non quelle in background già terminate.
  • PCPU è il tempo CPU del processo corrente identificato da WHAT. È una misura temporale riferita a quel processo, non la percentuale di CPU usata da tutto il sistema.
  • WHAT riassume la riga di comando del processo selezionato. Non elenca tutti i lavori in background né tutta la cronologia dei comandi dell'utente.

Opzioni e limiti delle fonti di sessione

Opzione procps-ng Effetto
-h Nasconde l'intestazione, lasciando le righe delle sessioni.
-s Usa il formato breve, omettendo ora di accesso, JCPU e PCPU.
-f Inverte la visualizzazione della colonna FROM rispetto all'impostazione predefinita della build.
-i Richiede un indirizzo IP nel campo remoto; può essere ignorata con la fonte systemd.

Per confrontare i formati usa w -s e poi w sullo stesso sistema. Con w -f la colonna remota viene attivata o disattivata rispetto al comportamento predefinito: non dare per scontato che l'opzione la mostri sempre. La scelta predefinita può essere diversa tra le distribuzioni.

Per la fonte di sessione systemd, il manuale corrente segnala che -i è ignorata e FROM può contenere un nome o un indirizzo IP. La richiesta di un formato IP non è quindi una garanzia universale. Verifica prima quale versione e quale fonte di dati stai usando.

Procps-ng può ricavare le sessioni da systemd o dai registri utmp, mentre le informazioni sui processi provengono da /proc. In un contenitore o in un ambiente senza sessioni registrate può mancare parte della vista, anche se sono presenti processi. L'assenza di righe e il valore di WHAT devono essere interpretati nel contesto in cui gira il comando.

Per un controllo puntuale osserva il processo interessato con gli strumenti di gestione dei processi del sistema e confronta le informazioni con il servizio di accesso. Non usare w come storico completo o come prova che tutte le attività di un account siano visibili. Le variazioni tra due stampe possono dipendere semplicemente dal fatto che i processi nel frattempo sono cambiati.

Domanda frequente

Quando conviene usare w invece di who?

Who è adatto a una prima lista delle sessioni registrate, con terminali e orari. W aggiunge una vista dell'attività, dell'inattività e dei tempi CPU associati alle sessioni. Entrambi dipendono dalle fonti disponibili: nessuno dei due sostituisce un elenco completo dei processi o un registro storico degli accessi.

Documentazione di riferimento

Il manuale del progetto procps-ng per w descrive colonne, opzioni e limiti delle sessioni systemd. La documentazione del progetto Linux man-pages su /proc/loadavg chiarisce il significato delle medie di carico. Le copie sono pubblicate su man7.org; confrontale con il manuale della versione installata.