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 i 或 who mom likes 也用于实现此功能。 who -m 或 who am i。
-T 或 -w 显示用户终端的消息写入状态 :+ 表示允许接收消息;- 表示禁止;? 表示状态未知或终端不支持。 在 who -a 的输出中,用户名旁会显示 + 或 - 符号。

三、核心应用场景

  1. 实时查看在线用户:最基本的用途,快速了解谁登录了系统以及从何处登录。
  2. 系统状态检查 :通过 -b 和 -r 选项可以方便地查看系统启动时间和运行级别,用于基础运维。
  3. 用户会话管理 :结合 -u 选项查看用户的空闲时间,可以帮助管理员判断哪些会话可能可以被安全终止。在需要踢出指定用户时,可先用 who 或 w 命令查出其对应的终端(如 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) 或为空。
相关推荐
未济3 天前
linux 配置环境变量
linux
傲世仙尊3 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
_艾伦 耶格尔.3 天前
进程间通信
linux
Liuqy-053 天前
Linux IO编程——静态库、动态库
linux
wuyk5553 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅3 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog3 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发
AIgorithmGEEK3 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid