如何显示用户登录时间?

如何显示用户登录时间?

Linux 中是否有命令可以显示用户登录的时间?“who”命令仅显示已连接的用户。那么用户登录的时间呢?

答案1

如果你运行,who -H你可以看到列名称:

x-cash@runabout:~$ who -H
NAME     LINE         TIME             COMMENT
x-cash   tty7         2013-08-20 10:23 (:0)
x-cash   pts/0        2013-08-25 15:45 (:0)

如您所见,该列TIME正是您要查找的内容。只需从实际时间中减去该值即可。

答案2

who您可以解析或的输出w以获取用户登录的时间。如果您随后解析日期并将其与“现在”进行比较,则可以获取用户登录的时间。例如,以分钟为单位获取时间:

who | awk '{print $1,$3,$4}' | while read user time; do \
  echo $user $(($(($(date +%s) - $(date -d "$time" +%s)))/60)) minutes; done 

terdon 39 minutes
terdon 31 minutes
terdon 23 minutes
terdon 22 minutes
terdon 20 minutes
terdon 18 minutes
terdon 15 minutes
guest 15 minutes
terdon 13 minutes
terdon 12 minutes

相关内容