Linux 的 who 命令

Linux 的 who 命令是一个简单但非常实用的系统工具,用于显示当前登录到系统的用户信息。它可以帮助系统管理员快速了解谁正在使用系统、他们从哪里登录以及登录了多久。

1. 命令基本用法

直接在终端中输入 who 命令,不带任何参数,会显示当前所有登录用户的基本信息:

who [选项]

典型的输出格式如下:

复制代码
username   tty1         2026-05-21 14:10 (:0)
alice      pts/0        2026-05-21 13:45 (192.168.1.100)
bob        pts/1        2026-05-21 14:05 (192.168.1.101)

输出各列的含义:

  • username: 登录用户的用户名。
  • tty/pts : 用户登录的终端设备。tty 通常指物理终端或图形界面终端,pts (pseudo-terminal slave) 指伪终端,常用于 SSH 或终端模拟器。
  • date & time: 用户登录的日期和时间。
  • remote host : 用户登录的来源。对于本地图形界面登录,通常显示 (:0);对于远程 SSH 登录,则显示 IP 地址或主机名。

2. 常用参数详解

who 命令提供多个参数来获取更详细或特定格式的信息。

2.1 who -b

显示系统最后一次启动(引导)的时间。

bash 复制代码
who -b

输出示例:

复制代码
system boot  2026-05-21 08:30

2.2 who -r

显示当前的运行级别(runlevel)。

bash 复制代码
who -r

输出示例:

复制代码
run-level 5  2026-05-21 08:30

2.3 who -a

显示所有可用信息,相当于同时使用多个参数,信息最全。

bash 复制代码
who -a

输出会包含登录用户、系统启动时间、运行级别、关机计划、死进程等信息。

2.4 who -H

在输出结果上方显示列标题,使输出更易读。

bash 复制代码
who -H

输出示例:

复制代码
NAME     LINE         TIME             COMMENT
username tty1         2026-05-21 14:10 (:0)

2.5 who -q

"快速"模式,只显示登录用户的用户名和总用户数,不显示其他详细信息。

bash 复制代码
who -q

输出示例:

复制代码
username alice bob
# users=3

2.6 who -uwho --idle

显示用户的空闲时间(idle time)。空闲时间指用户最后一次在终端上活动到现在的时间。

bash 复制代码
who -u

输出中会多出一列 .old. 表示当前终端正在活动(空闲时间小于1分钟),old 表示空闲时间超过24小时,数字如 10:30 则表示空闲了10小时30分钟。

3. 实际应用场景

3.1 系统管理员监控

管理员可以定期使用 who 命令检查是否有异常或未授权的登录。

3.2 排查问题

  • 当系统响应变慢时,可以用 who -u 查看是否有用户长时间空闲但未注销,占用着资源。
  • 使用 who -b 可以确认系统是否在预期时间外重启过。

3.3 编写脚本

who 命令的输出格式规整,易于被其他命令(如 awk, cut) 或脚本处理,常用于自动化任务。

例如,获取所有登录用户的用户名列表:

bash 复制代码
who | awk '{print $1}' | sort | uniq

4. 与其他命令的关系

  • w 命令 :是 who 命令的增强版,除了显示登录用户,还会显示他们正在执行的进程以及系统平均负载。
  • last 命令:显示用户的历史登录记录,包括登录、注销以及系统开关机事件。
  • users 命令:仅显示当前登录的所有用户名,一行输出,用空格分隔。

5. 总结

who 命令是 Linux 系统管理的基础工具之一,它提供了快速查看登录状态的入口。虽然功能简单,但通过不同的参数组合,可以满足日常监控、问题排查和脚本编写的多种需求。掌握 who 及其相关命令(w, last),是成为一名高效 Linux 用户或管理员的第一步。

相关推荐
ScilogyHunter15 小时前
GCC完全指南
linux·gcc
CodeStats15 小时前
从 CPU 指令到 JVM 进程:彻底讲透 Java 执行 main 方法时,类加载、主线程、栈帧入栈的完整底层逻辑
java·linux·开发语言
asyxchenchong88816 小时前
最新Hermes Agent 技能封装与科研自动化:以 Meta-Analysis 为例-实现从文献检索到绘图的一站式工作流
运维·人工智能·自动化
tianyuanwo16 小时前
项目内自我管理:一名OS领域DevOps的破局之路
运维·devops
三十..17 小时前
Redis 核心原理与高可用架构实践
运维·数据库·redis
努力努力再努力wz17 小时前
【内存管理与高并发内存池系列】从 mmap 到 malloc:文件映射、匿名映射与 glibc 内存分配机制详解
linux·c语言·数据结构·数据库·c++·qt·链表
Jurio.18 小时前
开源 Codex Sticky:在终端 Codex CLI 长对话中始终固定底部输入框
linux·rust·github·开源软件·codex·codex cli
无足鸟ICT18 小时前
【RHCA+】撤销和恢复撤销快捷键
linux
质造者18 小时前
LangChain + Ollama + Tavily 实现旅游问答系统
linux·人工智能·python·langchain·rag
mN9B2uk1718 小时前
大数据量高并发的数据库优化
服务器·数据库·oracle