Linux 系统管理员和开发者经常需要追踪用户活动、系统登录历史以及服务器重启记录,以便进行故障排查、安全审计或性能分析,在众多命令中,last 命令是一个简单而强大的工具,它能够从 /var/log/wtmp 文件中读取信息,并显示用户登录、注销的历史记录,本文将详细介绍 last 命令的基本用法、常用选项、输出解析以及实际应用场景,帮助用户充分利用这一工具管理 Linux 系统。

last 命令的基本用法
last 命令的基本语法非常简单,直接在终端输入 last 即可执行,默认情况下,该命令会显示所有用户的登录记录,包括登录终端、来源 IP 地址、登录时间和持续时间等信息。
last
执行后,终端会显示类似以下格式的输出:
root pts/0 192.168.1.100 Tue Nov 12 09:15 still logged in
user1 pts/1 10.0.0.55 Tue Nov 12 08:30 - 09:00 (00:30)
reboot system boot 5.4.0-65-generic Tue Nov 12 08:15 still running (since Tue Nov 12 08:15)
每行记录代表一次登录或系统事件,按时间倒序排列,最新的记录显示在最上方,默认情况下,last 命令会显示最近 100 条记录,但可以通过 -n 或 -w 选项指定显示的行数。
last 命令的常用选项
last 命令提供了多个选项,用于过滤和格式化输出结果,以满足不同的需求,以下是一些常用的选项及其功能:
| 选项 | 功能描述 |
|---|---|
-n <num> 或 -w <num> |
指定显示的记录行数,last -n 20 显示最近 20 条记录 |
-a |
显示远程主机的 IP 地址,而不是主机名 |
-d |
将登录终端的 IP 地址解析为主机名 |
-i |
显示登录 IP 地址,而不是主机名 |
-R |
不显示远程主机的名称或 IP 地址 |
-x |
显示系统关机、重启等事件,而不仅仅是用户登录记录 |
-f <file> |
指定读取的日志文件,默认为 /var/log/wtmp,也可指定 /var/log/btmp(失败登录记录) |
要查看最近 50 条系统重启记录,可以使用以下命令:

last -x -n 50 | grep "reboot"
last 命令的输出解析
理解 last 命令的输出格式对于分析日志至关重要,以下是一个典型的输出行及其各部分的含义:
user1 pts/1 10.0.0.55 Tue Nov 12 08:30 - 09:00 (00:30)
- 用户名:
user1,表示登录系统的用户名。 - 终端:
pts/1,表示伪终端设备名,如果是本地登录则为tty后跟编号。 - 远程主机:
0.0.55,表示用户从哪个 IP 地址或主机登录,本地登录显示为localhost。 - 登录时间:
Tue Nov 12 08:30,表示用户登录的具体日期和时间。 - 注销时间:
09:00,如果用户已注销,显示注销时间;如果仍在线,则显示still logged in。 - 持续时间:
(00:30),表示会话持续的时间,格式为HH:MM或MM:SS。
对于系统重启记录,输出格式略有不同:
reboot system boot 5.4.0-65-generic Tue Nov 12 08:15 still running (since Tue Nov 12 08:15)
- 事件类型:
reboot,表示系统重启。 - 启动类型:
system boot,表示系统启动。 - 内核版本:
4.0-65-generic,表示启动时使用的内核版本。 - 启动时间:
Tue Nov 12 08:15,表示系统启动的时间。 - 运行状态:
still running,表示系统仍在运行,括号内显示启动时间。
last 命令的实际应用场景
用户登录审计
通过 last 命令,管理员可以查看特定用户的登录历史,确认其登录时间、地点和持续时间,有助于发现异常登录行为,查看 user1 的登录记录:
last user1
系统故障排查
当系统出现无故重启或服务异常中断时,可以通过 last -x 查看重启记录,结合系统日志进一步分析故障原因。
last -x | grep -E "reboot|shutdown"
安全监控
结合 lastb 命令(读取 /var/log/btmp 文件),可以查看失败登录尝试,用于检测暴力破解等安全威胁。

lastb -n 10
资源使用分析
通过分析用户登录持续时间,可以评估系统资源的使用情况,统计长时间在线的用户:
last | awk '{print $1, $NF}' | grep "still logged in" | sort | uniq -c
注意事项
- 日志文件权限:
/var/log/wtmp和/var/log/btmp文件通常只有 root 用户可读,普通用户执行last命令可能无法查看完整信息。 - 日志轮转:Linux 系统通常会轮转日志文件(如
wtmp.1、wtmp.2),last命令默认不读取历史日志文件,需通过-f选项手动指定。 - 日志大小:
wtmp文件会随着时间增长,占用大量磁盘空间,建议定期清理或归档旧日志。
last 命令是 Linux 系统管理中不可或缺的工具,它提供了简单高效的方式来查看用户登录和系统活动历史,通过掌握其基本用法和常用选项,管理员可以快速定位问题、审计安全事件并优化系统管理,在实际应用中,建议结合其他日志分析工具(如 grep、awk、journalctl)使用,以获取更全面的信息,无论是日常维护还是应急响应,last 命令都能发挥重要作用,是 Linux 用户必备的技能之一。