Linux查看用户信息命令汇总(附带实例)
查看 Linux 上登录的用户信息,可以借助 w、who、lastlog 或者 uptime 命令实现。
解释一下这个命令的输出:
1) 第一行其实和 top 命令的第一行非常类似,主要显示了系统当前时间、系统的运行时间(up)、有多少用户登录(users),以及系统在之前 1 分钟、5 分钟、15 分钟的平均负载(load average)。
2) 第二行是项目的说明,从第三行开始每行代表一个用户。这些项目具体如下:
从 w 命令的输出中已知,Linux 服务器上已经登录了三个 roo 用户,一个是从本地终端 1 登录的(tty1),两个是从远程终端 1(pts/0)和远程终端 2(pts/1)登录的,登录的来源 IP 是 192.168.112.1。
先来看看 last 命令,具体如下:
再来看看 lastlog 命令,具体如下:
Linux w命令
如果我们想要知道 Linux 服务器上目前已经登录的用户信息,就可以使用 w 命令。[root@localhost ~]# w -f 11:14:02 up 2:52, 3 users, load average: 0.00, 0.03, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root tty1 - 11:13 58.00s 0.00s 0.00s -bash root pts/0 192.168.112.1 09:46 6:08 0.05s 0.05s -bash root pts/2 192.168.112.1 11:08 2.00s 0.01s 0.00s w -f在当前系统中,w 命令需要添加 -f 选项,才能列出登录用户来源 IP 地址。-f 选项在旧版系统中默认执行,可以不写。
解释一下这个命令的输出:
1) 第一行其实和 top 命令的第一行非常类似,主要显示了系统当前时间、系统的运行时间(up)、有多少用户登录(users),以及系统在之前 1 分钟、5 分钟、15 分钟的平均负载(load average)。
2) 第二行是项目的说明,从第三行开始每行代表一个用户。这些项目具体如下:
- USER:登录的用户名;
- TTY:登录终端;
- FROM:从哪个 IP 地址登录;
- LOGIN@:登录时间;
- IDLE:用户闲置时间;
- JCPU:和该终端连接的所有进程占用的 CPU 运行时间。这个时间中并不包含过去的后台作业时间,但是包含当前正在运行的后台作业所占用的时间;
- PCPU:当前进程所占用的 CPU 运行时间;
- WHAT:当前正在运行的命令。
从 w 命令的输出中已知,Linux 服务器上已经登录了三个 roo 用户,一个是从本地终端 1 登录的(tty1),两个是从远程终端 1(pts/0)和远程终端 2(pts/1)登录的,登录的来源 IP 是 192.168.112.1。
Linux who命令
who 命令比 w 命令稍微简单一些,也可以用来查看系统中已经登录的用户,具体如下:[root@localhost ~]# who root tty1 2024-02-19 11:13 root pts/0 2024-02-19 09:46 (192.168.112.1) root pts/2 2024-02-19 11:08 (192.168.112.1) # 用户名 登录终端 登录时间(登录来源 IP)
Linux last和lastlog命令
如果原先登录的用户现在已经退出登录,那么是否还可以查看呢?当然可以,这时就需要使用 last 和 lastlog 命令了。先来看看 last 命令,具体如下:
[root@localhost ~]# last # 查询当前已经登录和过去登录的用户信息 [root@localhost ~]# last root tty1 Mon Feb 19 11:13 still logged in root pts/2 192.168.112.1 Mon Feb 19 11:08 still logged in root pts/1 192.168.112.1 Mon Feb 19 10:46 - 11:08 (00:21) root pts/0 192.168.112.1 Mon Feb 19 09:46 still logged in root pts/2 192.168.112.1 Thu Dec 21 15:13 - 15:14 (00:00) root pts/1 192.168.112.1 Thu Dec 21 15:13 - 15:37 (00:23) root pts/0 192.168.112.1 Thu Dec 21 15:13 - 16:42 (01:29) root tty1 Thu Dec 21 15:13 - 11:13 (59+19:59) # 用户名 登录终端 登录IP 登录时间 - 退出时间(在线时间) reboot system boot 5.14.0-162.6.1.e Thu Dec 21 15:10 still running # 还能看到系统的重启时间 ... 省略部分输出 ...last 命令默认是去读取 /var/log/wtmp 日志文件的,这是一个二进制文件,不能直接用 vi 编辑,只能通过 last 命令调用。
再来看看 lastlog 命令,具体如下:
[root@localhost ~]# lastlog # 查看系统中所有用户的最后一次登录时间、登录端口和来源 IP Username Port From Latest root pts/1 192.168.112.1 一 2 月 19 11:24:47 +0800 2024 bin **从未登录过** daemon **从未登录过** adm **从未登录过** # 用户名 终端号 登录IP 最后一次登录时间 ... 省略部分输出 ...lastlog 命令默认是去读取 /var/log/lastlog 日志文件的,这个文件同样是二进制文件,不能直接用 vi 编辑,需要使用 lastlog 命令调用查看。