Linux如何列出当前系统的活跃会话

使用who、w、last和loginctl命令可查看Linux系统中的活跃用户会话:who显示登录用户基本信息,w提供更详细的实时活动信息,last查看历史登录记录,loginctl用于Systemd系统中管理会话;通过区分tty(本地)、pts(远程SSH)和图形会话(:0),结合w和grep过滤、screen/tmux会话复用,以及loginctl或pkill管理会话,实现高效监控与控制。

linux如何列出当前系统的活跃会话

在Linux系统中,想要查看当前有哪些用户活跃地登录着,或者有哪些会话正在运行,我们通常会用到几个核心命令:

who

w

last

,以及对于现代Systemd系统来说非常实用的

loginctl

。它们各自提供了不同维度和细节的信息,帮助我们快速掌握系统的用户状态。

解决方案:要列出当前系统的活跃会话,最直接的方法就是使用命令行工具

who

命令是最基础的,它会显示当前登录到系统的所有用户。输出通常包括用户名、终端线路(tty或pts)、登录时间,以及登录来源(如果是远程连接)。

who

举个例子,你可能会看到这样的输出:

user1    tty1         2023-10-27 10:00 (:0)user2    pts/0        2023-10-27 10:30 (192.168.1.100)

这告诉我

user1

在本地图形界面(tty1)登录,而

user2

通过SSH从

192.168.1.100

连接。

w

命令则提供了更详细的信息,它在

who

的基础上,还会显示每个用户当前正在执行什么命令。这对于快速了解系统负载和用户活动非常有帮助。

w

输出会像这样:

 10:45:01 up 1 day, 1:23,  2 users,  load average: 0.00, 0.01, 0.05USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHATuser1    tty1     :0               10:00    1:20m  0.03s  0.03s /usr/lib/gnome-shell/gnome-shelluser2    pts/0    192.168.1.100    10:30    0.00s  0.06s  0.02s bash

这里,

user1

可能正在使用GNOME桌面,而

user2

在SSH会话中执行

bash

如果你想查看更久远的登录记录,

last

命令就派上用场了。它会从

/var/log/wtmp

文件中读取信息,显示系统历史上的所有登录和注销事件,包括重启记录。

last

输出可能会很长,但它能让你回溯到过去,看看谁在什么时候登录过系统,以及停留了多久。

user2    pts/0        192.168.1.100    Fri Oct 27 10:30   still logged inuser1    tty1         :0               Fri Oct 27 10:00   still logged inreboot   system boot  5.15.0-86-generi Fri Oct 27 08:00   - 10:45  (02:45)...

对于使用Systemd的现代Linux发行版(比如Ubuntu 16.04+,CentOS 7+),

loginctl

是一个非常强大的工具,它能以更结构化的方式管理和查看用户会话。

loginctl list-sessions

这个命令会列出所有当前活跃的Systemd会话,包括会话ID、用户、终端、以及会话类型。

SESSION  UID USER   SEAT  TTY      100    1000 user1 seat0 tty1      101    1001 user2 pts/0

如果你想看某个特定会话的详细信息,可以使用

loginctl show-session 

。例如:

loginctl show-session 100

这会输出大量关于该会话的元数据,包括它的状态、所属进程等。

如何区分不同类型的Linux用户会话?

在Linux环境中,会话的类型其实挺多的,理解它们对于系统管理和安全审计都挺重要的。从我个人的经验来看,主要可以分为几种:本地终端会话、图形桌面会话和远程会话。

本地终端会话通常指的是直接连接到物理机器的键盘和显示器,通过Ctrl+Alt+F1到F6切换的那些字符界面(TTY)。在

who

w

的输出中,它们通常显示为

tty1

tty2

等。这些会话是直接与内核交互的,比较底层。

图形桌面会话,比如GNOME、KDE、Xfce等,虽然最终也可能运行在一个TTY之上(比如

tty1

),但它们通常通过一个显示管理器(如GDM、LightDM)启动,并创建一个X服务器或Wayland会话。在

who

w

的输出中,你可能会看到

tty1

后面跟着

(:0)

或者其他类似的显示器标识符,这通常就代表了一个图形会话。

loginctl

TTY

列可能会显示

tty1

,但

TYPE

字段(如果显示的话)会更明确地指示是

x11

wayland

远程会话,最常见的就是通过SSH(Secure Shell)连接的。当你通过PuTTY或者

ssh

命令从另一台机器连接过来时,系统会为你的连接分配一个“伪终端”(Pseudo-Terminal),通常表示为

pts/0

pts/1

等等。这个

pts

就是“pseudo-terminal slave”的缩写。在

who

w

的输出中,

FROM

列会显示你的IP地址或主机名,这非常明确地指出了这是一个远程连接。

理解这些区分,比如看到一个

pts

会话但

FROM

列是

localhost

,那很可能是在本地启动了一个终端模拟器(如gnome-terminal, konsole),它也是通过伪终端实现的。如果看到一个陌生的IP地址连接着

pts

,那你就得警惕了,是不是有未经授权的访问?这种细致的观察,在排查问题或确保系统安全时,真的很有用。

MakeSong MakeSong

AI音乐生成,生成高质量音乐,仅需30秒的时间

MakeSong 145 查看详情 MakeSong Linux如何列出当前系统的活跃会话

除了列出,如何监控或管理Linux用户会话?

仅仅知道有哪些会话在运行,有时候还不够。作为系统管理员,或者一个需要保持工作不中断的开发者,我们可能还需要对会话进行更深层次的监控甚至干预。

一个非常常见的场景是,我通过SSH连接到服务器,但网络不稳定或者我需要关闭本地电脑。这时,

screen

tmux

这类终端复用工具就显得尤为重要了。它们允许你创建一个持久化的会话,即使你的SSH连接断开,会话中的程序依然会在服务器上运行。你可以随时重新连接到服务器,并“重新附着”到之前的

screen

tmux

会话上,继续工作。例如,启动一个

tmux

会话:

tmux

tmux

会话里工作,然后按

Ctrl+b d

d

是detach的缩写)来分离会话。之后,你可以关闭SSH连接。当你再次登录时,用以下命令重新连接:

tmux attach

这极大地提高了远程工作的灵活性和效率。

从管理的角度看,有时候我们可能需要终止一个用户的会话,比如某个用户占用了过多资源,或者发现异常登录。这里需要非常小心,因为强制终止会话可能会导致用户数据丢失或程序异常退出。

对于一个

pts

会话,你可以尝试使用

pkill

命令,结合终端ID。假设

w

命令显示

user2

pts/0

上:

pkill -KILL -t pts/0

这个命令会向

pts/0

上所有进程发送

KILL

信号,强制终止它们,从而结束该会话。但请注意,

KILL

信号是强制性的,不给进程清理的机会,所以务必谨慎使用。

对于Systemd管理的会话,

loginctl

也提供了终止会话的功能:

loginctl terminate-session 

例如:

loginctl terminate-session 101

这会尝试优雅地终止ID为101的会话。它通常会比

pkill -KILL

更温和一些,但具体行为取决于会话内进程对信号的响应。

此外,如果你想进行更全面的用户活动审计,可以考虑配置

auditd

服务。它能够记录系统上的各种事件,包括用户登录、文件访问等,这对于安全合规性要求较高的环境非常有用。不过,

auditd

的配置和日志分析有学习曲线,通常需要专门的知识。

Linux如何列出当前系统的活跃会话

在多用户或服务器环境中,如何高效查看和管理会话?

在多用户或服务器环境中,会话管理就不仅仅是“看看谁在”那么简单了,它上升到了资源分配、安全审计和故障排查的层面。我个人在管理多台服务器时,会结合使用前面提到的命令,并辅以一些脚本和习惯。

w

命令依然是我的首选,因为它能迅速给我一个概览:谁在线,在做什么,以及系统的负载情况。如果看到某个用户长时间处于

idle

状态,或者执行着一个我意料之外的命令,我就会进一步调查。

结合

grep

进行过滤是提高效率的关键。比如,我只想看特定用户的会话:

w | grep myuser

或者,我只想看远程SSH会话,排除本地终端:

who | grep pts

这样可以快速定位到我关心的信息,避免被无关内容淹没。

对于持续监控,我可能会编写一个简单的脚本,定期运行

w

loginctl list-sessions

,然后将输出与一个“白名单”进行比对,或者查找异常模式。例如,如果发现某个用户在非工作时间登录,或者有来自非授权IP的连接,脚本就可以触发警报。这虽然不是一个开箱即用的功能,但对于有特定安全需求的环境来说,定制化监控是必不可少的。

在资源管理方面,如果发现某个用户进程占用了大量CPU或内存,首先会通过

w

top

确认是哪个会话,然后可以结合

ps auxf

来查看该会话下的进程树,定位到具体是哪个程序在消耗资源。之后,根据情况选择与用户沟通、发送终止信号(如

kill -TERM 

)或强制终止(

kill -KILL 

)。

最后,我想说的是,在多用户环境中管理

以上就是Linux如何列出当前系统的活跃会话的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/719880.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月24日 14:45:56
下一篇 2025年11月24日 14:50:48

相关推荐

  • 构建模拟:从头开始的实时交易模拟器

    简介 嘿,开发社区!我很高兴分享我的业余项目 Simul8or – 一个实时日间交易模拟器,旨在为用户提供一个无风险的环境来练习交易策略。该项目 100% 构建在 ASP.NET WebForms、C#、JavaScript、CSS 和 SQL Server 技术堆栈上,没有外部库或框架。从头开始构…

    2025年12月24日
    300
  • 如何在 VS Code 中解决折叠代码复制问题?

    解决 VS Code 折叠代码复制问题 在 VS Code 中使用折叠功能可以帮助组织长代码,但使用复制功能时,可能会遇到只复制可见部分的问题。以下是如何解决此问题: 当代码被折叠时,可以使用以下简单操作复制整个折叠代码: 按下 Ctrl + C (Windows/Linux) 或 Cmd + C …

    2025年12月24日
    000
  • HTML、CSS 和 JavaScript 项目

    欢迎来到我的 html、css 和 javascript 项目集合!这篇博文全面概述了我创建的各种项目,展示了 web 开发的不同方面。每个项目都可以在自己的存储库中找到,其中包含您需要探索和学习的所有代码。 目录 简介项目概况开始使用贡献作者 介绍 作为一名 web 开发人员,我喜欢从事各种项目,…

    2025年12月24日
    000
  • 姜戈顺风

    本教程演示如何在新项目中从头开始配置 django 和 tailwindcss。 django 设置 创建一个名为 .venv 的新虚拟环境。 # windows$ python -m venv .venv$ .venvscriptsactivate.ps1(.venv) $# macos/linu…

    2025年12月24日
    000
  • 浏览 CSS 响应式设计

    前端开发人员的一项主要职责是创建响应式设计布局。这也是他们的挑战之一。 您可能和我一样相信,在使用 html/css 和 javascript 进行项目时“是时候开始构建响应式设计了”,或者您可能会发现很难让您的设计响应式。 无论什么情况,让我们开始学习如何导航 css 响应式设计,sailor。 …

    2025年12月24日
    000
  • 如何克服响应式布局的不足之处

    如何克服响应式布局的不足之处 随着移动设备的普及和互联网的发展,响应式布局成为了现代网页设计中必不可少的一部分。通过响应式设计,网页可以根据用户所使用的设备自动调整布局,使用户在不同的屏幕尺寸下都能获得良好的浏览体验。 然而,尽管响应式布局在提供多屏幕适应性方面做得相当出色,但仍然存在一些不足之处。…

    2025年12月24日
    000
  • 响应式布局优化移动设备适配的策略与实用技巧

    响应式布局在移动设备上的适配策略与最佳实践 随着移动设备的普及和使用频率的增加,响应式布局逐渐成为网页设计的主流趋势。在移动设备上实现良好的用户体验,需要采用适配策略和最佳实践来确保网页能够在不同尺寸的屏幕上自适应地显示。 一、视口设置为了适应不同尺寸的移动设备屏幕,需要正确设置视口。在网页的头部添…

    2025年12月24日
    000
  • 深度剖析程序设计中必不可少的数据类型分类

    【深入解析基本数据类型:掌握编程中必备的数据分类】 在计算机编程中,数据是最为基础的元素之一。数据类型的选择对于编程语言的使用和程序的设计至关重要。在众多的数据类型中,基本数据类型是最基础、最常用的数据分类之一。通过深入解析基本数据类型,我们能够更好地掌握编程中必备的数据分类。 一、基本数据类型的定…

    2025年12月24日
    000
  • 掌握响应式布局网站的关键要点

    了解响应式布局网站的必备知识 随着移动设备的普及和使用率的增加,人们越来越多地使用手机和平板电脑来浏览网页。为了让网站在不同尺寸的屏幕上都能够有良好的显示效果,响应式布局逐渐成为了现代网页设计的一种重要趋势。本文将介绍响应式布局网站的必备知识,帮助读者更好地了解和运用响应式布局。 一、响应式布局的定…

    2025年12月24日
    200
  • 响应式HTML5按钮适配不同屏幕方法【方法】

    实现响应式HTML5按钮需五种方法:一、CSS媒体查询按max-width断点调整样式;二、用rem/vw等相对单位替代px;三、Flexbox控制容器与按钮伸缩;四、CSS变量配合requestAnimationFrame优化的JS动态适配;五、Tailwind等框架的响应式工具类。 如果您希望H…

    2025年12月23日
    000
  • 如何查看编写的html_查看自己编写的HTML文件效果【效果】

    要查看HTML文件的浏览器渲染效果,需确保文件以.html为扩展名保存、用浏览器直接打开、利用开发者工具调试、必要时启用本地HTTP服务器、或使用编辑器实时预览插件。 如果您编写了HTML代码,但无法直观看到其在浏览器中的实际渲染效果,则可能是由于文件未正确保存、未使用浏览器打开或文件扩展名设置错误…

    2025年12月23日
    400
  • node.js怎么运行html_node.js运行html步骤【指南】

    答案是使用Node.js内置http模块、Express框架或第三方工具serve可快速搭建服务器预览HTML文件。首先通过http模块创建服务器并读取index.html返回响应;其次用Express初始化项目并配置静态文件服务;最后利用serve工具全局安装后一键启动服务器,三种方式均在浏览器访…

    2025年12月23日
    300
  • html5游戏怎么修改_HT5改JS逻辑或资源文件调整游戏玩法效果【修改】

    需直接编辑核心JavaScript代码或替换图片、音频等资源文件;先用浏览器开发者工具的Sources面板定位含game、main等关键词的.js文件,再搜索score++、if (health等逻辑片段进行修改。 如果您下载了某个HTML5游戏的本地文件,希望调整其玩法逻辑或替换资源以改变视觉效果…

    2025年12月23日
    000
  • html5怎么重叠图片_html5用position:absolute或z-index让图片重叠【重叠】

    在HTML5中实现图片重叠需结合CSS定位与层叠控制:一、用position:absolute+top/left精确定位,父容器设position:relative;二、用z-index设定堆叠顺序(需已定位);三、用transform:translate()实现无文档流干扰的偏移重叠;四、用CSS…

    2025年12月23日
    200
  • html5如何建立站点_HTML5站点建立步骤与网站搭建技巧【指南】

    HTML5网站搭建需五步:一、建my-website目录及css/js/images子目录,含index.html;二、写标准HTML5骨架,含DOCTYPE、lang、meta、语义化标签;三、外链CSS与defer/async脚本;四、用http-server启本地服务;五、用email/num…

    2025年12月23日
    000
  • html5怎么设置黑体_html5用CSS font-family设黑体或font-weight加粗【设置】

    在HTML5中实现黑体及加粗需用CSS的font-family和font-weight:一、font-family按优先级列“SimHei”,“Microsoft YaHei”,“Heiti SC”,sans-serif;二、font-weight用700或bold;三、组合声明并注意继承;四、可用…

    2025年12月23日
    000
  • html5怎么去除黑点_html5用list-style:none去除ul/ol列表黑点【去除】

    可通过 CSS 的 list-style 属性隐藏列表标记:一、list-style: none 最常用;二、list-style-type: none 精准移除符号;三、重置 list-style 全部子属性应对样式干扰;四、display: inline-block 配合 list-style:…

    2025年12月23日
    000
  • navigator怎么用html5_HTML5用navigator对象查浏览器信息如语言【对象】

    可通过navigator对象获取浏览器语言、设备类型、平台信息、地理定位和媒体设备支持:navigator.language/languages返回语言代码;userAgent判断移动设备;platform返回操作系统;geolocation检测定位支持;mediaDevices检查媒体访问能力。 …

    2025年12月23日
    000
  • html如何学好_学好HTML的关键点与练习【关键】

    学好HTML需掌握基础语法结构、熟记语义化标签、通过真实项目练习、验证代码规范性并拆解优质网页源码。具体包括:标准HTML5骨架、正确使用header/nav/main等标签、构建个人页与新闻页、W3C校验及阅读mozilla.org源码。 如果您希望掌握HTML语言并能熟练构建网页结构,则需要聚焦…

    2025年12月23日
    000
  • html5怎么交css_html5用link外链或style内嵌引入css样式生效【引入】

    CSS样式未生效时,应依次检查link外链路径与MIME类型、style内嵌位置与语法、行内style属性格式,并通过开发者工具的Elements、Styles和Computed面板验证加载与优先级。 如果您在HTML5文档中尝试引入CSS样式但页面未按预期渲染,则可能是由于CSS引入方式不正确或路…

    2025年12月23日
    000

发表回复

登录后才能评论
关注微信