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命令相关的命令,你可以点击链接查看更多的介绍和实例:
评论区