Linux – How to list all users that have terminal sessions, including screen sessions

bashgnu-screenlinux

I would like to have a list of all users that are active on my Linux system, including those who have running but detached screen sessions. The who command only shows me currently logged in users, but not users with detached screen sessions and the like.

I was contemplating parsing the output of ps but that would also make a user show if if he has a cron job running.

Best Answer

Try:

$ ps axno user,tty | awk '$1 >= 1000 && $1 < 65530 && $2 != "?"' | sort -u

This should tell you all UIDs with processes with a session terminal (like a window in screen). I use the UID to be weed out the 'system' users (like apache) and nobody (high UID), and ignore daemons.

Related Question