
文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载who 是 GNU coreutils 提供的基础系统管理命令用于显示当前所有登录用户的信息包括登录用户名、终端、登录时间以及来源主机或 X display。本文以 linux-command 开源仓库中的 who 命令文档 为主体逐项拆解其语法、选项、参数、返回值与实战用例并结合仓库内的相关命令文档如 w、whoami、users、last说明它在登录信息查询工具链中的定位。读完本文你将能够熟练使用 who 完成登录状态监控、历史登录审计以及脚本化的会话统计。命令概要who 的完整语法如下文档位于 command/who.mdwho [OPTION]... [file] [am i]要点[OPTION]...零个或多个选项控制输出内容与格式[file]可选参数指定要读取的登录记录文件用于替代默认文件[am i]特殊参数组合仅显示运行该命令的用户自身的信息。该命令属于 GNU coreutils 包在 README.md 的系统管理分类中与w、whoami、users、last、uptime等命令并列共同构成 Linux 用户会话管理的基础工具集。主要用途按照原文档的说明who 有两个核心用途未指定任何非选项参数时为每个当前登录用户按固定字段顺序打印信息依次为登录用户名称终端信息如pts/0登录时间如2013-08-19 15:04远程主机或 X display如(192.168.0.134)。执行who am i时只显示运行该命令的用户自身的信息而不再列出系统上所有会话。从输出结构可以看出who 直接面向登录会话记录utmp工作其输出字段与登录记录中保存的属性一一对应因此它是排查谁在登录、从哪里登录、登录了多久这类问题的最直接命令。选项详解who 提供的全部选项及其含义如下表所示完整继承自 command/who.md选项长选项说明-a--all等价于调用-b -d --login -p -r -t -T -u一次输出全部可用信息-b--boot上次系统启动的时间-d--dead打印 dead已死状态的进程-H--heading打印列标题行-l--login打印系统登录进程--lookup尝试通过 DNS 规范主机名-m仅显示和标准输入关联的主机名和用户-p--process打印由 init 生成的活动进程-q--count列出所有已登录用户的名称和数量-r--runlevel打印当前运行级别-s--short仅打印名称、行和时间默认行为-t--time打印上次系统时钟更改-T、-w--mesg、--message、--writable将、-、?中的一个作为用户的消息状态添加到用户名称后面-u--users列出登录的用户--help显示帮助信息并退出--version显示版本信息并退出关于-T选项的消息状态标记-T等价于-w会在用户名称后面附加一个消息状态字符含义如下允许写入信息该终端开放可被write等命令发送消息-禁止写入信息终端关闭了消息接收?不能查找到终端设备无法判断状态。该标记与 mesg 命令控制的终端写入权限直接相关运维排查为什么 write 命令发不出去消息时可先用who -T检查目标用户的终端状态。关于-a的组合语义-a, --all是高频组合选项它等价于一次启用-b -d --login -p -r -t -T -u六个选项能在单次输出中同时呈现系统启动时间、dead 进程、登录进程、活动进程、运行级别、时钟更改、消息状态与登录用户列表。适合在登录一台不熟悉的机器时快速获得全局视图。参数 file 与 utmp / wtmp 登录记录who 支持传入file参数来指定登录记录文件以替代默认的/var/run/utmp、/etc/utmp。默认情况下who 读取的是记录当前登录会话的 utmp 文件。更常用的做法是传入历史记录文件who /var/log/wtmp/var/log/wtmp保存的是过去登录系统的用户记录因此用who /var/log/wtmp可以查看历史登录信息这也是 wtmp 文件最典型的审计用途。与之配合的是 last 命令文档last 默认读取/var/log/wtmp并把文件内容记录的登录用户名单全部显示出来而 users 命令文档 同样支持传入 FILE 参数默认使用/var/run/utmp、/var/log/wtmp但它只输出用户名列表。三者的关系可以归纳为命令默认数据源输出粒度who/var/run/utmp、/etc/utmp会话完整字段用户、终端、时间、来源who /var/log/wtmp指定 wtmp 文件历史会话完整字段last/var/log/wtmp历史登录记录列表users/var/run/utmp、/var/log/wtmp仅用户名重复会话重复显示返回值返回0表示命令执行成功返回非0值表示执行失败例如指定的记录文件不存在或不可读时。在脚本中使用who时可以基于返回值判断查询是否成功。实战例子以下示例直接来自 command/who.md可在实际服务器上直接运行验证。基本用法列出所有当前登录用户[rootlocalhost ~]# who root pts/0 2013-08-19 15:04 (192.168.0.134) root pts/1 2013-12-20 10:37 (180.111.155.40)输出依次为用户名root、终端pts/0、登录时间2013-08-19 15:04、来源地址括号内的 IP。统计登录会话数量[rootlocalhost ~]# who -q root root # users2-q模式会列出所有已登录用户的名称同一用户多个会话会重复出现并在最后一行以# usersN的形式给出会话总数。注意这里统计的是会话数而非去重后的用户数与 users 命令文档 中如果一个用户有不止一个登录会话那他的用户名将显示相同的次数的语义一致。带列标题输出[rootlocalhost ~]# who -H NAME LINE time COMMENT root pts/0 2013-08-19 15:04 (192.168.0.134) root pts/1 2013-12-20 10:37 (180.111.155.40)-H会在输出顶部打印NAME / LINE / time / COMMENT列标题便于人类阅读或作为脚本表头。显示终端消息状态[rootlocalhost ~]# who -w root pts/0 2013-08-19 15:04 (192.168.0.134) root pts/1 2013-12-20 10:37 (180.111.155.40)-w即-T在用户名后追加、-、?状态字符此处两个会话均为表示终端允许接收消息。只查看自己who am i[rootlocalhost ~]# who am i root pts/0 2013-08-19 15:04 (192.168.0.134)与普通who不同who am i只返回运行命令的用户自身对应的登录会话。查询历史登录结合 file 参数# 查看 /var/log/wtmp 中记录的过去登录信息 who /var/log/wtmp与相关命令的协同与区别linux-command 仓库在同一分类下收录了多个人称相关的命令理解它们的差异有助于在正确场景选用正确命令wcommand/w.md除了显示登录用户还额外展示每个用户正在执行的指令、登录来源、空闲时间、CPU 占用等信息适合观察用户当前在干什么。whoamicommand/whoami.md仅打印当前有效用户 ID 对应的名称等价于id -un文档特别提醒它与logname的区别——通过su切换用户后whoami返回当前有效用户而logname返回原始登录用户。userscommand/users.md只输出登录用户名列表适合脚本中做去重统计前的原始数据。lastcommand/last.md读取/var/log/wtmp展示历史登录记录支持-n限定行数、-f指定记录文件、-x显示关机重启等系统事件。uptimecommand/uptime.md输出系统运行时间、登录用户数与 1/5/15 分钟平均负载与 who 配合可快速评估主机整体状态。一句话总结who 看当前谁登录、last 看过去谁登录过、users 只要名字、whoami 确认自己、w 看大家在做什么。在 linux-command 仓库中的定位与使用本文对应的原始文档位于 command/who.md。该仓库搜集了 600 多个 Linux 命令的手册与详解见 README.md所有命令文档以 Markdown 形式存放在 command 目录下其中who被归入系统管理分类与w、whoami、users、last、uptime等命令同组。仓库的使用方式包括Web 网站检索仓库通过构建脚本将 command 目录中的 Markdown 渲染为静态 HTML 并提供索引搜索详情页模板由 template/details.ejs 负责命令正文内容即来自各 Markdown 文件npm 包引入通过npm install linux-command安装后可以require(linux-command/command/who.md)直接获得该文档的 Markdown 字符串包入口定义见 package.jsonDash/离线文档仓库提供了 scripts/dash.mjs 构建脚本可基于dist/data.json索引与命令文档生成 Dash docset便于在本地离线速查。因此无论是通过 Web 搜索、npm 包还是 Dash 文档who的这份说明都是完整可获取的本文内容与仓库内 command/who.md 保持严格一致。注意事项who是 GNU coreutils 包中的命令相关的完整帮助信息请查看man -s 1 who与info coreutils who invocationwho -q输出中的# usersN统计的是登录会话总数同一用户的多终端登录会计入多次脚本解析时需注意区分会话数与用户数若系统未安装 utmp 相关文件例如部分精简容器镜像who 可能返回非 0 退出码此时应以返回值判断执行结果who /var/log/wtmp读取的是历史记录不同发行版对 wtmp 的轮转策略不同历史记录的保存周期取决于系统日志配置。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐Linux users 命令详解快速查看当前主机全部登录会话Linux users 命令详解快速查看当前主机全部登录会话 导读 users 是 GNU coreutils 工具包中的一个轻量级命令用于打印当前主机上所文档教程rclone config userinfo 命令详解查看云端存储当前登录用户信息rclone config userinfo 命令详解查看云端存储当前登录用户信息 rclone config userinfo remote: 用于向指定的CLI数据同步对象存储downkyi账户登录记录查看检查账号的登录历史downkyi账户登录记录查看检查账号的登录历史 一、登录记录审计的安全价值 B站用户账号面临的登录风险呈现三大特征 | 风险类型 | 技术原理 | 检测难创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考