Linux lastlog命令介绍
lastlog(last log report)命令用来显示系统中所有用户的最近登录时间,包括用户名、端口号、登录主机和登录时间。如果用户从未登录过,登录时间会显示为Never。lastlog命令的输出是按照用户ID排序的,因此可以很容易地找到某个用户的登录记录。
Linux lastlog命令适用的Linux版本
lastlog命令是一个标准的Linux命令,适用于大多数的Linux发行版,如Ubuntu, Debian, Fedora, CentOS, Red Hat等。如果你的系统中没有安装lastlog命令,你可以使用以下命令来安装它:
- 对于基于Debian的系统,如Ubuntu,你可以使用apt-get命令:
[linux@bashcommandnotfound.cn ~]$ sudo apt-get install util-linux
- 对于基于Red Hat的系统,如Fedora,你可以使用yum命令:
[linux@bashcommandnotfound.cn ~]$ sudo yum install util-linux
- 对于基于Arch的系统,如Manjaro,你可以使用pacman命令:
[linux@bashcommandnotfound.cn ~]$ sudo pacman -S util-linux
Linux lastlog命令的基本语法
lastlog命令的基本语法格式如下:
lastlog [选项]
Linux lastlog命令的常用选项或参数说明
lastlog命令的常用选项或参数如下表所示:
| 选项 | 参数 | 说明 | 
|---|---|---|
| -b | 天数 | 显示在指定天数之前登录的用户 | 
| -t | 天数 | 显示在指定天数之内登录的用户 | 
| -u | 用户名 | 显示指定用户的登录记录 | 
| -c | 列数 | 指定输出结果的列数,可以用来调整输出的格式 | 
| -f | 文件名 | 指定要读取的lastlog文件,而不是默认的/var/log/lastlog文件 | 
| -h | 无 | 显示lastlog命令的帮助信息 | 
| -s | 用户ID | 指定要显示的用户ID的起始值 | 
| -n | 用户ID | 指定要显示的用户ID的结束值 | 
Linux lastlog命令的实例
实例1:显示所有用户的最近登录时间
如果不使用任何选项或参数,lastlog命令会显示系统中所有用户的最近登录时间,输出结果类似于以下内容:
[linux@bashcommandnotfound.cn ~]$ lastlog
Username         Port     From             Latest
root             pts/0    192.168.1.100    Wed Dec 27 14:20:32 +0800 2023
daemon                                     **Never logged in**
bin                                        **Never logged in**
sys                                        **Never logged in**
sync                                       **Never logged in**
games                                      **Never logged in**
man                                        **Never logged in**
lp                                         **Never logged in**
mail                                       **Never logged in**
news                                       **Never logged in**
uucp                                       **Never logged in**
proxy                                      **Never logged in**
www-data                                   **Never logged in**
backup                                     **Never logged in**
list                                       **Never logged in**
...
实例2:显示在30天之内登录的用户
如果使用-b选项,可以指定一个天数,lastlog命令会显示在该天数之前登录的用户,例如,如果想要显示在30天之内登录的用户,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ lastlog -b 30
Username         Port     From             Latest
root             pts/0    192.168.1.100    Wed Dec 27 14:20:32 +0800 2023
alice            pts/1    192.168.1.101    Tue Dec 26 10:15:23 +0800 2023
bob              pts/2    192.168.1.102    Mon Dec 25 16:34:56 +0800 2023
charlie          pts/3    192.168.1.103    Sun Dec 24 12:45:12 +0800 2023
david            pts/4    192.168.1.104    Sat Dec 23 09:30:45 +0800 2023
实例3:显示在30天之前登录的用户
如果使用-t选项,可以指定一个天数,lastlog命令会显示在该天数之内登录的用户,例如,如果想要显示在30天之前登录的用户,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ lastlog -t 30
Username         Port     From             Latest
eric             pts/5    192.168.1.105    Fri Dec 22 15:20:32 +0800 2023
frank            pts/6    192.168.1.106    Thu Dec 21 11:10:23 +0800 2023
grace            pts/7    192.168.1.107    Wed Dec 20 17:05:56 +0800 2023
harry            pts/8    192.168.1.108    Tue Dec 19 13:15:12 +0800 2023
iris             pts/9    192.168.1.109    Mon Dec 18 10:00:45 +0800 2023
实例4:显示指定用户的最近登录时间
如果使用-u选项,可以指定一个用户名,lastlog命令会显示该用户的最近登录时间,例如,如果想要显示alice用户的最近登录时间,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ lastlog -u alice
Username         Port     From             Latest
alice            pts/1    192.168.1.101    Tue Dec 26 10:15:23 +0800 2023
实例5:显示在指定日期之后登录的用户
如果使用-d选项,可以指定一个日期,lastlog命令会显示在该日期之后登录的用户,日期的格式可以是YYYY-MM-DD或者MM/DD/YYYY,例如,如果想要显示在2023年12月1日之后登录的用户,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ lastlog -d 2023-12-01
Username         Port     From             Latest
root             pts/0    192.168.1.100    Wed Dec 27 14:20:32 +0800 2023
...
frank            pts/6    192.168.1.106    Thu Dec 21 11:10:23 +0800 2023
grace            pts/7    192.168.1.107    Wed Dec 20 17:05:56 +0800 2023
harry            pts/8    192.168.1.108    Tue Dec 19 13:15:12 +0800 2023
iris             pts/9    192.168.1.109    Mon Dec 18 10:00:45 +0800 2023
实例6:显示指定用户ID范围内的用户的最近登录时间
如果使用-R选项,可以指定一个用户ID的范围,lastlog命令会显示在该范围内的用户的最近登录时间,用户ID的范围可以用冒号分隔,例如,如果想要显示用户ID在1000到2000之间的用户的最近登录时间,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ lastlog -R 1000:2000
Username         Port     From             Latest
alice            pts/1    192.168.1.101    Tue Dec 26 10:15:23 +0800 2023
bob              pts/2    192.168.1.102    Mon Dec 25 16:34:56 +0800 2023
charlie          pts/3    192.168.1.103    Sun Dec 24 12:45:12 +0800 2023
david            pts/4    192.168.1.104    Sat Dec 23 09:30:45 +0800 2023
eric             pts/5    192.168.1.105    Fri Dec 22 15:20:32 +0800 2023
frank            pts/6    192.168.1.106    Thu Dec 21 11:10:23 +0800 2023
...
实例7:显示指定主机或IP地址的用户的最近登录时间
如果使用-H选项,可以指定一个主机名或者IP地址,lastlog命令会显示从该主机或IP地址登录的用户的最近登录时间,例如,如果想要显示从192.168.1.100登录的用户的最近登录时间,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ lastlog -H 192.168.1.100
Username         Port     From             Latest
root             pts/0    192.168.1.100    Wed Dec 27 14:20:32 +0800 2023
实例8:显示指定端口的用户的最近登录时间
如果使用-p选项,可以指定一个端口号,lastlog命令会显示从该端口登录的用户的最近登录时间,例如,如果想要显示从pts/0登录的用户的最近登录时间,可以使用以下命令:
[linux@bashcommandnotfound.cn ~]$ lastlog -p pts/0
Username         Port     From             Latest
root             pts/0    192.168.1.100    Wed Dec 27 14:20:32 +0800 2023
实例9:显示从未登录过的用户
如果使用-N选项,lastlog命令会显示从未登录过的用户,输出结果类似于以下内容:
[linux@bashcommandnotfound.cn ~]$ lastlog -N
Username         Port     From             Latest
daemon                                     **Never logged in**
bin                                        **Never logged in**
sys                                        **Never logged in**
...
Linux lastlog命令的注意事项
- lastlog命令的输出是按照用户ID排序的,而不是按照用户名或者登录时间排序的,因此如果想要按照其他方式排序,可以使用sort命令或者awk命令来处理输出结果。
- lastlog命令的输出是从/var/log/lastlog文件中读取的,这个文件是一个二进制文件,不能直接用文本编辑器打开,如果想要查看这个文件的内容,可以使用dump-utmp命令来转换成可读的格式。
- 如果你的系统中没有lastlog命令,你可能会看到以下错误信息:
[linux@bashcommandnotfound.cn ~]$ lastlog
bash: lastlog: command not found
这时候,你需要按照上面的方法来安装lastlog命令,安装完成后,就可以正常使用了。
Linux lastlog相关命令
以下是一些和lastlog命令相关的命令,你可以点击链接查看更多的介绍和实例:
 
       
       
      
评论区