首页 > Sysadmin > 正文

Linux 查看当前登录用户:5 条常用命令

huyuanwen 2026-11-03 Sysadmin

用 who、w、users、whoami 和 id 查看登录用户、终端、空闲时间和当前身份。

用 who 查看登录明细

who 读取 /var/run/utmp 输出当前登录用户、终端、时间和远程地址[1]。

who

输出示例:

huyuanwen pts/1        2026-11-03 04:51

加 -q 只列出用户名和总人数;加 -uH 显示列头和 idle 时间;who am i 等价于 who -m,仅看当前终端关联的登录[1]。

用 w 看用户在做什么

w 显示登录用户及其正在运行的进程,头部包含系统运行时间、负载和用户数[2]。

w

每行还有 JCPU、PCPU 和 WHAT(当前命令)。

用 users 快速列出用户名

users 只打印登录用户名列表,适合脚本取值[3]。

users

当前用户身份:whoami 和 id

whoami 打印当前有效用户名,等价于 id -un[4]。

whoami

id 输出当前用户的 UID、GID 和补充组[5]。

id

回滚与排错

这些都是只读查询,不会修改系统状态,无需回滚。

排错速查:

现象 原因 处理
who 无输出 无人登录或 utmp 损坏 检查 /var/run/utmp
w 显示 load 很高 系统负载高 用 top 或 ps 查进程
id 和 whoami 不一致 有效 UID 被 setuid 改变 检查程序权限

实测与局限性

  • 实测环境:WSL2 Ubuntu 24.04,procps-ng 4.0.4,coreutils 9.4。
  • 已验证:who、w、users、whoami、id 在 WSL2 下输出正常。
  • 局限性:WSL2 无完整 systemd-logind;w 和 who 的 idle 时间计算与实体机有差异;SSH 多跳登录的 FROM 字段可能为空。

参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。