W Command in Linux

Posted 

4 min read

In this article, we will talk about the w command.

w is a command-line utility that displays information about currently logged in users and what each user is doing. It also gives information about how long the system has been running, the current time, and the system load average.

How to Use the w Command

The syntax for the w command is as follows:

w [OPTIONS] [USER]

When w is invoked without any option or argument, the output looks something like this:

 21:41:07 up 12 days, 10:08,  2 users,  load average: 0.28, 0.20, 0.10
USER      TTY      FROM        LOGIN@   IDLE   JCPU   PCPU WHAT
root      pts/0    10.10.0.2   20:59    1.00s  0.02s  0.00s w
linuxize  pts/1    10.10.0.8   21:41    7.00s  0.00s  0.00s bash

The first line provides the same information as the uptime command. It contains the following columns:

  • 21:41:07- The current system time.
  • up 12 days, 10:08 - The length of time the system has been up.
  • 2 users - The number of logged-in users.
  • load average: 0.28, 0.20, 0.10 - The system load averages for the past 1, 5, and 15 minutes. The system load average is a measurement of the number of jobs that are currently running or waiting for disk I/O. It basically tells you how busy your system has been over the given interval.

The second line includes the following fields:

  • USER – The name of the logged user.
  • TTY – The name of the terminal used by the user.
  • FROM – The host name or IP address from where the user is logged in.
  • LOGIN@ – The time when the user logged in.
  • IDLE – The time since the user last interacted with the terminal. Idle time.
  • JCPU – The time used by all processes attached to the tty.
  • PCPU – The time used by the user's current process. The one displayed in the WHAT field.
  • WHAT – The user's current process and options/arguments.

The command then lists all currently logged in users and the information associated with them.

If you pass one or more user names as arguments to the w command, the output is restricted to the given users:

w linuxize
 22:08:55 up 12 days, 10:35,  2 users,  load average: 0.00, 0.06, 0.12
USER      TTY      FROM        LOGIN@   IDLE   JCPU   PCPU WHAT
linuxize  pts/1    10.10.0.8   21:41    27:55   0.00s  0.00s bash

w Command Options

w accepts several options that are rarely used.

The -h, --no-header option tells w not to print the header:

w -h

Only the information about the logged in users is printed:

root      pts/0    10.10.0.2   20:59    1.00s  0.02s  0.00s w -h
linuxize  pts/1    10.10.0.8   21:41    7.00s  0.00s  0.00s bash

The -f, --from option toggles the FROM field. Whether this filed is shown or hidden by default depend on the distribution you're using

w -f
 22:48:39 up 12 days, 11:15,  2 users,  load average: 0.03, 0.02, 0.00
USER      TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
root      pts/0     20:59    5.00s  0.03s  0.01s bash
linuxize  pts/1     21:41    1.00s  0.02s  0.00s w -f

The -o, --old-style option, tells w to use the old style output. When this option is used, the command prints blank space when IDLE, JCPU, and PCPU times are less than one minute.

w -o
 22:50:33 up 12 days, 11:17,  2 users,  load average: 0.14, 0.04, 0.01
USER      TTY      FROM        LOGIN@   IDLE   JCPU   PCPU WHAT
root      pts/0    10.10.0.2   20:59    1:59m               bash
linuxize  pts/1    10.10.0.8   21:41                        w -o

The -s, --short option tells w to use the short style output. When this option is used, the LOGIN@, JCPU, and PCPU fields are not printed.

w -s
 22:51:48 up 12 days, 11:18,  2 users,  load average: 0.04, 0.03, 0.00
USER      TTY      FROM         IDLE WHAT
root      pts/0    10.10.0.2    3:14  bash
linuxize  pts/1    10.10.0.8    2.00s w -s

The -i, --ip-addr option forces w to always show IP address instead of hostname in the FROM field.

w -i

Conclusion

The w command prints information about the system's activity and logged in users. For more information, type man w in your terminal.

If you have any question, please leave a comment below.