Status Commands in Linux – date, ps, who, uptime, finger, rup, ruser

The status commands are UNIX commands, not specific shell commands.

Command Purpose
date Displays the current (system) date and time
ps Displays information about system processes
who Display which users are logged in to the system
rusers Displays the users on local area network (LAN) systems
finger Displays information about logged-in users
uptime Displays how long the system has been up
rup Displays how long LAN systems have been up (uptime for all network systems)
w Displays the output of the uptime command and then displays a list of the current activity on the system and what each user is doing

The date Command

If you create a script that writes a report, you might want the date and time to appear as an entry in the file. The date command prints a one-line output of the current date and time (system date and time).

# date
Tue Jun  9 11:36:00 UTC 2020

The ps Command

The ps command displays the current processes for the executing user.

# ps
  PID TTY          TIME CMD
 2281 pts/0    00:00:00 sudo
 2285 pts/0    00:00:00 su
 2286 pts/0    00:00:00 bash
 2477 pts/0    00:00:00 ps

The following table describes the meaning of the columns in the ps output.

Column Heading Meaning
PID The numerical process ID number
TTY The terminal number from which the process was initiated
TIME Shows how much central processing unit (CPU) time the process has consumed
CMD The name of the command that the process is executing
UUID The name of the user that started the process
PPID The parent process ID
C The processor utilization for scheduling (obsolete)
STIME The day the process was started

As shown in the following example, some options to the ps command expand the information that is displayed. The -f option displays the full listing and includes such information as the user’s login name, the process identification number (PID), the parent’s PID, and so on. The -e option displays all the processes on the system. You can combine these options.

# ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 11:29 ?        00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2     0  0 11:29 ?        00:00:00 [kthreadd]
root         4     2  0 11:29 ?        00:00:00 [kworker/0:0H]
root         5     2  0 11:29 ?        00:00:00 [kworker/u4:0]
root         6     2  0 11:29 ?        00:00:00 [ksoftirqd/0]
root         7     2  0 11:29 ?        00:00:00 [migration/0]
root         8     2  0 11:29 ?        00:00:00 [rcu_bh]
root         9     2  0 11:29 ?        00:00:00 [rcu_sched]
root        10     2  0 11:29 ?        00:00:00 [lru-add-drain]
root        11     2  0 11:29 ?        00:00:00 [watchdog/0]
root        12     2  0 11:29 ?        00:00:00 [watchdog/1]
root        13     2  0 11:29 ?        00:00:00 [migration/1]
root        14     2  0 11:29 ?        00:00:00 [ksoftirqd/1]
root        16     2  0 11:29 ?        00:00:00 [kworker/1:0H]
...

The who Command

In preparation for system administration tasks, it is important to know who is currently working on the system. The who command displays the list of currently logged-on users, at which terminal they are logged in, and the date and time they logged in.

# who
geek_user pts/0        2020-06-09 11:33 (192.168.1.39)
mike      pts/0        2020-06-09 10:21 (192.168.1.77)

The rusers Command

The rusers command polls the LAN and prints a list of all currently logged-in users. If a system does not have any logged-in users, no users are displayed in the list. The rusers command, however, forces all systems to be displayed, whether they have current users or not. Options also control the order of the display (sorted by system, sorted by user, and so on). The rusers command sometimes takes a long time to terminate. The information is printed quickly, but then the command pauses as if it is still searching for more users. Nothing usually prints after this, so you can kill the command with a Control-C (interrupt character).

# rusers
Sending broadcast for rusersd protocol version 3...
system01        mike
system09        john
system100       root milton

The finger Command

The finger command lists information about the users logged into the current system. The fields of information are:

  • The login name of the user
  • The real name of the user (as defined in the /etc/passwd file)
  • The terminal to which the user is logged in
  • The idle time (the amount of time since any keyboard activity was detected)
  • When the user logged in
  • Where the user logged in from (if the user remotely logged in from another system on the network)
# finger cloud_user
Login: cloud_user                 Name:
Directory: /home/cloud_user          Shell: /bin/bash
On since Tue Jun  9 11:33 (UTC) on pts/0 from 192.168.132.21
   3 seconds idle
No mail.
No Plan.

The uptime Command

The uptime command displays information about the status of the system. The fields are:
  • The current time
  • How long the system has been up (time since the system was last booted)
  • How many users are currently logged into the system
  • The load average. The load average is the average number of jobs (processes) in the run queue over the last 1 minute, 5 minutes, and 15 minutes
# uptime
 11:51:38 up 22 min,  1 user,  load average: 0.00, 0.05, 0.06

The rup Command

The rup command is similar to performing an uptime command for all systems on the LAN. The information is the same, except for these differences:

  • The name of the system is listed first
  • The date is not listed
  • The number of users is not listed
$ rup
system01     up 7 days, 6:47,    load average: 0.21, 0.21, 0.21
system09     up 4:20,            load average: 0.21, 0.26, 0.26
system11     up 15:53,           load average: 0.20, 0.16, 0.14
system19     up 2 days, 2:44,    load average: 0.00, 0.00, 0.01

The w Command

The w command first displays the output of the uptime command. Then the w command displays a list of the current activity on the system and what each user is doing. It gives the following information:

  • The user’s login name
  • The terminal at which the user logged in
  • The time the user logged in
  • The amount of time the user has been idle
  • The joint CPU (JCPU) time that all the processes of that terminal have consumed
  • The process CPU (PCPU) time that the currently active processes have consumed
  • The name and arguments of the current process
# w
 11:55:09 up 25 min,  1 user,  load average: 0.00, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
cloud_us pts/0    1.186.113.22     11:33    5.00s  0.23s  0.17s sshd: cloud_user [priv]
Related Post