who command in Linux

who command is used to find out the following information :
1. Time of last system boot
2. Current run level of the system
3. List of logged in users and more.

Description : The who command is used to get information about currently logged in user on to system.

Syntax : $who [options] [filename] 

Examples :
1. The who command displays the following information for each user currently logged in to the system if no option is provided :

  1. Login name of the users
  2. Terminal line numbers
  3. Login time of the users in to system
  4. Remote host name of the user
hduser@mahesh-Inspiron-3543:~$ who
hduser   tty7         2018-03-18 19:08 (:0)
hduser@mahesh-Inspiron-3543:~$ 

2. To display host name and user associated with standard input such as keyboard

hduser@mahesh-Inspiron-3543:~$ who -m -H
NAME     LINE         TIME             COMMENT

3. To show all active processes which are spawned by INIT process



hduser@mahesh-Inspiron-3543:~$ who -p -H
NAME     LINE         TIME                    PID COMMENT

4. To show status of the users message as +, – or ?

hduser@mahesh-Inspiron-3543:~$ who -T -H
NAME       LINE         TIME             COMMENT
hduser   + tty7         2018-03-18 19:08 (:0)

5. To show list of users logged in to system

hduser@mahesh-Inspiron-3543:~$ who -u
hduser   tty7         2018-03-18 19:08 01:16        3357 (:0)

6. To show time of the system when it booted last time

hduser@mahesh-Inspiron-3543:~$ who -b -H
NAME     LINE         TIME                    PID COMMENT
         system boot  2018-03-18 19:07

7. To show details of all dead processes

hduser@mahesh-Inspiron-3543:~$ who -d -H (NO dead process in this case)
NAME     LINE         TIME             IDLE          PID COMMENT  EXIT 
NAME     LINE         TIME             IDLE          PID COMMENT  EXIT

8. To show system login process details

hduser@mahesh-Inspiron-3543:~$ who -l -H
NAME     LINE         TIME             IDLE          PID COMMENT
LOGIN    tty1         2018-03-18 19:07              3073 id=tty1

9. To count number of users logged on to system

hduser@mahesh-Inspiron-3543:~$ who -q -H
hduser
# users=1

10. To display current run level of the system

hduser@mahesh-Inspiron-3543:~$ who -r
         run-level 5  2018-03-18 19:07

11. To display all details of current logged in user

hduser@mahesh-Inspiron-3543:~$ who -a
           system boot  2018-03-18 19:07
LOGIN      tty1         2018-03-18 19:07              3073 id=tty1
           run-level 5  2018-03-18 19:07
hduser   + tty7         2018-03-18 19:08 01:13        3357 (:0)

12. To display system’s username

hduser@mahesh-Inspiron-3543:~$ whoami
hduser

13. To display list of users and their activities

hduser@mahesh-Inspiron-3543:~$ w
 20:39:20 up  1:32,  1 user,  load average: 0.09, 0.06, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
hduser   tty7     :0               19:08    1:32m 38.95s  0.19s /sbin/upstart -

14. To display user identification information

hduser@mahesh-Inspiron-3543:~$ id
uid=1001(hduser) gid=1001(hadoop) groups=1001(hadoop), 27(sudo)

Note : For more details, refer linux man page.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.