img

UNIX / Linux List Current Logged In Users

September 8, 2019

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.

[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.

Examples

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.

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 (10.1.3.177)

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 (10.1.3.177)
           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

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Article Tags:
Article Categories:
How To

Comments are closed.