上一篇                     
               
			  Linux如何实时查看在线用户人数?,一招搞定Linux用户登录数查询
- Linux
 - 2025-06-11
 - 4230
 
 在Linux中,使用
 
 
who命令查看登录用户列表,执行
 who | wc -l统计登录会话数(含重复登录),使用
 w命令首行直接显示当前登录用户数(会话数),若需唯一用户数,运行
 who | awk '{print $1}' | sort -u | wc -l。
在Linux系统中,实时监控登录用户数量是系统管理和安全审计的基础操作,无论是排查异常登录、分配资源还是维护系统安全,掌握以下方法至关重要,以下是6种专业可靠的方法,均通过终端命令实现:
 方法1:who 命令(推荐)
 
命令:
who | wc -l
作用:
who列出当前所有登录用户及终端信息wc -l统计行数(即用户数)
输出示例:user1 tty1 2025-10-01 09:30 user2 pts/0 2025-10-01 10:15 (192.168.1.5) # 执行统计后显示:2
适用场景:快速查看活跃登录数,无需安装额外工具。
 方法2:w 命令(详细信息)
 
命令:
w -h | wc -l
作用:
w -h隐藏表头,直接输出用户列表- 统计结果更精准(包含用户名、IP、进程等)
输出示例:
10:20:01 up 2 days, 5 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT user1 tty1 - 09:30 2:00m 0.10s 0.00s /bin/bash # 统计后显示:1(忽略表头行)
优势:同时显示用户活动状态,适合深度监控。
 
 方法3:users 命令(极简列表)
 
命令:
users | tr ' ' 'n' | sort | uniq | wc -l
作用:
users输出所有登录用户名(重复显示多终端登录)tr+sort+uniq去重后统计独立用户数
输出示例:user1 user1 user2 # 统计后显示:2(user1重复登录两次,但计为1个用户)
适用场景:精确计算独立用户数量,忽略同一用户的多终端登录。
⏳ 方法4:last 命令(历史登录审计)
 
命令:

last | grep "still logged in" | wc -l
作用:
- 筛选 
still logged in状态(当前仍在线) - 统计结果包含所有终端(包括GUI/TTY)
输出示例:user1 tty1 still logged in Mon Oct 1 09:30 user2 pts/0 192.168.1.5 still logged in Mon Oct 1 10:15 # 统计后显示:2
优势:兼容性强,适用于所有Linux发行版。
 
️ 方法5:检查 /var/run/utmp 文件(底层数据)
 
命令:
utmpdump /var/run/utmp | grep -c "LOGIN_PROCESS"
作用:
utmpdump解析登录记录文件(需安装sysvinit-utils包)grep -c统计活跃会话数
适用场景:脚本自动化处理或审计场景。
 方法6:finger 命令(需安装)
 
安装与使用:

sudo apt install finger # Debian/Ubuntu sudo yum install finger # CentOS/RHEL finger | grep -v "Login" | wc -l # 排除表头后统计
输出示例:
Login Name Tty Idle Login Time Office user1 tty1 2:00 Oct 1 09:30 # 统计后显示:1
注意:非默认安装,适用于需要详细用户信息的场景。
总结与建议
| 场景 | 推荐命令 | 特点 | 
|---|---|---|
| 快速统计当前用户数 | who |  
   简单高效,系统预装 | 
| 查看用户活动详情 | w |  
   包含IP、进程等关键信息 | 
| 精确计算独立用户 | users |  
   自动去重 | 
| 审计历史登录记录 | last |  
   支持时间范围筛选 | 
最佳实践:日常使用
who | wc -l或w -h | wc -l即可满足需求;安全审计建议结合last和/var/run/utmp分析。
安全提示:
- 定期检查登录用户可及时发现未授权访问(如陌生IP或用户名)
 - 可疑登录立即用 
pkill -KILL -t [终端名]强制下线 - 关键服务器建议启用 
fail2ban或配置SSH密钥认证 
引用说明: 基于Linux核心工具(GNU coreutils)的官方文档及man手册页验证,符合POSIX标准,数据来源包括: 
- Linux Programmer’s Manual (
man who,man w) - The Open Group Base Specifications Issue 7 (IEEE Std 1003.1)
 - Ubuntu Manpage Repository (utmpdump, finger)
 
操作前请确保您拥有合法权限,避免对生产环境造成影响。
			
			
			
			
			
			
			
			