当前位置:首页>弱电技术>系统运维>在 Linux 上查看登录用户的方法

在 Linux 上查看登录用户的方法

linux 提供了许多有用的命令来查看用户、他们的活动以及他们对系统的影响。

在 Linux 上查看登录用户的方法

在 Linux 上有很多方法可以获取登录系统的用户列表并查看他们在做什么。本文中描述的命令都提供了非常有用的信息。

users

users命令显示已登录用户的简单列表。在此示例中,一位用户登录两次,因此被列出两次。

$ users
nemo popeye shs shs

请注意,用户按字母顺序列出。

who

who命令提供附加信息。登录终端连同登录日期和时间被识别。最后一个字段显示连接系统的终端或 IP 地址。

$ who
shs      tty2         2022-11-12 10:54 (tty2)
nemo     pts/0        2022-11-15 11:07 (192.168.0.3)
shs      pts/5        2022-11-15 10:41 (192.168.0.3)
popeye   pts/2        2022-11-15 11:12 (192.168.0.3)

w

w命令提供有关登录用户的更多信息。第一行输出显示当前时间、系统运行了多长时间、登录用户数以及 1、5 和 15 分钟的平均负载。此信息将使您快速了解系统的繁忙程度。

列标题后面的行显示用户名、登录时间、会话空闲时间、与用户 tty (JCPU) 关联的所有进程使用的时间、用户终端的当前进程使用的时间 (PCPU)、以及正在运行的命令。如果会话当前空闲,您将只看到正在使用的 shell(例如,-bash)。

w命令可以快速查看系统的使用量以及大部分活动的来源。

$ w
 12:16:09 up 3 days, 15:10,  4 users,  load average: 0.00, 0.01, 0.01
USER     TTY        LOGIN@   IDLE   JCPU   PCPU WHAT
shs      tty2      Sat13    3days  0.05s  0.05s /usr/libexec/gnome-session-bina
nemo     pts/0     11:07    4:38   0.04s  0.04s -bash
shs      pts/5     10:41    0.00s  0.10s  0.00s w
popeye   pts/2     11:12    1:02m  0.02s  0.02s -bash

last

last命令显示用户登录列表,最近的登录在最前面。要查看最近的登录,您可以使用如下命令:

$ last | head -3
popeye   pts/2        192.168.0.3      Tue Nov 15 11:12   still logged in
nemo     pts/0        192.168.0.3      Tue Nov 15 11:07   still logged in
shs      pts/5        192.168.0.3      Tue Nov 15 10:41   still logged in

要查看当前可用的登录信息可以追溯到多远,请将last命令的输出通过管道传递给 tail 命令。

$ last | tail -3
reboot   system boot  5.14.10-300.fc35 Mon Jun  6 15:57 - 16:55  (00:58)

wtmp begins Mon Jun  6 15:57:30 2022

ps

如下所示的 ps命令将提供用户正在运行的进程列表。添加grep -v `whoami`只是省略了您将运行以创建列表的命令。您可以只用您的用户名进行grep(例如,grep -v shs),但显示的命令适用于任何人。

$ ps -ef | grep nemo | grep -v `whoami`
root      124982     787  0 11:07 ?        00:00:00 sshd: nemo [priv]
nemo      124990       1  0 11:07 ?        00:00:00 /usr/lib/systemd/systemd --user
nemo      124999  124990  0 11:07 ?        00:00:00 (sd-pam)
nemo      125018  124982  0 11:07 ?        00:00:00 sshd: nemo@pts/0
nemo      125025  125018  0 11:07 pts/0    00:00:00 -bash

通过使用grep按第一个字段选择进程详细信息,您将只能看到该用户的进程。^nemo 参数仅选择以“nemo”开头的输出行。

$ ps -ef | grep ^nemo
nemo      124990       1  0 11:07 ?        00:00:00 /usr/lib/systemd/systemd --user
nemo      124999  124990  0 11:07 ?        00:00:00 (sd-pam)
nemo      125018  124982  0 11:07 ?        00:00:00 sshd: nemo@pts/0
nemo      125025  125018  0 11:07 pts/0    00:00:00 -bash

ID

您可以使用id命令显示用户的一些额外详细信息。这包括用户的 UID(用户 ID)、GID(组 ID)和用户所属组的列表。

$ id nemo
uid=1012(nemo) gid=1012(nemo) groups=1012(nemo),900(techs)

finger

您还可以使用finger命令获取有关用户的一些信息。

$ finger nemo
Login: nemo                             Name: Nemo the Fish
Directory: /home/nemo                   Shell: /bin/bash
On since Tue Nov 15 11:07 (EST) on pts/0 from 192.168.0.3
   1 minute 44 seconds idle
No mail.
No Plan.

uptime

uptime命令会告诉您自上次重新启动以来系统运行了多长时间以及当前登录的用户数。与w命令一样,它也提供系统负载平均值。

$ uptime
 12:07:47 up 3 days, 15:01,  4 users,  load average: 0.07, 0.13, 0.06

top and htop

如果您想查看特定用户的进程是否对系统性能有影响,您可以使用top或htop等工具来确定是否有任何用户进程正在大量使用系统资源。使用这些工具中的任何一个,按Shift+M键将按内存使用情况对输出进行排序。使用Shift+P将按处理器使用情况对输出进行排序。下面的示例显示 nemo 是系统 CPU 和内存的重要用户,但系统并未受到很大影响。

top - 12:41:48 up 3 days, 15:35,  4 users,  load average: 0.14, 0.06, 0.02
Tasks: 262 total,   1 running, 261 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.8 us,  0.5 sy,  0.0 ni, 98.5 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   5926.3 total,    145.1 free,   2273.7 used,   3507.5 buff/cache
MiB Swap:   5926.0 total,   5926.0 free,      0.0 used.   3374.3 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
   3059 root      20   0  259104  29984   8428 S   1.7   0.5  11:11.01 sssd_kcm
 134122 nemo      20   0  222648   3976   3524 R   1.3   0.2   0:00.07 loop <===
 128996 shs       20   0  225824   4436   3564 R   0.3   0.1   0:00.63 top
      1 root      20   0  172392  17720  11256 S   0.0   0.3   0:03.51 systemd
…

总结

用于查看登录用户、他们正在运行的进程以及它们如何影响性能的命令将派上用场,无论您是想了解 Linux 系统的使用方式还是寻找性能问题的根源。

本文由 @小喵 发布于弱电智能网 。

题图来自Unsplash,基于CC0协议

内容观点仅代表作者本人,弱电智能网平台仅提供信息存储空间服务。

如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

文章名称:《在 Linux 上查看登录用户的方法》

文章链接:https://www.ruodian360.com/tech/sytemops/37441.html

添加微信ydian188免费入群,记得备注“弱电智能网”。

给TA打赏
共{{data.count}}人
人已打赏
系统运维

在Linux上压缩文件使用 zip 和 zipcloak 命令

2022-12-15 22:26:28

系统运维

Linux上使用 ac 命令查看用户登录时间

2022-12-15 23:22:23

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索