侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux lastlog命令教程:如何查看用户的最近登录时间(附实例教程和注意事项)

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

0

评论区