考虑一下这个 shell 重定向:
telnet towel.blinkenlights.nl >> starWarz
当它结束时,会话将中断、与主机断开连接或类似情况。我想知道连接持续多长时间。我该如何确定这一点?
答案1
听起来您正在寻找time
内置功能:
$ help time
time: time [-p] pipeline
Report time consumed by pipeline's execution.
Execute PIPELINE and print a summary of the real time, user CPU time,
and system CPU time spent executing PIPELINE when it terminates.
Options:
-p print the timing summary in the portable Posix format
The value of the TIMEFORMAT variable is used as the output format.
Exit Status:
The return status is the return status of PIPELINE.
它将打印命令所用时间的报告。例如:
$ time sleep 3
real 0m3.027s
user 0m0.000s
sys 0m0.000s
“实际”字段是实际经过的时间,与您用手表测量的值相同。因此,您可以简单地执行以下操作:
time telnet towel.blinkenlights.nl >> starWarz
答案2
大多数 shell 都有一个名为 的内置函数time
,bash
也有。它将向您显示real
进程所占用的实际人力时间 ( ) 以及进程在用户空间 ( user
) 和内核空间 ( sys
) 上所花费的 CPU 时间。
因此运行命令 perpending time
:
time telnet towel.blinkenlights.nl >> starWar
最后bash
将在 STDERR 上显示时间,如下所示:
real XmX.XXXs
user YmY.YYYs
sys ZmZ.ZZZs
即使您使用的 shell 没有内置命令,您也可以使用来自软件包的time
外部time
命令。用法相同。/usr/bin/time
time