Linux怎么查看当前在线用户,踢出用户命令

前言

服务器是多人用的,有时候需要看看谁在线上,或者把某个挂机的用户踢下线。Linux 自带了几个命令可以查看当前在线用户,本文就讲一下怎么用。

查看在线用户

who 命令

最简单的命令,直接看谁在线:

who

输出类似:

root     pts/0        2026-10-06 09:00 (192.168.1.100)
zhangsan pts/1        2026-10-06 09:15 (192.168.1.101)
lisi     pts/2        2026-10-06 09:20 (192.168.1.102)

每一列分别是:用户名、终端、登录时间、来源 IP。

w 命令

比 who 更详细,还能看到用户在干嘛:

w

输出类似:

 09:30:00 up  2:15,  3 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.100    09:00    5.00s  0.03s  0.01s w
zhangsan pts/1    192.168.1.101    09:15    15.00s 0.02s  0.00s bash
lisi     pts/2    192.168.1.102    09:20    1:30   0.01s  0.01s top

多了几列:

  • LOGIN@:登录时间
  • IDLE:空闲时间
  • JCPU:该终端所有进程用的 CPU 时间
  • PCPU:当前进程用的 CPU 时间
  • WHAT:当前在跑什么命令

users 命令

只看用户名,重复的就重复显示:

users

输出:

root zhangsan lisi

last 命令

看历史登录记录:

last

会列出最近登录过的用户,包括用户名、终端、来源 IP、登录时间、退出时间、总共在线多久。

踢出用户

pkill 踢出某个用户

比如把 zhangsan 踢下线:

pkill -u zhangsan

这会杀掉 zhangsan 的所有进程,直接把他踢下线。

杀掉某个终端

先看 who,找到要踢的人的终端,比如 pts/1:

who

然后杀掉这个终端:

pkill -t pts/1

或者:

kill -9 $(ps -t pts/1 -o pid=)

踢所有非 root 用户

警告!这会把其他所有登录的人都踢掉:

pkill -u -root

常见坑

坑1:把自己踢下线了

执行 pkill 的时候把自己的终端也杀掉了,SSH 直接断开。

解决: 踢人的时候确认一下自己的终端,别把自己踢了:

who am i

先看自己是哪个终端,然后踢别人的时候避开自己的终端。

坑2:踢了用户但他又登回来了

踢了之后用户马上又登上来了,没用。

解决: 如果是恶意用户,直接改密码或者封 IP:

# 改密码
passwd 用户名

# 封 IP
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.101' reject"
firewall-cmd --reload

坑3:看不到图形界面登录的用户

who 只看终端登录的,图形界面登录的可能看不到。

解决: 用 last 看历史记录,或者看 /var/log/auth.log(CentOS 是 /var/log/secure)。

总结

查看在线用户的常用命令:

命令 作用
who 看谁在线
w 看谁在线 + 在干嘛
users 只看用户名
last 看历史登录记录
pkill -u 用户名 踢出某个用户
pkill -t pts/1 杀掉某个终端

日常运维用 w 就够了,信息最全。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-6 07:40 

Linux查看系统运行时间,uptime和w命令使用

前言

想知道服务器已经连续运行了多少天?现在有多少人在线?系统负载怎么样?这些问题用 uptime 和 w 两个命令就能搞定。这两个命令虽然简单,但都是运维日常最常用的,一个看运行时间和负载,一个看谁在线。本文就把这两个命令讲透。

uptime 命令

基本用法

直接输入:

uptime

输出示例:

 10:30:45 up 30 days,  2:15,  1 user,  load average: 0.50, 0.40, 0.30

输出详解

字段 含义
10:30:45 当前系统时间
up 30 days, 2:15 系统已运行30天2小时15分钟
1 user 当前有1个用户登录
load average: 0.50, 0.40, 0.30 系统负载,分别是1分钟、5分钟、15分钟的平均值

负载怎么看

负载(load average)是衡量系统繁忙程度的指标。数值越高说明越忙。

判断标准:

  • 负载数值和CPU核心数有关
  • 比如4核CPU,负载4.0才算跑满
  • 一般来说,负载不要超过CPU核心数的70%
  • 比如4核CPU,负载在2.8以下算正常

uptime 常用参数

uptime -V

查看版本号。

uptime -h

查看帮助。

w 命令

基本用法

直接输入:

w

输出示例:

 10:30:45 up 30 days,  2:15,  1 user,  load average: 0.50, 0.40, 0.30
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.100    10:20    5.00s  0.05s  0.00s w

输出详解

第一行和 uptime 完全一样:系统时间、运行时间、在线用户数、负载。

下面是当前登录的用户列表:

列 含义
USER 登录用户名
TTY 终端类型(pts/0 表示远程SSH连接)
FROM 登录来源IP
LOGIN@ 登录时间
IDLE 空闲时间
JCPU 该终端所有进程占用的CPU时间
PCPU 当前进程占用的CPU时间
WHAT 当前正在运行的命令

w 常用参数

w -h

不显示第一行标题,只显示用户列表。

w -s

精简模式,不显示 JCPU 和 PCPU 列。

w root

只查看某个用户的登录信息。

who 命令

除了 uptime 和 w,还有个 who 命令,更简单:

who

输出:

root     pts/0        2026-10-05 10:20 (192.168.1.100)

只显示谁在线、从哪来、什么时候登录的。

last 命令

想知道历史登录记录,用 last:

last

输出最近的登录记录,包括:

  • 谁登录的
  • 从哪个IP登录的
  • 什么时候登录的
  • 登录了多久
last -10

只看最近10条。

实际应用场景

场景1:服务器重启过没有

用 uptime 看运行时间,如果才几天,说明最近重启过。

uptime

场景2:谁在登录我的服务器

用 w 看当前有谁在线,来源IP是哪里。如果有不认识的IP,可能是被入侵了。

w

场景3:系统负载高不高

用 uptime 看 load average,如果负载很高,再用 top 看是哪个进程占的。

uptime
top

场景4:排查登录历史

用 last 看历史登录记录,有没有异常登录。

last

常见坑

坑1:负载高就以为CPU不够

负载高不一定是CPU的问题。负载包括所有等待CPU的进程,也包括等待I/O的进程。可能是磁盘I/O瓶颈,也可能是大量进程在排队。要结合 top 一起看。

坑2:把在线用户数看得很重要

1 user 这个数字只是当前登录的用户数,不代表系统性能。一个用户也可能把系统跑满,100个用户也可能很空闲。

坑3:last 显示的是历史记录,不是实时状态

last 是看历史登录记录的,现在谁在线要用 w 或 who。两者别搞混了。

总结

uptime 和 w 是最基础的系统监控命令:

  1. uptime:看系统运行时间和负载
  2. w:看谁在线、从哪来、在干嘛
  3. who:更简单的在线用户查看
  4. last:看历史登录记录

这几个命令都是秒出结果,排查问题的时候先跑一遍,快速了解系统基本状态。

遇到问题加QQ23979811 协助处理


emer 发布于  2026-10-5 07:35 
'); })();