Linux 中的 last 命令用法

如果要管理多用户系统,有时候会需要知道谁、何时以及从何处登录到计算机。

last 是一个命令行实用程序,用于显示有关系统用户的最后登录会话的信息。当您需要跟踪用户活动或调查可能的安全漏洞时,此功能非常有用。

本文介绍了如何使用 last 命令查看登录系统的人员。

如何使用 last 命令

last 命令的语法如下:

last [OPTIONS] [USER] [<TTY>...]

每次用户登录系统时,该会话的记录都会写入 /var/log/wtmp 文件中。 last 读取文件 wtmp 文件并打印有关用户登录和注销的信息。从最近的记录开始,记录以相反的时间顺序打印。

在没有任何选项或参数的情况下调用 last 时,输出看起来像这样:

mark     pts/0        10.10.0.7   Fri Feb 21 21:23   still logged in
mark     pts/0        10.10.0.7   Tue Feb 18 22:34 - 00:05  (01:31)
lisa     :0           :0          Thu Feb 13 09:19   gone - no logout
reboot   system boot  4.15.0-74-g Fri Jan 24 08:03 - 08:03  (00:00)
...

输出的每一行从左到右包含以下几列:

  • 用户名。系统重新引导或关闭时, last 显示特殊用户 rebootshutdown
  • 会话所在的 tty 。 :0 通常表示用户正在登录桌面环境。
  • 用户登录的 IP 地址或主机名。
  • 会话的开始和结束时间。
  • 会话持续时间。如果会话仍处于活动状态或用户未注销,则 last 将显示有关该会话的信息,而不是持续时间。

要将输出限制为特定用户或 tty ,请将用户名或 tty 作为参数传递给 last 命令:

last mark

您还可以指定多个用户名和 ttys 作为参数:

last mark root pts/0

last 命令选项

last 接受几个选项,这些选项使您可以限制,格式化和过滤输出。在本节中,我们将介绍最常见的内容。

要指定您希望在命令行上打印的行数,请将数字前面加一个连字符传递给 last 。例如,要仅打印最后十个登录会话,请输入:

last -10

使用 -p(--present) 选项,您可以找出在特定日期登录系统的人员。

last -p 2020-01-15

使用 -s(--since) 和 -t(--until) 选项指示 last 显示自指定时间以来或直到指定时间为止的行。这两个选项通常一起使用,以定义您要检索信息的时间间隔。例如,要显示 2 月 13 日至 2 月 18 日的登录记录,可以运行:

last -s 2020-02-13 -u 2020-02-18

传递给 -p-s 的时间可以通过 -t 选项可以按以下格式指定:

YYYYMMDDhhmmss
YYYY-MM-DD hh:mm:ss
YYYY-MM-DD hh:mm     (seconds will be set to 00)
YYYY-MM-DD           (time will be set to 00:00:00)
hh:mm:ss             (date will be set to today)
hh:mm                (date will be set to today, seconds to 00)
now
yesterday            (time is set to 00:00:00)
today                (time is set to 00:00:00)
tomorrow             (time is set to 00:00:00)
+5min
-5days

默认情况下, last 不显示秒和年。使用 -F(--fulltimes) 选项查看完整的登录和注销时间和日期:

last -F

如果想显示 IP 地址,可以使用 -i(--ip) 选项,使用 -d(--dns) 来显示主机名:

last -i

结论

last 命令显示有关用户登录和注销时间的信息。有关命令的更多信息,请在终端中键入 man last 查看。