Linux who指令查询和显示当前登录系统的用户信息

who 是 Linux 系统中一个基础且重要的系统管理命令,用于查询和显示当前登录系统的用户信息。它通过读取系统日志文件(默认为 /var/run/utmp)来获取数据,并将结果以清晰格式输出。

一、命令基本语法与功能

命令的基本语法为:

复制代码
who [选项]... [文件 | 参数1 参数2]

如果不指定文件,则默认读取 /var/run/utmp 来获取当前登录信息;如果指定文件(如 /var/log/wtmp),则可以查看历史登录记录。

执行 who 命令(不加任何选项)会默认显示当前所有登录用户的用户名终端设备登录时间 以及远程主机地址(如果是从远程登录)。

二、常用选项与示例

who 命令支持丰富的选项来满足不同的查询需求。以下是一些最常用的选项及其效果:

选项 功能描述 示例命令与典型输出
-H 在输出结果上方显示列标题,使信息更易读。 who -H 会输出类似 NAME LINE TIME IDLE PID COMMENT 的标题行。
-u-i 显示用户空闲时间进程ID 等额外信息。空闲时间显示规则:. 表示最近1分钟内有活动;00:11 表示空闲11分钟;old 表示空闲超过24小时;? 表示无法检测(如图形界面)。 who -uH
-a 显示所有信息 ,是 -b -d --login -p -r -t -T -u 选项的集合,输出包括系统启动时间、运行级别、死进程等最全面的信息。 who -a
-b 仅显示系统最近一次启动的时间和日期 who -b 输出:system boot 2025-06-09 05:58
-r 显示系统当前的运行级别 who -r 输出:run-level 5 2025-06-09 05:58
-q 快速统计,只显示登录的用户名列表和用户总数,输出简洁。 who -q 输出:root root root root# users=4
-m 仅显示与当前终端关联的用户信息 。其等效命令 who am iwho mom likes 也用于实现此功能。 who -mwho am i
-T-w 显示用户终端的消息写入状态+ 表示允许接收消息;- 表示禁止;? 表示状态未知或终端不支持。 who -a 的输出中,用户名旁会显示 +- 符号。

三、核心应用场景

  1. 实时查看在线用户:最基本的用途,快速了解谁登录了系统以及从何处登录。
  2. 系统状态检查 :通过 -b-r 选项可以方便地查看系统启动时间和运行级别,用于基础运维。
  3. 用户会话管理 :结合 -u 选项查看用户的空闲时间,可以帮助管理员判断哪些会话可能可以被安全终止。在需要踢出指定用户时,可先用 whow 命令查出其对应的终端(如 pts/3),然后使用 pkill -kill -t pts/3 命令强制其下线。
  4. 审计与历史查询 :通过指定日志文件(如 who /var/log/wtmp),可以回顾系统的登录、注销、重启等历史记录。

四、输出字段详解

who -uH 的典型输出为例:

复制代码
NAME    LINE    TIME            IDLE    PID     COMMENT
root    pts/0   2025-06-09 01:40 .       11005   (192.168.118.1)
  • NAME:登录的用户名。
  • LINE :终端设备类型。ttyN 表示物理终端;pts/N 表示伪终端(通常是 SSH 或 Telnet 远程连接);:0 表示图形界面会话。
  • TIME:用户登录的时间。
  • IDLE:用户空闲时间,规则如上所述。
  • PID:用户登录 Shell 的进程 ID。
  • COMMENT :注释信息,通常是远程登录的主机 IP 地址,本地登录则可能显示 (:0) 或为空。
相关推荐
chlk12317 小时前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑18 小时前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件18 小时前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号1 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash1 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
哈基咪怎么可能是AI2 天前
为什么我就想要「线性历史 + Signed Commits」GitHub 却把我当猴耍 🤬🎙️
linux·github
十日十行2 天前
Linux和window共享文件夹
linux
Sinclair3 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
木心月转码ing3 天前
WSL+Cpp开发环境配置
linux
Rockbean4 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek