服务器测评网
我们一直在努力

linux命令who是什么?查看当前登录用户信息的方法

Linux命令who详解:系统用户信息查看利器

在Linux系统中,了解当前登录系统的用户情况是系统管理和安全监控的基础任务之一。who命令作为一款轻量级但功能强大的工具,能够快速显示当前登录系统的用户信息、终端状态及登录时间等关键数据,本文将从基本用法、输出格式、高级选项、实际应用场景及与其他命令的协同等多个维度,全面解析who命令的使用方法与价值。

linux命令who是什么?查看当前登录用户信息的方法

基本用法与核心功能

who命令的基本语法极为简洁,直接在终端输入who即可执行,无需任何参数,其核心功能是列出当前所有通过本地终端或远程登录系统的用户信息,执行who命令后,可能输出如下内容:

linuxprobe  pts/0        2023-10-01 14:30 (192.168.1.100)  
root        pts/1        2023-10-01 15:45 (192.168.1.101)  

每行信息对应一个登录会话,从左至右依次包含用户名、终端类型、登录时间及远程主机地址(如适用),这种直观的输出格式使管理员能够快速掌握系统当前的用户活动状态,为后续的安全审计或资源管理提供依据。

输出格式详解

who命令的输出字段虽少,但每个字段都承载重要信息,理解这些字段的含义是高效使用命令的前提:

  1. 用户名:显示登录系统的账户名称,如rootlinuxprobe等。
  2. 终端类型:标识用户使用的登录方式。pts/表示伪终端(远程登录或图形界面终端),tty表示本地物理终端(如控制台)。
  3. 登录时间:精确到年月日时分的时间戳,记录用户登录系统的具体时刻。
  4. 远程主机地址:仅对远程登录有效,显示客户端的IP地址或主机名,便于追溯连接来源。

若用户通过SSH从168.1.100登录,则远程主机地址会显示在括号内;本地登录则无此字段。

常用选项与功能扩展

who命令支持多种选项,可灵活调整输出内容以满足不同需求,以下是常用选项及其作用:

  • -u--users:显示用户 idle(空闲)时间。

    who -u

    输出会增加一列idle,记录用户最后一次操作终端后的空闲时长,有助于识别异常或闲置会话。

  • -q--count:仅显示登录用户数量及用户名列表,适用于快速统计在线人数:

    who -q

    输出示例:

    linux命令who是什么?查看当前登录用户信息的方法

    # users=2  
    linuxprobe root  
  • -b--boot:显示系统最后一次启动的时间,辅助判断系统运行状态:

    who -b

    输出如:system boot 2023-10-01 10:15

  • -H--heading:为输出添加列标题,提升可读性:

    who -H

    输出会显示NAME LINE TIME IDLE PID COMMENT等表头。

  • -l--login:列出所有登录会话,包括死进程等无效会话,适合深度排查。

实际应用场景

who命令在日常运维中具有广泛的应用价值,以下为典型场景:

  1. 安全监控
    通过who命令可实时查看登录用户及来源IP,若发现陌生IP登录系统,可立即结合last命令追溯历史登录记录,或使用pkill强制终止异常会话:

    who | grep "192.168.1.200"  
    pkill -t pts/0  # 终止指定终端会话
  2. 资源管理
    在多用户服务器中,若系统响应缓慢,可通过who -u查看空闲用户,礼貌提醒其退出或使用write命令发送通知:

    who -u | awk '$7 > "1h" {print $1, $2}'  # 查找空闲超过1小时的用户
  3. 系统状态检查
    结合who -buptime命令,可快速判断系统运行时长及负载情况,为性能优化提供数据支持。

    linux命令who是什么?查看当前登录用户信息的方法

与其他命令的协同使用

who命令并非孤立存在,与其他Linux命令结合使用时,能发挥更大效能:

  • last命令对比
    who显示当前登录用户,而last记录历史登录信息,两者结合可全面掌握用户活动轨迹:

    who  # 当前在线用户  
    last | head -10  # 最近10条登录历史
  • w命令互补
    w命令基于who的输出,增加了系统负载、CPU占用率等信息,适合性能分析:

    w  # 显示当前用户及其资源占用
  • grep过滤
    通过管道和grep可筛选特定用户或IP:

    who | grep "root"  # 仅显示root用户的登录信息

注意事项与最佳实践

尽管who命令简单易用,但在实际使用中仍需注意以下事项:

  1. 权限限制:普通用户只能查看自己的登录信息,而root用户可查看所有用户数据。
  2. 时间格式:登录时间默认采用本地时区,若需统一格式,可通过date命令转换:
    who | awk '{print $1, $3, $4}' | xargs -I {} date -d "{}" +"%Y-%m-%d %H:%M"
  3. 日志关联who的输出基于/var/log/wtmp文件,若需持久化记录,可结合last命令分析日志文件。

who命令作为Linux系统中的基础工具,以其简洁的输出和丰富的功能,成为管理员日常运维不可或缺的助手,无论是快速查看在线用户、监控安全风险,还是分析系统资源使用情况,who都能提供高效支持,通过掌握其核心功能及高级选项,并结合其他命令协同工作,用户可以更灵活地应对复杂的系统管理任务,确保系统的安全稳定运行,在实际应用中,建议结合lastw等命令形成完整的用户监控体系,从而最大化发挥who命令的实用价值。

赞(0)
未经允许不得转载:好主机测评网 » linux命令who是什么?查看当前登录用户信息的方法