首页 > 编程笔记 > Linux笔记 阅读:133

Linux查看用户信息命令汇总(附带实例)

查看 Linux 上登录的用户信息,可以借助 w、who、lastlog 或者 uptime 命令实现。

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) 第二行是项目的说明,从第三行开始每行代表一个用户。这些项目具体如下:
从 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 命令调用查看。

相关文章