我想使用 显示自上次系统启动以来经过的时间uptime
,但我不希望它显示所有信息。我只想知道自上次系统启动以来经过了多少小时(即:18:17:59)
答案1
要获取自上次系统启动以来经过的时间hh:mm:ss
格式,您可以使用:
awk '{print int($1/3600)":"int(($1%3600)/60)":"int($1%60)}' /proc/uptime
/proc/uptime
伪文件包含两个数字:
- 第一个数字是系统启动的时间(以秒为单位)。
- 第二个数字是机器空闲的时间(以秒为单位)。
因此,awk
您可以获取第一个数字并将其转换为hh:mm:ss
格式。
答案2
要在几秒钟内获得正常运行时间:
awk '{print $1}' /proc/uptime
要在几分钟内获得正常运行时间:
echo $(awk '{print $1}' /proc/uptime) / 60 | bc
要以小时为单位获取正常运行时间:
echo $(awk '{print $1}' /proc/uptime) / 3600 | bc
要获得 x 位精度,您可以添加 scale=x,例如 x=2
echo "scale=2; $(awk '{print $1}' /proc/uptime) / 3600" | bc
答案3
尝试一下这个:
uptime | awk '{ print $3 }'
实际上,它打印了 生成的行的第三个单词uptime
。
答案4
我想我会将我的添加到收藏夹中,因为没有类似的东西......
尝试使用我的更有效率:
awk '{m=$1/60; h=m/60; printf "%sd %sh %sm %ss", int(h/24), int(h%24), int(m%60), int($1%60) }' /proc/uptime
结果:
42d 17h 23m 55s
编辑:因为我意识到我没有相当回答原始问题,这里是专门针对该问题的修订:
awk '{m=$1/60; h=m/60; printf "%s:%s:%s", int(h%24), int(m%60), int($1%60) }' /proc/uptime
结果:
17:23:55