Linux 常用命令 - last 【显示历史登录用户列表】

有没有人在啊,想请问下,Linux 常用命令 - last 【显示历史登录用户列表】
最新回答
菊花般的笑容

2026-10-21 14:23:24

last 命令是 Linux 中用于显示用户登录和注销记录、系统重启和关机记录的工具,通过读取 /var/log/wtmp 文件获取信息,支持多种选项实现灵活查询。

  • 基本功能

    显示所有登录记录:直接输入 last 命令,会列出所有用户的登录、注销信息,以及系统重启(reboot)和关机(shutdown)记录。输出包含用户名、终端设备(如 pts/6、tty1)、远程主机(若有)、登录时间、退出时间(或“still logged in”表示仍在线)及会话时长。

    显示指定用户记录:通过 last [username] 可查询特定用户的登录历史,例如 last jay 仅显示用户“jay”的记录。

  • 常用选项及作用

    控制显示行数:-n [number] 或 --limit [number] 限制输出行数,如 last -n 5 仅显示最近 5 条记录。

    时间格式调整:

    -F 或 --fulltimes:以完整格式显示日期和时间(如 Sun Feb 23 21:58:55 2025)。

    --time-format [format]:自定义时间戳格式,可选值包括:

    notime:不显示时间。

    short(默认):简略格式(如 Feb 23 21:58)。

    full:与 -F 相同,显示完整时间。

    iso:ISO-8601 格式(含时区,如 2025-02-23T21:58:55+08:00)。

    主机信息显示:

    -a 或 --hostlast:在最后一列显示主机名(需配合 --dns 使用)。

    -d 或 --dns:将非本地登录的 IP 地址解析为主机名。

    -i 或 --ip:显示主机的 IP 地址而非主机名。

    -R 或 --nohostname:隐藏主机名字段。

    系统事件记录:-x 或 --system 显示系统关机、运行级别变化等记录(如 reboot system boot)。

    时间范围筛选:

    -s [time] 或 --since [time]:显示指定时间后的记录。

    -t [time] 或 --until [time]:显示指定时间前的记录。

    -p [time]:等价于同时使用 --since 和 --until 指定同一时间点。

    自定义日志文件:-f [file] 或 --file [file] 指定非默认的 /var/log/wtmp 文件(如 last -f /var/log/btmp)。

  • 时间参数格式

    绝对时间:支持 YYYYMMDDhhmmss、YYYY-MM-DD hh:mm:ss、YYYY-MM-DD 等格式。例如:

    20250223215855 表示 2025 年 2 月 23 日 21:58:55。

    2025-02-23 21:58 表示同一天 21:58(秒数补为 00)。

    相对时间:使用 now(当前时间)、yesterday(昨天 00:00:00)、+5min(当前时间加 5 分钟)、-5days(当前时间减 5 天)等。例如:

    last -s yesterday 显示昨天至今的记录。

    last -t +1hour 显示 1 小时前的记录。

  • 注意事项

    依赖文件完整性:last 依赖 /var/log/wtmp 文件,若文件被删除或损坏(如手动清理或系统故障),历史记录将丢失。

    日志轮换影响:系统日志轮换策略(如 logrotate)可能定期删除旧记录,导致 last 无法查询更早的历史。

    权限要求:查询所有用户记录通常需要管理员权限(root),普通用户可能仅能看到自身记录。

  • 示例场景

    查询最近登录的 10 条记录:last -n 10。

    查看用户“root”的完整时间格式记录:last -F root。

    筛选今天 10:00 至 12:00 的登录记录:last -s "today 10:00" -t "today 12:00"。

    显示系统关机事件:last -x | grep reboot。