开发工具

Shell之 last 指令

last 是 Unix 和类 Unix 系统中的一个命令行工具,用于显示最近登录到系统的用户的信息。这些信息通常包括用户名、登录终端、登录时间、注销时间以及登录持续时间等。last 命令通过读取 /var/log/wtmp 文件来获取这些信息,该文件记录了所有用户的登录和注销活动。


基本语法

last [选项] [用户名]

选项:用于修改 last 命令的输出格式或行为。

用户名:可选参数,用于显示指定用户的登录信息。如果不指定用户名,last 将显示所有用户的登录信息。


常用选项

-a:显示完整的登录和注销记录,包括那些没有成功登录的尝试。

-d:显示系统的关闭和重启时间。

-f:指定读取的日志文件,而不是默认的 /var/log/wtmp。

-i:不显示 IP 地址。

-n:指定显示的记录数。

-R:不显示主机名。

-t:仅显示指定时间之前的记录。

-x:显示系统的关闭、重启和运行状态更改记录。


输出解释

last 命令的输出通常包含以下列:

用户名:登录到系统的用户。

终端:用户登录时使用的终端或远程主机。

登录时间:用户登录系统的时间。

注销时间:用户注销系统的时间(如果已注销)。

持续时间:用户登录系统的持续时间(如果已注销)。

IP 地址:远程登录用户的 IP 地址(如果适用)。


示例

1、显示所有用户的登录信息

last


2、显示指定用户的登录信息

last username

将 username 替换为要查询的用户名。


3、显示最近 5 次登录信息

last -n 5


4、显示系统的关闭和重启时间

last -d


5、显示完整记录,包括未成功登录的尝试

last -a


注意事项

1、last 命令需要读取 /var/log/wtmp 文件,因此通常需要超级用户权限才能访问所有信息。

2、/var/log/wtmp 文件的大小是有限的,因此只能保存一定数量的登录记录。旧记录会被新记录覆盖。

3、在某些系统上,可能还需要安装额外的软件包(如 util-linux)才能使用 last 命令。

4、last 命令的输出格式可能因系统配置和选项的不同而有所差异。