In this article, we will be going through the who command in Unix Operating System. This is a widely used command that can provide information related to processes, users, and run levels of the Operating System. We will also go through what is run levels output by this command and a few examples to demonstrate the working.
What is the use of the who command in Unix?
It is very helpful for UNIX and UNIX-like system users which tells you the following information regarding the Operating System.
- Time spent since the last boot
- The information of currently logged in users
- The run level of the system currently
The syntax is:
$ who <options> <file>
It prints the following attributes of the users with no option provided:
- Name of the respective users
- Terminal Line numbers
- Login time of each user
- The remote host username for each user
Below is the output of the command without any option:
What are run levels?
Runlevels are the several predefined complexity levels of the operating system.
- Runlevel 0: Power is turned off.
- Runlevel 1: single-user root mode; no network, no extras, just get root into the system - commonly used as "recovery mode" to remedy things that went wrong but not disastrously (horribly wrong usually requires live media boot to fix).
- Runlevel 2: Denotes a multi-user environment with no network connectivity. Because the network isn't enabled, many people can log in, but they must do so from the local console.
- Runlevel 3: Networked multi-user. Multiple users, including those from faraway systems, can log in (e.g., via SSH). This is an example of a Text User Interface (TUI)/command-line interface run level.
- Runlevel 4: This may be altered in any way you desire - pretty much anything goes.
- Runlevel 5: Graphical User Interface (GUI), multi-user with a network; this provides a graphical login screen and defaults to a graphical desktop interface rather than a plain text terminal.
- Runlevel 6: Restart
1. Display the current run-level of the system
$ who -r
2. Display details of currently logged-in users
$ who -a
3. To list the active processes spawned by the INIT:
$ who -p -H
4. To see the list of users currently logged in to the system:
$ who -u
5. Time at which the system booted last
$ who -b -H
6. To get the list of dead processes
$ who -d -H
7. To get a count of currently logged in users
$ who -q -H
We discussed the who command of UNIX and UNIX-like Operating Systems which you can use to get information related to users and run levels. It also provides various options to track the count of users, time of boot and logins, processes, etc. related to the Operating System.
People are also reading: