last 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于日志与安全命令族(见日志、时间与计划任务命令族)。谁在什么时候登过这台机器?查它。
last 读取 /var/log/wtmp(登录记账文件),显示用户登录、登出、系统重启的历史记录。安全审计、排查异常登录第一手资料。
一、基本用法
bash
last # 最近的登录/登出记录(新在前)
last alice # 只看 alice 的历史
last -n 20 # 只显示最近 20 条
last -F # 显示完整日期时间(含年、秒)每条记录含:用户、终端、来源 IP、登录时间、登出时间/持续时间。仍在登录的显示
still logged in,异常断线显示crash或down。
二、系统事件与重启
bash
last reboot # 系统重启历史
last -x # 含运行级别/关机事件
last reboot看机器每次重启时间(排查"什么时候宕过");-x把关机和运行级别切换也列出来。结合 uptime 可核对。
三、实战:安全审计
bash
last | grep -i "still logged in" # 当前还连着的
last -i alice # -i 显示 IP 而非主机名,更易追溯来源
# 发现陌生 IP 频繁登录 → 可能被盗号,立即改密/锁账户(见 [passwd](/linux/cmd/passwd.md))安全巡检标准动作:翻
last看有没有陌生来源 IP、非工作时间登录、或 crash 断线(可能暴力破解被踢)。发现异常立刻处置。
四、数据来源与限制
bash
# 数据来自 /var/log/wtmp,该文件会轮转(wtmp.1 等)
# 文件被清/轮转后,更早的历史查不到
last -f /var/log/wtmp.1 # 指定读旧轮转文件
last依赖 wtmp,日志轮转或被人清理后就看不到更早记录。重要审计场景应配合集中日志(如系统 journal/远程 syslog)。注意 wtmp 可能被攻击者篡改,关键证据以多源为准。
相关命令
一句话总结
last = 登录历史(读 /var/log/wtmp):显示登录/登出/重启记录,still logged in 表示在线、crash 表示异常断;last reboot 看重启史、last -F 全时间、-i 显示 IP;安全巡检翻陌生来源 IP/非工作时间登录。数据依赖 wtmp 会轮转/可被篡改,重要审计辅以集中日志。