Oct 6, 2023 4 min read

w command in Linux

Discuss w command in linux with our step-by-step tutorial. It is an application that provides information about presently logged-in users.

W Command in Linux
Table of Contents

Introduction

Before we discuss about w command in linux, let's understand-What is w command ?

w is a command-line application that provides information about presently logged-in users and their activities. It also tells you how long the system has been running, the current time, and the average system load.

In this tutorial, we will discuss the w command.

How to Use the w Command

Below is the syntax for w command:

w [OPTIONS] [USER]

The output of w when run without any options or arguments looks like this:

Output

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
vegastack  pts/1    10.10.0.8   21:41    7.00s  0.00s  0.00s bash

The first line is identical to the uptime command in terms of information. The following columns are included:

  • 21:41:07 - The current time on the system.
  • up 12 days, 10:08 - The amount of time the system has been operational.
  • 2 users - The total number of users who have logged in.
  • load average: 0.28, 0.20, 0.10 - The average system load during the last 1, 5, and 15 minutes. The system load average is a figure that indicates how many jobs are currently executing or waiting for disk I/O. It essentially informs you how busy your system has been throughout the specified time period.

The fields on the second line are as follows:

  • USER - The logged-in user's name.
  • TTY - The user's preferred terminal's name.
  • FROM - The host name or IP address of the user's login computer.
  • LOGIN@ - The time the user first logged in.
  • IDLE - The amount of time since the user last used the terminal. Idle time.
  • JCPU - The total amount of time spent by all processes connected to the tty.
  • PCPU - The amount of time spent on the current task by the user. The one that appears in the WHAT field.
  • WHAT - The current process and options/arguments of the user.

The command then displays a list of all presently logged in users and their associated information.

If you supply the w command one or more user names as arguments, the output is limited to those users:

w vegastack
Output

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
vegastack  pts/1    10.10.0.8   21:41    27:55   0.00s  0.00s bash

w reads the /var/run/utmp file for information about logged-in users.

w Command Options

w allows a number of infrequently used options.

w will not print the header if you provide the -h, --no-header option:

w -h

Only the following data about logged-in users is printed:

Output

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

The FROM field is toggled with the -f, --from option. The default visibility of this field depends on the distribution you're using.

w -f
Output

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
vegastack  pts/1     21:41    1.00s  0.02s  0.00s w -f

The --old-style option instructs w to use the old output style. When the IDLE, JCPU, and PCPU periods are less than one minute, the command prints blank space.

w -o
Output

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
vegastack  pts/1    10.10.0.8   21:41                        w -o

The -s, --short option instructs w to output in the short style. The LOGIN@, JCPU, and PCPU fields are not printed when this option is selected.

w -s
Output

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
vegastack  pts/1    10.10.0.8    2.00s w -s

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

w -i

FAQs on w command in Linux

What information does the w command display?

The w command displays information about the currently logged-in users, including their username, terminal, login time, idle time, JCPU (CPU time used by all processes), PCPU (CPU time used by the current process), and the command they are executing.

Can I use the w command to see who is logged in to a remote machine?

Yes, the w command can display information about users logged in to both local and remote machines if you have proper access to the remote system.

How does the w command calculate idle time?

The idle time displayed by the w command is calculated by subtracting the user's login time from the current time. If a user is active, their idle time will be shown as "tty".

What does the JCPU column represent in the w command output?

The JCPU column indicates the amount of CPU time used by all processes associated with a specific user.

What does the PCPU column represent in the w command output?

The PCPU column represents the percentage of CPU time used by the currently active process.


How can I sort the output of the w command based on specific columns? 

To sort the output based on specific columns, you can use the --sort option followed by the column name. For example, w --sort=user will sort the output based on the username.

Can the w command display system load average information?

Yes, the w command displays the system load average at the top of the output. The load average provides information about the average number of processes in the ready-to-run or waiting state over a certain period.

Conclusion

The w command prints system activity and logged-in users information. In your terminal, type man w for more details.

If you have any queries, please leave a comment below and we’ll be happy to respond to them.

Great! You’ve successfully signed up.
Welcome back! You've successfully signed in.
You've successfully subscribed to DevOps Tutorials - VegaStack.
Your link has expired.
Success! Check your email for magic link to sign-in.
Success! Your billing info has been updated.
Your billing was not updated.