我可以获得已执行的Linux shell命令的启动和停止时间戳吗?

时间:2013-11-27 18:24:35

标签: linux bash command-line-interface

我运行的项目构建命令执行时间很长。我睡觉时跑它。是否有一些Linux系统机制在bash中记录命令持续时间?

3 个答案:

答案 0 :(得分:2)

您正在寻找time?只需在要执行的命令之前添加time命令:

time build_cmd

输出如下:

real    0m0.153s
user    0m0.004s
sys     0m0.000s

其中real是命令运行的总时间,user在用户空间代码中花费的时间和sys在内核代码中花费的时间。

答案 1 :(得分:1)

如果您想获得幻想,可以使用Jenkins进行构建。它可以构建任何类型的项目,而不仅仅是Java项目。其中一个插件是Timestamper,它将为构建的每个执行行添加时间戳。另外,Jenkins总是会告诉你(有或没有这个插件)构建需要多长时间。

使用CI服务器进行构建有很多优点,即使您不使用它进行持续集成也是如此。 (即,您可以手动生成构建,也可以在一天的特定时间生成构建。)

您还可以使用hek2mgl指出的time命令,或者编写一个小的shell脚本来打印构建之前和之后的时间戳:

date
build_cmd
date

答案 2 :(得分:1)

Jenkins,由@DavidV提出。是一个非常完整的工具来自动化和管理构建过程,而time命令在构造命令前缀时,将告诉你构建过程花费了多少时间,正如@ hek2mgl所提出的那样。

但是假设您不想安装Jenkins,而忘记输入time,并且您已经启动了命令,则可以使用以下任一方法:

  • 查看第一个和最新目标的创建时间,或
  • 您还可以在构建命令运行时,在构建过程的输出中盲目地键入date命令。它将在进程终止时进行缓冲和执行。将其与$HISTTIMEFORMAT的使用相结合,您就可以很好地了解该过程花了多少时间。