Linux查看本机登陆用户信息(w、who、last和lastlog)详解

    xiaoxiao2022-06-30  97

    w 命令查看某一时刻用户的行为

    [lvjinliang@dev_server ~]$ w 09:34:40 up 127 days, 13:49, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT lvjinlia pts/0 203.156.223.130 09:33 0.00s 0.00s 0.00s w lvjinlia pts/2 203.156.223.130 09:34 25.00s 0.01s 0.00s sshd: lvjinliang [priv]

    说明:

    解释一下这个命令的输出。

    第一行其实和 top 命令的第一行非常类似,主要显示了系统当前时间、开机多久(up)、有多少用户登录(users),以及 1 分钟、5 分钟、15 分钟前的平均负载(load average)。

    第二行是项目的说明,从第三行开始每行代表一个用户。这些项目具体如下:

    USER:登录的用户名。TTY:登录终端。FROM:从哪个 IP 地址登录。LOGIN@:登录时间。IDLE:用户闲置时间。JCPU:和该终端连接的所有进程占用的 CPU 运算时间。这个时间里并不包括过去的后台作业时间,但是包括当前正在运行的后台作业所占用的时间。PCPU:当前进程所占用的 CPU 运算时间。WHAT:当前正在运行的命令。

    从 w 命令的输出中已知,Linux 服务器上已经登录了两个 root 用户,都是从远程终端 登录的,登录的来源 IP 是 203.156.223.130。

    pts/0:执行 w命令

    pts/2:执行 sshd 其实就是执行一个su 命令

    who 用来查看系统中已经登录的用户

    [lvjinliang@dev_server ~]$ who lvjinliang pts/0 2019-05-22 09:33 (203.156.223.130) lvjinliang pts/2 2019-05-22 09:34 (203.156.223.130) lvjinliang pts/3 2019-05-22 09:46 (203.156.223.130) #用户名    登录终端       登录时间 (登录来源IP)

    last 查询当前已经登录和过去登录的用户信息

    [root@dev_server ~]# last lvjinlia pts/3 203.156.223.130 Wed May 22 09:46 still logged in lvjinlia pts/2 203.156.223.130 Wed May 22 09:34 still logged in lvjinlia pts/0 203.156.223.130 Wed May 22 09:33 still logged in lvjinlia pts/0 203.156.223.130 Tue May 21 11:14 - 11:34 (00:20) lvjinlia pts/2 203.156.223.130 Mon May 20 11:33 - 11:59 (00:25) lvjinlia pts/0 203.156.223.130 Mon May 20 11:23 - 11:47 (00:23) lvjinlia pts/2 203.156.223.130 Mon May 20 10:54 - 11:23 (00:29) lvjinlia pts/0 203.156.223.130 Mon May 20 10:35 - 11:07 (00:32) #用户名  登录终端      登录来源IP        登录时间段 (still logged in表示当前依然在登录)

    lastlog 查看系统中所有用户的最后一次登录时间、登录端口和来源IP

    [root@dev_server ~]# lastlog 用户名 端口 来自 最后登陆时间 root pts/2 101.95.191.26 四 11月 23 13:01:09 +0800 2017 bin **从未登录过** daemon **从未登录过** adm **从未登录过** lp **从未登录过** sync **从未登录过** shutdown **从未登录过** halt **从未登录过** mail **从未登录过** uucp **从未登录过** operator **从未登录过** games **从未登录过** gopher **从未登录过** ftp **从未登录过** nobody **从未登录过** vcsa **从未登录过** saslauth **从未登录过** postfix **从未登录过** sshd **从未登录过** ntp **从未登录过** tcpdump **从未登录过** nscd **从未登录过** mysql **从未登录过** www **从未登录过** apache **从未登录过** lvjinliang pts/1 203.156.223.130 三 5月 22 10:03:52 +0800 2019

    lastlog 命令默认是去读取 /var/log/lastlog 日志文件的,这个文件同样是二进制文件,不能直接用 vi 编辑,需要使用 lastlog 命令调用

     

    观注快乐程序员公众号,每日分享一点小知识。爱编程,爱生活!

     

     


    最新回复(0)