Linux技巧:轻松查看谁在线
linux 看谁在线

首页 2024-12-23 12:15:20



Linux:精准掌握,看谁在线的艺术 在Linux系统的广阔天地里,监控和管理用户活动是一项至关重要的任务

    无论是出于安全考虑、性能监控,还是简单的用户行为分析,“看谁在线”这一需求都显得尤为迫切

    Linux以其强大的命令行工具和灵活的脚本能力,为我们提供了多种高效、精准的方法来查看当前登录系统的用户

    本文将深入探讨几种主流方法,并结合实际应用场景,展示如何在Linux环境中实现这一目标

     一、基础命令:`who` 和`w` 谈及Linux中查看谁在线的基本工具,`who`和`w`命令无疑是首选

    这两个命令虽然简单,但功能强大,能够满足大多数日常监控需求

     1. who 命令 `who`命令直接列出了当前登录系统的所有用户及其相关信息,包括用户名、登录终端、登录时间以及远程IP地址(如果适用)

     $ who user1 pts/0 2023-10-01 10:00 (: user2 pts/1 2023-10-01 10:05 (192.168.1.10 上述输出表明,用户`user1`通过本地显示管理器(通常是X Window System)登录,而`user2`则是从IP地址为192.168.1.100的远程机器上通过SSH登录的

     选项扩展: - `-H`:显示列头

     - `-q`:仅显示登录用户的数量

     - `-T`:显示终端名称及其类型

     - `-u`:忽略用户名前的空格

     2. w 命令 `w`命令不仅显示了当前登录的用户信息,还提供了系统负载的平均值、CPU和内存使用情况以及每个用户的当前活动状态(如执行的命令)

     $ w 10:10:01 up 1:22, 3 users, load average: 0.00, 0.01, 0.05 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT user1 pts/0 :0 10:00 1:00m 0.00s 0.00s /usr/lib/gnome-terminal/gnome-terminal-server user2 pts/1 192.168.1.100 10:05 0.00s 0.03s 0.00s w user3 pts/2 192.168.1.101 10:10 0.00s 0.01s 0.01s bash 通过`w`命令,我们可以更全面地了解系统的整体状态和用户的具体活动

     二、高级查询:`last` 和`lastb` `last`和`lastb`命令则提供了历史登录信息的查询功能,对于分析用户登录行为、排查潜在的安全问题非常有帮助

     1. last 命令 `last`命令显示自系统启动以来所有用户的登录和注销记录,包括登录时间、登录终端、来源IP地址及注销时间

     $ last user1 pts/0 :0 Mon Oct 1 10:00 still logged in user2 pts/1 192.168.1.100 Mon Oct 1 10:05 - 10:10(00:0 reboot system boot 5.11.0-37-generic Mon Oct 1 09:00 - 10:15 (01:15) 选项扩展: - `-x`:显示系统关闭和重启的记录

     - `-i`:忽略IP地址的主机名解析,加快查询速度

     - `-n`:指定显示最后n条记录

     2. lastb 命令 `lastb`命令与`last`类似,但它专门用于显示失败的登录尝试记录,这些记录通常存储在`/var/log/btmp`文件中

     $ sudo lastb invaliduser tty7Mon Oct 1 08:58 - 08:58 (00:00) 注意: 访问/var/log/btmp文件通常需要超级用户权限,因此使用`lastb`时可能需要`sudo`

     三、实时监控:`top`和 `htop` 虽然`top`和`htop`主要用于监控系统的CPU、内存等资源使用情况,但它们也能显示当前登录的用户信息,特别是当用户通过特定进程占用大量系统资源时

     1. top 命令 在`top`命令的输出中,可以通过按`u`键并输入用户名来过滤显示特定用户的进程信息

    此外,在默认视图的顶部,可以看到系统的总登录用户数

     2. htop 命令 `htop`是`top`的增强版,提供了更友好的用户界面和更多的交互功能

    与`top`类似,`htop`也能通过用户过滤功能显示特定用户的进程,并且支持鼠标操作和更丰富的颜色编码,使得监控变得更加直观

     四、日志分析:`journalctl`和 `awk`/`grep` 对于更深入的日志分析,`journalctl`命令结合`awk`、`grep`等文本处理工具是不可或缺的

    `systemd`日志系统(由`journalctl`管理)记录了系统启动、服务状态变化、用户登录注销等大量信息

     示例: $ journalctl _COMM=sshd | grep Accepted Oct 01 10:05:01 hostnamesshd【1234】: Accepted password for user2 from 192.168.1.100

MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道