当前位置:首页 > Linux > 正文

Linux如何实时查看在线用户人数?,一招搞定Linux用户登录数查询

在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、进程等)
    输出示例

    Linux如何实时查看在线用户人数?,一招搞定Linux用户登录数查询  第1张

    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 -lw -h | wc -l 即可满足需求;安全审计建议结合 last/var/run/utmp 分析。


安全提示:

  • 定期检查登录用户可及时发现未授权访问(如陌生IP或用户名)
  • 可疑登录立即用 pkill -KILL -t [终端名] 强制下线
  • 关键服务器建议启用 fail2ban 或配置SSH密钥认证

引用说明: 基于Linux核心工具(GNU coreutils)的官方文档及man手册页验证,符合POSIX标准,数据来源包括:

  1. Linux Programmer’s Manual (man who, man w)
  2. The Open Group Base Specifications Issue 7 (IEEE Std 1003.1)
  3. Ubuntu Manpage Repository (utmpdump, finger)

操作前请确保您拥有合法权限,避免对生产环境造成影响。

0