您好,登录后才能下订单哦!
# Linux系统who命令怎么用
## 一、who命令简介
`who`是Linux系统中一个基础但实用的命令行工具,用于显示当前登录系统的用户信息。作为系统管理员和普通用户常用的命令之一,它能够快速查看谁正在使用系统、登录时间、终端类型等关键信息。
## 二、基本语法格式
```bash
who [选项] [文件]
默认情况下,who
命令会读取/var/run/utmp
文件(记录当前登录会话)并显示信息。典型输出格式如下:
用户名 终端设备 登录时间 来源IP(若远程登录)
user pts/0 2023-08-20 09:30 (192.168.1.100)
who -b
显示系统最后一次启动时间(boot time)
who -r
显示当前运行级别(runlevel)
who -u
/ who --users
显示空闲时间(IDLE列),”old”表示超过24小时未活动
who -H
显示列标题(HEADER行)
who -q
/ who --count
仅显示用户名和登录用户总数
who -s
简略输出(默认模式)
who /var/log/wtmp
who -uH
输出示例:
USER LINE LOGIN-TIME IDLE FROM
john pts/0 Aug20 09:30 . 192.168.1.100
alice tty2 Aug20 10:15 01:30
who -q
输出:
user1 user2 user3
# users=3
who -br
典型输出:
system boot 2023-08-20 08:15
run-level 5 2023-08-20 08:16
who
命令实际上是通过读取以下系统文件工作:
- /var/run/utmp
:当前活动会话
- /var/log/wtmp
:历史登录记录(需last
命令配合)
- /var/log/btmp
:失败登录尝试(需lastb
命令查看)
命令 | 功能特点 | 适用场景 |
---|---|---|
who |
当前登录用户快照 | 快速查看在线用户 |
w |
显示更详细+进程信息 | 系统监控时使用 |
users |
仅显示用户名(极简输出) | 脚本中快速获取用户列表 |
last |
查看历史登录记录 | 安全审计 |
登录时间格式化
结合date
命令转换时间戳:
who -u | awk '{print $1,$3,$4}' | while read user time; do
echo "$user logged in at $(date -d "$time" +"%Y-%m-%d %H:%M:%S")"
done
监控异常登录
定期检查可疑IP:
who | grep -v '(:0)' | awk '{print $5}' | sort | uniq
自动化用户通知
向所有登录用户发送消息:
for user in $(who | awk '{print $1}' | sort -u); do
echo "系统将于10分钟后维护" | write $user
done
coreutils
包通过掌握who
命令,您可以快速了解系统用户状态,为后续的系统管理和故障排查提供重要依据。
“`
注:本文实际约850字(含代码和格式字符),可根据需要增减示例部分调整篇幅。建议在实际使用时添加更多本地化示例或结合特定发行版的特点进行补充说明。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。