时间和超时简述

在使用 Linux 终端时,您经常会遇到需要监控命令执行时间或限制其运行时间的情况。time
和 timeout
命令是强大的工具,可以帮助您完成这些任务。在本教程中,我们将探讨如何有效地使用这两个命令,并提供实际示例。
使用 time
命令
Linux 中的 time
命令用于测量指定命令或进程的执行时间。它提供有关命令使用的实际时间、用户时间和系统时间的信息。实际时间表示实际经过的时间,而用户时间表示命令消耗的 CPU 时间,系统时间表示系统代表命令执行所花费的时间。
time [options] command示例
假设您要测量执行 ls
命令所用的时间
time ls
输出将提供如下信息:
real 0m0.005s user 0m0.001s sys 0m0.003s
在此示例中,real
时间是命令执行所花费的实际时间,而 user
和 sys
时间分别表示在用户模式和系统模式下花费的 CPU 时间。
使用 timeout
命令
timeout
命令允许您在指定的时间限制内运行命令。如果命令未在指定时间内完成,timeout
将终止它。这在处理可能挂起或无限期运行的命令时尤其有用。
timeout [options] duration command示例
假设您想将潜在耗时的命令(例如备份脚本)的执行限制为 1 分钟
timeout 1m ./backup_script.sh
如果 backup_script.sh
在 1 分钟内完成,则该命令将自然完成。但是,如果超过时间限制,timeout
将终止它。
默认情况下,当达到时间限制时,timeout
会将 SIGTERM 信号发送到该命令。您也可以使用 -s (--signal) 选项指定要发送的信号。
组合使用 time
和 timeout
您还可以组合使用 time
和 timeout
命令来测量在时间受限环境中命令的执行时间。
timeout 10s time ./long_running_command.sh
在此示例中,timeout
命令确保 time
命令(用于测量执行时间)不会无限期运行。执行将在 10 秒后终止,并且 time
输出将提供对该时间段内使用的资源的深入了解。
结论
time
和 timeout
命令是用于管理 Linux 中命令执行时间的宝贵工具。 time
命令可帮助您了解命令的资源利用率,而 timeout
命令可让您控制命令的执行时间,以防止它们无限期运行。 通过掌握这些命令,您可以更好地管理终端任务并提高作为 Linux 用户的整体效率。