who
命令是 Linux 系统中常用的命令之一,用于显示当前系统上登录的用户信息。基本语法如下:
who [options]
其中常见的选项有:
-a
或 --all
:显示所有相关的信息。-b
或 --boot
:显示系统启动时间和上次关机时间。如果你只想查看某个特定用户(例如,user1)的登录信息,可以使用 grep 命令进行过滤:
who | grep user1
此命令会从 who
的输出中筛选出包含 "user1" 的行。
有时你可能需要关注最近的登录记录。可以结合 -q
和 -d
选项来实现:
who -q | grep 'user1' | awk '{print $1, $6, $7}'
这里:
who -q
显示最后一次成功登录的信息。grep 'user1'
过滤出包含 "user1" 的行。awk '{print $1, $6, $7}'
仅显示用户名、时间等特定字段。who
和 cut
组合进行过滤如果你需要进一步精简信息,可以结合 cut
命令来提取所需的部分:
who | grep 'user1' | cut -d ' ' -f1,5-7
此命令会从用户名、时间和登录方式中筛选出相关信息。
使用 who
命令结合时间参数,可以过滤特定时间段内的登录记录:
who -t 2023-10-01 08:00 -u user1
此命令会显示在 2023 年 10 月 1 日上午 8 点之后用户 user1
的登录信息。
有时可能需要结合 awk
, sed
或者其他更复杂的命令来实现更为复杂的需求。例如,使用 who
命令与 awk
联合过滤并显示特定用户的最近几次登录:
who -q | awk '$1 == "user1" {print $1, $6}' | tail -n 5
此命令会首先筛选出用户为 user1
的行,然后使用 tail -n 5
显示最新的五条记录。
通过这些示例和解释,你已经掌握了如何利用 who
命令配合其他 Linux 工具进行复杂的用户登录信息过滤。这将帮助你在日常运维中更加高效地处理和分析系统用户数据。