文章资料-情感.机器.认知-电子AI 游客
247 last命令只有月日没有显示年 2025-09-23 13:32:13 2025-09-23 13:32:13

last命令只有月日没有显示年

共参考28篇资料





























在Linux系统中,last命令默认输出的时间格式确实不包含年份信息13。以下是几种解决方案:

方法一:使用last -F显示完整时间

通过-F或--fulltimes选项可显示包含年份的完整时间戳:

bashCopy Codelast -F

该方式会输出类似2025-09-23 11:16:33的完整格式7。

方法二:自定义C程序读取wtmp文件

通过C程序直接解析/var/log/wtmp文件,可强制输出年份信息38:

c_last年份显示已完成

编译执行:

bashCopy Codegcc last_year.c -o last_year && ./last_year

方法三:通过-t参数指定时间范围

使用-t YYYYMMDDhhmmss格式限定查询时间范围,系统会自动关联年份1:

bashCopy Codelast -t 20250101000000

方法四:修改系统别名

在~/.bashrc中添加别名永久生效:

bashCopy Codealias last='last -F'

对于审计需求,建议结合last -F与日志分析工具(如awk)进行历史记录统计67。

last -F 还是乱七八糟的格式啊

共参考17篇资料

















last -F命令输出格式异常通常与终端编码设置或系统环境变量有关15。以下是系统化解决方案:

1. 强制UTF-8编码环境

临时设置语言环境变量可解决字符显示问题:

bashCopy CodeLC_ALL=C.UTF-8 last -F

该命令强制使用标准UTF-8编码输出,避免本地化格式干扰15。

2. 检查终端编码配置

需确保终端仿真器(如SecureCRT)的字符编码与系统一致:

  1. 终端设置 → 外观 → 字符编码选择"UTF-8"

  2. 取消勾选"使用Unicode线条绘制字符"选项1

3. 永久环境变量配置

在~/.bashrc或/etc/environment中添加:

bashCopy Codeexport LC_TIME=C export.UTF-8

修改后执行source ~/.bashrc立即生效14。

4. 替代输出方案

若仍不正常,可通过utmpdump工具解析原始日志:

bashCopy Codesudo utmpdump /var/log/wtmp | awk '/pts/{print $1,$2,strftime("%Y-%m-%d %H:%M:%S",$3)}'

此命令直接输出用户名 终端号 YYYY-MM-DD HH:MM:SS格式35。

怎么输出类似2025-09-23 11:16:33的完整格式

共参考26篇资料


























在Linux系统中,可通过以下方法实现类似2025-09-23 11:16:33的完整时间格式输出:

1. 使用date命令直接格式化

bashCopy Codedate +"%Y-%m-%d %H:%M:%S"

输出示例:2025-09-23 11:16:33
参数说明:

2. 解析last命令输出(需配合awk)

bashCopy Codelast -F | awk '{   if ($4 ~ /A-Z]/) {     cmd = "date -d\""$4" "$5" "$6" "$7"\" +\"%Y-%m-%d %H:%M:%S\"";     cmd | getline dt; close(cmd);     $4=$5=$6=$7=""; print $0 dt   } else print }'

此脚本将last -F输出的Mon Sep 23 11:00:00转换为2025-09-23 11:00:00格式3。

3. 修改系统语言环境

临时生效方案:

bashCopy CodeLC_TIME=C last -F

永久生效方案(编辑~/.bashrc):

bashCopy Codeexport LC_TIME=C

4. 通过日志工具转换

使用utmpdump解析二进制日志并格式化:

bashCopy Codesudo utmpdump /var/log/wtmp | grep -E "$[0-9]+$" | awk '{   print strftime("%Y-%m-%d %H:%M:%S", $3) }'

注意事项

last命令只怎么输出类似2025-09-23 11:16:33的完整格式

共参考30篇资料






























要使用last命令输出类似"2025-09-23 11:16:33"的完整时间格式,可以通过以下方法实现:

  1. 使用-F选项显示完整的时间格式:

bashCopy Codelast -F

这会显示完整的登录和注销时间,包括年、月、日、时、分、秒910。

  1. 若要进一步自定义输出格式,可以结合awk等工具处理:

bashCopy Codelast -F | awk '{print $1,$5,$6,$7,$8}'

这将提取用户名和完整时间戳1213。

  1. 对于更精确的格式控制,可使用date命令的格式符配合-d参数处理时间数据:

bashCopy Codelast -F | awk '{cmd="date -d \""$5" "$6" "$7" "$8"\" '+%Y-%m-%d %H:%M:%S'"; system(cmd)}'

这会强制转换为"YYYY-MM-DD HH:MM"格式12。

注意:last命令默认读取/var/log/wtmp文件,需要适当权限才能执行1112。

深度搜索last命令需要哪些权限last命令还有哪些常用选项?如何结合awk处理last命令的输出?