[Tip] How to display the number of logged-in users


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users [Tip] How to display the number of logged-in users
# 1  
[Tip] How to display the logged-in users

In a professional environment with traditional application you often want (or are asked) to report the users.
Traditionally there is the who command
Code:
who | awk '{print $1}'

telnetd or sshd register the users in the utmp file, to be shown with who, w, users, finger, pinky, ...
In addition they register the users in the wtmp file, to be shown with the last command.
Also traditional shell windows like xterm do it.

But recent gnome-terminal and mate-terminal have dropped support for utmp/wtmp.
There seems to be an agreement among desktop developers.
Another example:
When starting a desktop, the first shell on the system no longer registers to utmp/wtmp.
(Further, it does not even run as a login shell. I.e. it does not read .profile. Linux distros do crazy work-arounds like sourcing .profile from the system's bashrc.)

Multi-desktop/application providers like Citrix (with products XenApp/XenDesktop for Linux) no longer do a registration.

Now to the solutions. I found the best way is to run a ps command.
As stated by How to see how many users in Linux:
Code:
ps -eaho user | sort -u

Of course this is incorrect in Linux: the h option is BSD-only and forces the ps into BSD mode. And by convention you should not use a dash then.
Correction:
Code:
ps aho user | sort -u

Removing the duplicates with awk is faster than sort -u
Code:
ps aho user | awk 'u[$1]++==0'

How to do this on Posix-compatible systems?
There is no "show for all users with tty" option.
But one can display the ttys and let awk select the valid ones
Code:
ps -e -o tty= -o user= | awk '$1~/[^?]/ && u[$2]++==0 {print $2}'

Note: the user= must be last, otherwise the chance is high that long usernames are truncated (e.g. Linux does it).

Last edited by MadeInGermany; 07-01-2019 at 05:15 PM.. Reason: title corrected
These 6 Users Gave Thanks to MadeInGermany For This Post:
# 2  
Thanks for the info!
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #686
Difficulty: Medium
In reverse Polish notation, the operators follow their operands; for instance, to add 3 and 4, one would write 3 4 + rather than 3 + 4.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Total number of users logged in a server from uptime

how to find out total number of users logged in a server from uptime . i mean to say i need the total output of unix command . who gives the out put at a particular time . I need at all time from which machine who has connected , (3 Replies)
Discussion started by: amiya.te@gmail
3 Replies

2. Shell Programming and Scripting

Sorting the users logged in according to the number of processes

Is it possible to get a list of users sorted by the number of processes executed by each. I have a HP - UX server with 2800 processes running currently. And I want to know the number of processes owned by each person logged in to that server.something like below: user1 : 150 Processes user2 :... (2 Replies)
Discussion started by: engineer
2 Replies

3. Shell Programming and Scripting

number of users logged in script

My admin needs a shell script in Korn that will show conditions based on users logged in. I have never used the Korn shell and have no clue what I am doing, can anyone help. here are the conditions that need to be returned. if users are below 5 displays should be: performance is high if... (1 Reply)
Discussion started by: vthokiefan
1 Replies

4. Shell Programming and Scripting

Bash Help: users who are not logged into the system to display

A Newbie here, I am working on a script and am having problems with the else part of the script. I can't get the users who are not logged into the system to display on the screen with their username and the text "The user is not logged in". I am sure it is something simple and stupid, but I... (5 Replies)
Discussion started by: rchirico
5 Replies

5. UNIX for Dummies Questions & Answers

How many users are logged in?

How do I find this out? I have a feeling its a simple command such as who, but I just don't know what it is. I've had a search on here but either I can't put it into the right search criteria or there isn't a topic on it. Thanks. EDIT: Delete this thread, as I posted it I noticed the... (0 Replies)
Discussion started by: chris_rabz
0 Replies

6. Programming

Get the list of logged in users

How can I get the list of logged in users in the system programmatically? I can get the list with 'who' or 'users' commands but I need to get the list programmatically... May someone help, please? Thanks in advance. (2 Replies)
Discussion started by: xyzt
2 Replies

7. Shell Programming and Scripting

Users Not Logged in

I have searched the forums but have not mangaed to quite find what im looking for. I have used to /etc/passwd command to present me a list of all users the who command to present all users currently logged on, but what i want to know is what command can i use to display users that are registered... (12 Replies)
Discussion started by: warlock129
12 Replies

8. Post Here to Contact Site Administrators and Moderators

logged out users

how to find out users who logged out within 5 minutes (1 Reply)
Discussion started by: roshni
1 Replies

9. Shell Programming and Scripting

to find the number of users logged in

Hi, can u say to display the number of users that logged before me. thanks (10 Replies)
Discussion started by: shanshine
10 Replies

10. Shell Programming and Scripting

how many users logged

in unix what is the syntax to find out how many users are currently logged in (4 Replies)
Discussion started by: trichyselva
4 Replies

Featured Tech Videos