UNIX / Linux List Current Logged In Users

How do I print the user names of users currently logged in to the current UNIX / Linux host / server from a command prompt?

You need to use any one of the following tool.


[a] w command – Shows information about the users currently on the machine, and their processes.
Tutorial details
Difficulty Easy (rss)
Root privileges No
Requirements w or who command
Time N/A
[b] who command – Shows information about users who are currently logged in.

[c] users command – Shows the login names of the users currently on the system, in sorted order, space separated, on a single line. It reads all information from /var/run/utmp file.


Open a terminal (or login into remote server using ssh command) and type the following commands.

w command

Type the w command:
$ w
Sample outputs:

Fig.01: w command in action.

Fig.01: w command in action.

To see info about a user named tom, enter:
# w tom

who command

who command works on all Unix like operating systems:
# who
Sample outputs:

root     pts/0        2013-03-12 15:10 (

Pass the -a option to who command:
# who -a
Sample outputs:

           system boot  2013-03-02 04:10
           run-level 3  2013-03-02 04:10
LOGIN      /dev/ttyS1   2013-03-02 04:11              7951 id=v/tt
LOGIN      tty2         2013-03-02 04:11              7953 id=2
LOGIN      tty1         2013-03-02 04:11              7950 id=1
LOGIN      tty3         2013-03-02 04:11              7955 id=3
LOGIN      tty4         2013-03-02 04:11              7957 id=4
LOGIN      tty5         2013-03-02 04:11              7959 id=5
LOGIN      tty6         2013-03-02 04:11              7961 id=6
root     + pts/0        2013-03-12 15:10   .          7451 (
           pts/1        2013-03-08 12:29             23510 id=ts/1  term=0 exit=0

Other options

You can pass the following options to the who command (taken from the who command man page):

Just open a  -a, --all         same as -b -d --login -p -r -t -T -u
  -b, --boot        time of last system boot
  -d, --dead        print dead processes
  -H, --heading     print line of column headings
  -l, --login       print system login processes
      --lookup      attempt to canonicalize hostnames via DNS
  -m                only hostname and user associated with stdin
  -p, --process     print active processes spawned by init
  -q, --count       all login names and number of users logged on
  -r, --runlevel    print current runlevel
  -s, --short       print only name, line, and time (default)
  -t, --time        print last system clock change
  -T, -w, --mesg    add user's message status as +, - or ?
  -u, --users       list users logged in
      --message     same as -T
      --writable    same as -T
      --help     display this help and exit
      --version  output version information and exit

users command

Open a terminal or login over the ssh session and enter the following command:
$ users
Sample outputs:

abhi charvi vivek vivek zcafe
🐧 If you liked this page, please support my work on Patreon or with a donation.
🐧 Get the latest tutorials on SysAdmin, Linux/Unix, Open Source/DevOps topics:
CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04

14 comments… add one
  • confy Mar 19, 2008 @ 22:33

    but why not using “w”??

    confy@live:~$ w
    00:35:35 up 13 days, 1:35, 2 users, load average: 0.27, 0.34, 0.58
    confy tty7 :0 06Mar08 0.00s 3:06 1.59s x-session-manager
    confy pts/0 :0.0 00:33 0.00s 0.09s 0.00s w

    • هادی Jan 24, 2012 @ 22:07

      tnx a lot

  • 4F2E4A2E Oct 14, 2009 @ 5:42

    the awesome w :)

  • Ant May 27, 2011 @ 1:28

    I have a .txt file with denied users listed on it. Is there any way I can run a loop to regularly compare the ‘who’ or ‘users’ output with the list to see if denied users are logging on? I do not want to block the users completely. I am new to unix, any help would be much appreciated.

  • dikshitha Nov 18, 2011 @ 5:31

    we are using linux through putty.
    I want to get an alert when user logged in.how can we write code for that?

    • totosus Mar 22, 2012 @ 12:33

      write a bash script which stores a list of users from the previous output of users and runs it, say, once every ten seconds, and says “user user logged in/out” if something has changed. then run it with

      script.sh &

      . After that it will run in the background, but all output will go to your console, so you could work and see what it says. If you feel that you need to do so, you may add this line in the end of your


      file, so that it starts every time you log in.

  • madami Feb 12, 2013 @ 6:22

    w – the better option here

  • Sushil R Aug 24, 2013 @ 20:27

    Hi Sir,

    I have a linux server, for which i have given ssh access to remote users.so now i want some kind of shell script who keep an eye on this ssh users and email me whenever they ssh into my machine.

    sir it possible ? please reply

  • sulut Oct 17, 2013 @ 2:10

    Nice thread. it help sys.admin to show users inactive on a server

  • Wakatana Oct 20, 2013 @ 19:34

    This does not print users logged throught X sessions

  • kishore Apr 7, 2014 @ 11:06

    Unforunately I killed root user with

    pkill -STOP -u root on remote server, now I am unable to connect the remote server, what should I do now, please help me.


    • bob May 20, 2015 @ 15:01

      Plug your keyboard (a screen can be useful too) on the server and use “pReborn -potion -u root”

  • chandrasekara n Jun 20, 2016 @ 4:26

    hi sir,
    where can i find the number of users loggd in proc folder?

  • Kavya Dec 6, 2017 @ 10:00


    I am using ‘su’ to login as super user to run batch jobs, but if I have to get my user id (say ‘abc’) though logged in as super user. Any way to get this details?

Leave a Reply

Your email address will not be published.

Use HTML <pre>...</pre>, <code>...</code> and <kbd>...</kbd> for code samples.