who is a very basic Linux command that is easy to learn and frequently comes in handy for Linux system administrators. It is a good way to see what users are logged into the system and information about each session. In this tutorial, we will explain how to use the
who command on a Linux system, and go over all of its command line options. Follow along with our examples and you will quickly master this command and understand which situations it is most useful in.
In this tutorial you will learn:
- How to use the
whocommand and its options on Linux
|Requirements, Conventions or Software Version Used
|Any Linux distro
|Privileged access to your Linux system as root or via the
# – requires given linux commands to be executed with root privileges either directly as a root user or by use of
$ – requires given linux commands to be executed as a regular non-privileged user
Who Linux command: Explained
The examples below show various command line options to use with
who and will explain what each of them do. Try out these Linux commands on your own system to quickly become familiar with them.
- The most basic way to use the
whocommand is to enter the command by itself with no further options:
$ who linuxconfig tty2 2023-02-12 23:13 (tty2)
The output will list information for each user logged into the system, one per line. The first piece of data we see in our output is the username
linuxconfig. The second piece of data is the terminal the user is connected to – in our example, that is
tty2. The third set of info
2023-02-12 23:13is the date and time when the user’s login session started. And the fourth piece of info
(tty2)is the hostname or IP address from which the user is connecting – in our case, it just shows the terminal name since we are connected locally.
- To make the data we are looking at a little more obvious, we can add the
-H(heading) option which will tell us what each column is.
$ who -H NAME LINE TIME COMMENT linuxconfig tty2 2023-02-12 23:13 (tty2)
- To show all the information that
whois capable of, we can append the
-a(all) option. This is equivalent to running the
-bdprtTu --loginoptions and is a nice way of quickly getting all possible relevant information from the command.
$ who -a system boot 2023-02-12 23:13 linuxconfig + tty2 2023-02-12 23:13 old 1170 (tty2) run-level 5 2023-02-12 23:13 pts/1 2023-02-12 23:18 2209 id=ts/1 term=0 exit=0
We see information about logged in users (as shown in Example 1), when the system was booted up, what runlevel we are currently in, and some more information that will be elaborated on later.
- To make
whoshow the IP addresses (instead of hostnames) of all logged in users, append the
$ who --ips
- To see when the system was last booted, we can use the
$ who -b system boot 2023-02-12 23:13
When looking for this information, you may also be interested in running the uptime command.
-d(dead) option will print all dead processes to terminal:
$ who -d
--loginoption will print all system login processes to terminal:
$ who --login
-moption will only show hostname and related information for the user associated with stdin. If entering the
whocommand manually, then this would mean whichever account you are currently using:
$ who -m
--processoption will display active processes spawned by init.
$ who -p
- To get a quick list of all logged in users and the total number of users logged in, supply the
$ who -q linuxconfig # users=1
- To display the current runlevel of the system, use the
$ who -r run-level 5 2023-02-12 23:13
For more information about runlevels and systemd targets, see our tutorial on How to check a current runlevel of your Linux system.
w command is another useful way to get even more in depth information about the users logged into the system. And the
whoami command is the easiest way to quickly check which user you are logged in as or running a command as.
In this tutorial, we saw how to use the
who command and all of its options on a Linux system.
who is a basic command but can be useful to quickly display essential information about users logged into the system, current runlevel, and when the system was last booted, etc. Linux administrators should remember the
-a option to easily display all the relevant information from
who, and remember the command’s close cousins, the