uptime可查运行时长,who -b显示开机日期时间,uptime -s提供秒级精度开机时间,last reboot追溯历史重启,/proc/uptime支持秒数计算与反推开机时刻。

要快速确认Linux系统自上次启动后已持续运行多久,以及具体是哪天几点开的机,不需要安装额外工具,终端里几条命令就能直接查到准确结果。
用 uptime 查当前运行时长
在终端输入 uptime 并回车,输出类似 16:29:45 up 2 days, 7:33, 1 user, load average: 0.02, 0.05, 0.08。
关键信息就是 “up” 后面的部分:2 days, 7:33 表示系统已连续运行 2 天 7 小时 33 分钟。
【注意:开头的 16:29:45 是当前时间,不是开机时间】
如果只想看可读性更强的运行时长,直接执行 uptime -p,它会输出 “up 2 days, 7 hours, 33 minutes” 这种格式。
用 who -b 查最后一次开机时刻
执行 who -b,输出形如 system boot 2026-11-11 08:56。
这个时间来自 /var/run/utmp,精度到分钟,是内核完成初始化、用户空间开始接管的真实启动点。
它比 systemd 启动时间早 2–10 秒,也比 systemctl status 显示的 “Since:” 更底层、更可信。
用 uptime -s 精确到秒的开机时间
执行 uptime -s,输出类似 2026-11-11 08:56:22。
这是本地时区下的完整时间戳,精度到秒,所有主流发行版都支持,且不依赖 systemd。
如果你写监控脚本或需要日志对齐,这个值比 who -b 多出的那 22 秒很关键。
用 last reboot 查历史重启记录
第一步:运行 last reboot。
第二步:找到首行,例如 reboot system boot 6.8.0-45-generic Fri Nov 11 08:56 still running。
第三步:提取其中的日期和时间部分——Fri Nov 11 08:56 就是最近一次启动的完整时间表达。
这个命令读取的是 /var/log/wtmp,能追溯数月甚至更久的历史重启事件,适合排查异常重启。
如果只关心最近一次,加管道过滤:last reboot | head -n 1。
用 /proc/uptime 算总秒数并反推开机时间
方法一:直接读取秒数
执行 awk '{print int($1)}' /proc/uptime,得到一个整数,比如 184382,单位是秒。
方法二:换算成人类可读格式
执行 awk '{d=int($1/86400); h=int($1%86400/3600); m=int($1%3600/60); printf "%dd %dh %dm\n", d, h, m}' /proc/uptime,输出形如 2d 3h 12m。
方法三:反算精确开机时间戳
执行 date -d "$(awk '{print int($1)}' /proc/uptime) seconds ago" "+%Y-%m-%d %H:%M:%S",输出即为系统启动时刻,例如 2026-11-11 08:56:22。
【注意:/proc/uptime 不扣除休眠时间,频繁 suspend 的机器结果会偏大】


















