3 如何计时特定命令? (相当于TimeThis.exe的Linux) 就像是: timethis wget foo.com Receiving foo.com ... wget foo.com took 3 seconds. 66 shell time-utility
3 如何在多个命令上运行时间并将时间输出写入文件? 我想运行time命令来测量几个命令的时间。 我想做的是: 测量所有这些加在一起的运行时间 将time输出写入文件 将STDERR我要测量的命令写到STDERR 我确实不希望做的是 将几个命令写到一个单独的脚本中(为什么?因为所有这些已经是我以编程方式生成的脚本,因此创建另一个临时脚本会比我想要的更混乱) 到目前为止我尝试过的是: /usr/bin/time --output=outtime -p echo "a"; echo "b"; 不起作用,time仅在第一个上运行。 /usr/bin/time --output=outtime -p ( echo "a"; echo "b"; ) 不起作用,(是意外令牌。 /usr/bin/time --output=outtime -p { echo "a"; echo "b"; } 不起作用,“没有这样的文件或目录”。 /usr/bin/time --output=outtime -p ' echo "a"; echo "b";' 不起作用,“没有这样的文件或目录”。 time ( echo "a"; echo … 65 shell command time-utility
5 使bash使用外部`time`命令而不是内置的shell 如何让bash默认使用时间二进制(/ usr / bin / time)而不是shell关键字? which time收益/usr/bin/time type time回报time is a shell keyword 运行time显然是执行外壳关键字: $ time real 0m0.000s user 0m0.000s sys 0m0.000s $ /usr/bin/time Usage: /usr/bin/time [-apvV] [-f format] [-o file] [--append] [--verbose] [--portability] [--format=format] [--output=file] [--version] [--quiet] [--help] command [arg...] enable -n time 退货 bash: enable: time: not … 27 bash shell-builtin time-utility
3 如何将“时间”输出和命令输出重定向到同一管道? 假设我有一个名为的二进制文件foo。 如果我想将输出重定向foo到其他进程bar,我可以写./foo | bar。 另一方面,如果我想对timefoo进行重定向,然后重定向其输出,则time可以编写time (./foo) | bar。 我的问题是,我如何将输出的内容粘贴到输出time的末尾foo并通过同一管道传输? 以下解决方案不是我想要的解决方案,因为它启动了流程的两个单独实例bar,而我希望将单个共享管道连接到的单个实例bar。 time (./foo | bar) | bar 对于任何好奇的人,不想启动两个实例的bar原因是因为它bar可以是网络客户端,所以我希望将定时信息http POST作为与过程输出相同的消息的一部分发送到服务器。 24 shell command-line pipe time-utility
1 为什么“实际”时间要比“用户”和“ sys”时间的总和高得多? 我执行了time许多命令(即nslookup),SSH然后收集了暗示服务完成(即DNS)所需的总时间。因此,我收集user和sys时间,因为real时间是我的进程阻塞的时间,而我不需要...我想。 但是我的一些测试结果如下: real 3m22.033s user 0m0.009s sys 0m0.014s 我在有限资源的Linux机器上执行这些测试,但是real时间仍然很长。这是否仅表示该框正忙于运行不同的进程?将user和sys时间相加以了解服务花费了多少,仍然正确吗? 19 time time-utility
2 是否有类似“时间”的东西也记录了I / O和CPU? 我可以使用以下命令快速监视进程的运行时间time: x@y ~ $ time foo real 0m14.299s user 0m4.770s sys 0m0.440s 有没有一种方法可以获取记录在STDOUT上的参数的I / O和CPU使用率相同的数据?像time这样的简单命令或实用程序将是理想的选择,在这里我只是传递要运行的事物的参数: x@y ~ $ stats foo wallclock runtime 0m14.299s I/O reads 290,420 KB I/O writes 239,429 KB peak CPU usage 18.62% mean CPU usage 1.44% # etc. 18 command time statistics time-utility
5 如何平均时间命令? 我正在执行time一些命令。现在要平均测度,我想对命令运行和计时指定的次数,并获得具有计算出的均值和标准差的结果。结果将是: avgtime -n 100 my_command real 0m5.388s stdev 0m0.068s user 0m5.380s stdev 0m0.067s sys 0m0.004s stdev 0m0.000s 是否有用于此的UNIX工具?GNU / Linux是否有一个? 18 performance time benchmark time-utility
1 在bash中使用内置的“ time”命令,而不是外部命令 使用该time命令时,遇到了一种情况,我应该使用内置的time而不是外部的GNU time命令/usr/bin/time。那么,我该怎么做呢?我在某处看到使用enable和/或command会有所帮助,但没有。 这是一个用例: watch "time ls" 它使用了/usr/bin/time我不想要的外部命令!time当我time ls在终端上运行时调用内部bash函数时会发生这种情况,如下所示: $ time ls 请注意,此处已回答了完全相反的要求: 使bash使用外部`time`命令而不是内置的shell 两个命令有很多区别。内部命令time更精确(我想要),但是外部命令有更多选项(我不需要)。 12 bash shell-builtin time-utility
2 重定向“时间命令”中命令的输出 我正在尝试使用以下方法计时: /usr/bin/time myCommand 但是,由于/usr/bin/time写入stderr,所以如果myCommand也写入stderr,则在流上我将获得的不仅仅是时间的输出。我想做的是,将myCommand的所有输出重定向到/dev/null,但仍将time的输出写入stderr。通过使用示例myCommand写入stderr 的示例ls /nofile,我们看到(显然)在以下情况下根本没有输出: $ /usr/bin/time ls /nofile 2> /dev/null $ 在没有任何重定向的情况下,我们既看到ls(到stderr)的输出,也看到时间到(stderr的)输出: $ /usr/bin/time ls /nofile ls: cannot access /nofile: No such file or directory 0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 3776maxresident)k 0inputs+0outputs (0major+278minor)pagefaults 0swaps 我想要的只是产生的东西: $ /usr/bin/time ls /nofile > RedirectThatImAskingFor 0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 3776maxresident)k 0inputs+0outputs … 11 io-redirection time-utility
1 \ time,t / ime和cd实际做什么?(在外壳中加反斜杠的乐趣) 在讨论/usr/bin/time与内置shell(bash和zsh)之间的区别时time,有人提到一个人可以\time用作get的简写/usr/bin/time。 首先,它似乎是一个不错的无害捷径,但随后出现了一些问题: 为什么也可以t\ime工作? 为什么\cd即使/usr/bin/cd¹都没有更改目录? 显然,\foo这不等于$(which foo)。现在的问题是: \fooshell的POSIX定义是否以任何方式涵盖了bash和zsh中观察到的行为?如果是,为什么它表现得如此? 脚注1:/usr/bin/cd在我的系统上, #!/bin/sh builtin cd "$@" 9 shell quoting posix time-utility