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 用户或管理员的第一步。

相关推荐
fanzhonghong1 小时前
javaWeb后端开发之Linux项目部署3和Docker部署1
linux·服务器·前端·docker
Bert.Cai1 小时前
Linux print命令详解
linux·运维·服务器
AI云原生1 小时前
容器网络模型与服务发现:从踩坑到精通,Kubernetes 网络问题排查全指南
服务器·网络·云原生·容器·kubernetes·云计算·服务发现
石小千1 小时前
Docker-排查占用磁盘空间大问题
运维·docker·容器
仙柒4151 小时前
Docker 网络
运维·docker·容器
Harm灬小海1 小时前
【云计算学习之路】学习Centos7系统:服务搭建(NFS)
linux·运维·服务器·学习·云计算
Harm灬小海1 小时前
【云计算学习之路】学习Centos7系统-权限管理
linux·运维·服务器·学习·云计算
我先去打把游戏先1 小时前
Ubuntu虚拟机(服务器版本)Git安装教程(附常用命令)——从零开始掌握版本控制
服务器·c语言·c++·git·嵌入式硬件·物联网·ubuntu
xhbh6661 小时前
MC端口映射完全教程:路由器虚拟服务器配置+防火墙放行+内网穿透备用方案
运维·服务器·网络·网络协议·tcp/ip·智能路由器·流量端口转发