当前位置: 首页 > article >正文

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

简介

last 命令源自英文单词 “last”,意为“最后”。该命令用于显示系统中用户的登录和注销记录,以及系统的重启和关机记录。它通过读取 /var/log/wtmp 文件来获取这些信息,wtmp 文件记录了所有用户的登录和注销活动。

使用方式

last [options] [username...] [tty...]
lastb [options] [username...] [tty...]

常用选项

  • -a, --hostlast:在最后一列显示主机名称。与 --dns 选项配合使用时比较有用。
  • -d, --dns:对于非本地登录,Linux 除了存储远程主机的名称外,还会保存其 IP 地址。使用此选项会将 IP 地址转换为主机名显示。
  • -f, --file file:指定一个特定的文件供 last 命令使用,而非默认的 /var/log/wtmp 文件。此选项可以多次出现,所有指定的文件都会被依次处理。
  • -F, --fulltimes:以完整格式显示登录和退出的日期与时间。
  • -i, --ip:与 --dns 类似,但显示的是主机的 IP 地址而不是主机名。
  • -number; -n, --limit number:指定 last 命令最多显示的记录行数。
  • -p, --present time:显示指定时间点登录的用户。该选项等同于同时使用 --since--until 选项,指定相同的时间。
  • -R, --nohostname:不显示主机名字段。
  • -s, --since time:显示自指定时间以来的登录状态。这对于查找某一时刻哪些用户在线特别有用,通常会与 --until 选项一起使用。
  • -t, --until time:显示指定时间之前的登录状态。
  • --time-format format:定义输出的时间戳格式,可选值有 notimeshortfullisonotime 表示不显示时间戳;short 为默认格式;full--fulltimes 选项一样,显示完整时间;iso 则以 ISO-8601 格式显示时间戳,该格式包含时区信息,适用于在系统外部进行打印记录分析。
  • -w, --fullnames:显示完整的用户名和域名。
  • -x, --system:显示系统关机记录以及运行级别变化记录。

时间格式

下面是 time 参数支持的各种格式。可以使用这些格式来指定特定的日期或时间,便于查询登录状态:

格式说明
YYYYMMDDhhmmss年月日时分秒 形式。
YYYY-MM-DD hh:mm:ss年-月-日 时:分:秒 形式。
YYYY-MM-DD hh:mm年-月-日 时:分 形式,(秒数自动补为 00)。
YYYY-MM-DD年-月-日 形式,(时间自动补为 00:00:00)。
hh:mm:ss时:分:秒 形式,(日期自动设为今天)。
hh:mm时:分 形式,(日期自动设为今天,秒数补为 00)。
now表示当前时间。
yesterday表示昨天(时间自动设为 00:00:00)。
today表示今天(时间自动设为 00:00:00)。
tomorrow表示明天(时间自动设为 00:00:00)。
+5min表示从当前时间起加上 5 分钟。
-5days表示从当前时间起减去 5 天。

参考示例

1. 显示登录记录

last

直接使用 last 可以显示出所有被记录的用户登录信息:

jay@jaylinuxlenovo:~/test$ last
jay      pts/6        :pts/0:S.0       Sun Feb 23 21:58 - 22:38  (00:39)
jay      pts/6        :pts/5:S.0       Sun Feb 23 21:25 - 21:27  (00:01)
jay      pts/1        :pts/0:S.0       Mon Feb 10 10:52 - 10:52  (00:00)
jay      pts/1        127.0.0.1        Sun Feb  9 15:41 - 02:00  (10:19)
jay      tty1                          Sun Feb  9 15:37   still logged in
jay      pts/0        127.0.0.1        Sun Feb  9 15:01 - 15:41  (00:39)
reboot   system boot  5.15.0-131-gener Sun Feb  9 14:44   still running
jay      pts/5        127.0.0.1        Thu Feb  6 17:07 - 17:07  (00:00)
......

2. 显示指定用户的登录记录

last username

使用 last 加用户名可以显示指定用户的登录记录:

jay@jaylinuxlenovo:~/test$ last jay
jay      pts/6        :pts/0:S.0       Sun Feb 23 21:58 - 22:38  (00:39)
jay      pts/6        :pts/5:S.0       Sun Feb 23 21:25 - 21:27  (00:01)
jay      pts/1        :pts/0:S.0       Mon Feb 10 10:52 - 10:52  (00:00)
jay      pts/1        127.0.0.1        Sun Feb  9 15:41 - 02:00  (10:19)
jay      tty1                          Sun Feb  9 15:37   still logged in
jay      pts/0        127.0.0.1        Sun Feb  9 15:01 - 15:41  (00:39)
......

3. 显示最后 5 条登录记录

last -n 5

使用 -n 选项可以指定输出的最多行数:

jay@jaylinuxlenovo:~/test$ last -n 5
jay      pts/6        :pts/0:S.0       Sun Feb 23 21:58 - 22:38  (00:39)
jay      pts/6        :pts/5:S.0       Sun Feb 23 21:25 - 21:27  (00:01)
jay      pts/1        :pts/0:S.0       Mon Feb 10 10:52 - 10:52  (00:00)
jay      pts/1        127.0.0.1        Sun Feb  9 15:41 - 02:00  (10:19)
jay      tty1                          Sun Feb  9 15:37   still logged in

wtmp begins Fri Oct 21 07:47:59 2022

4. 以完整格式显示登录和退出的日期与时间

last -F

使用 -F 选项可以以完整格式显示登录和退出的日期与时间:

jay@jaylinuxlenovo:~/test$ last -F -n 5
jay      pts/6        :pts/0:S.0       Sun Feb 23 21:58:55 2025 - Sun Feb 23 22:38:21 2025  (00:39)
jay      pts/6        :pts/5:S.0       Sun Feb 23 21:25:24 2025 - Sun Feb 23 21:27:17 2025  (00:01)
jay      pts/1        :pts/0:S.0       Mon Feb 10 10:52:27 2025 - Mon Feb 10 10:52:32 2025  (00:00)
jay      pts/1        127.0.0.1        Sun Feb  9 15:41:17 2025 - Mon Feb 10 02:00:21 2025  (10:19)
jay      tty1                          Sun Feb  9 15:37:52 2025   still logged in

wtmp begins Fri Oct 21 07:47:59 2022

注意事项

  • last 命令依赖于 /var/log/wtmp 文件,如果该文件被删除或损坏,last 命令将无法正常工作。
  • last 命令显示的信息可能会受到系统日志轮换策略的影响,较旧的记录可能会被删除。
  • 在某些系统中,last 命令可能需要管理员权限才能查看所有用户的登录记录。

http://www.kler.cn/a/598580.html

相关文章:

  • 使用Docker运行 Ollama本地部署 DeepSeek 模型并用Dify实现可视化操作
  • Centos7搭建Zabbix4.x监控HCL模拟网络设备:zabbix-server搭建及监控基础03
  • 音视频学习(三十):fmp4
  • Shell正则表达式
  • fastapi+playwright爬取google搜索1-3页的关键词返回json
  • 《Solidity智能合约开发:从零到一实战指南》大纲
  • SpringBoot 第三课(Ⅰ) 数据层开发
  • Simple-BEV的bilinear_sample 作为view_transformer的解析,核心是3D-2D关联点生成
  • 8、undo log
  • 使用HAI来打通DeepSeek的任督二脉
  • 我的uniapp自定义模板
  • 基于AT89C52单片机的智能家居安全监控系统设计
  • 【RabbitMQ】RabbitMQ消息的重复消费问题如何解决?
  • 编译安装redis,systemtcl配置redis自启动,系统并发调优
  • IMX8MP Android 10系统编译SDK
  • elasticsearch+sentencetransformer检索样例
  • 开源链动2+1模式、AI智能名片与S2B2C商城小程序源码在社交电商渠道拓宽中的协同应用研究
  • 石家庄 10 年 PHP 开发者转岗分析
  • Python 用户账户(让用户拥有自己的数据)
  • Java EE(13)——网络编程——UDP/TCP回显服务器