last命令是一个非常有用的命令行实用程序,用于显示近期用户或终端的登录情况,管理员可以获知谁曾经或者企图连接系统。当你需要跟踪用户活动或调查可能的安全漏洞时,此功能非常有用。如果你管理过Linux服务器或做过Linux系统运维,往往通常需要知道登录机器的人员,时间和来源或者了解系统最近重启记录等等,那么你一定需要了解下last命令。本文为大家介绍下Linux中last的用法和Linux中last命令汇总。
一、Linux中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) ...
输出的每一行从左到右包含以下几列:
列:用户名:当系统重新引导或关闭时,最后显示特殊用户的重新引导和关闭。 第二列:终端位置,(pts/0
伪终端,意味着从SSH
或telnet
等工具远程连接的用户,:0
通常表示用户正在登录桌面环境。) 第三列:用户登录的IP地址或主机名。 第四列:会话的开始和结束时间。 第五列:会话持续时间, 如果会话仍处于活动状态或用户未注销,则last
将显示有关该会话的信息,而不是持续时间。
要将输出限制为特定用户或tty
,可以将用户名或tty
作为参数传递给last命令,格式如下:
last mark last pts/0
还可以指定多个用户名和ttys
作为参数,类似如下:
last mark root pts/0
二、Linux中last命令汇总
last
接受几个选项,这些选项使可以限制,格式化和过滤输出。 在本节中,我们将介绍最常见的选项使用。
要指定使用last
命令打印的行数,可以在last
命令后跟上前加上一个连字符数字。 例如,要仅打印最后十个登录会话,请输入:
last -10
使用-p(--present)
选项,可以找出谁在特定日期登录了系统。
last -p 2020-01-15
使用-s(--since)
和-t(--until)
选项告诉最后显示自指定时间以来或直到指定时间为止的行。 这两个选项通常一起使用,以定义您要检索信息的时间间隔。 例如,要显示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
-i(--ip)
选项强制last总是显示IP地址,-d(--dns)
强制显示主机名:
last -i