命令简介

w 命令是 Linux 系统中一个非常实用的小工具,它可以显示当前登录系统的用户信息,包括用户名、登录终端、远程主机、登录时间和正在运行的进程等。管理员可以通过 w 命令快速了解系统的实时使用情况,对于监控系统活动和分析用户行为都非常有帮助。

命令格式

1
w [选项]

参数说明

参数 描述 备注
-h 不打印头部行
-u 忽略旧的且没有任何进程的用户登录信息
-s 使用短输出格式 只显示核心信息
-f 切换显示从哪个终端登录的信息
-V 显示版本信息并退出

命令实例

基本用法

1.显示登录用户信息

1
w

输出当前登录系统的所有用户信息,包含用户名、登录终端、远程主机、登录时间以及正在运行的进程等。

2.使用短格式

1
w -s

仅以一行简洁的格式输出每个登录用户的核心信息。

3.显示当前时间、系统运行时间、登录用户数以及过去1、5和15分钟内运行队列中的平均作业数

1
w -u

忽略那些旧的且没有任何正在运行的进程的登录信息。

4.查看版本信息

1
w -V

显示 w 命令的版本信息。

高级用法

1.监控实时登录情况

w 命令可以配合 watch 命令实时监控系统登录情况的变化。

1
watch -n 5 w

上面命令会每隔 5 秒执行一次 w 命令,从而实时监控系统登录用户的变化情况。

2.结合 awk 分析登录信息

w 命令输出格式比较友好,可以方便地与其他命令组合分析数据。

1
2
3
4
5
# 统计当前登录的用户数
w | awk '/^USER/ {i++} END {print i}'

# 统计登录用户和终端类型
w | awk '/^USER/ {print $1, $2}' | sort | uniq -c

3.生成系统使用报告

编写一个简单的 Shell 脚本,可以利用 w 命令的输出生成每日系统使用报告。

1
2
3
4
5
6
7
8
#!/bin/bash

date=$(date +%Y%m%d)
output="/tmp/sys_report_$date.log"

/usr/bin/w > $output

echo "系统使用报告已生成: $output"

该脚本会将 w 命令的输出重定向到一个日志文件中,作为当天的系统使用报告。可以配合 cron 等工具自动执行。

总之,w 命令虽然非常简单,但在日常的系统管理工作中却可以发挥很大的作用。它输出格式友好、功能实用,可以很好地满足我们快速查看和分析系统使用情况的需求。如有任何其他疑问,欢迎随时询问。