命令time — 执行命令并计时

【格式】time [-p] command [arguments...]

【说明】

执行命令行"command [arguments...]",命令行执行结束时在标准输出中打印执行该命令行的时间统计结果,其统计结果包含以下数据:

1)实际时间(real time): 从command命令行开始执行到运行终止的消逝时间;

2)用户CPU时间(user CPU time): 命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和;

3)系统CPU时间(system CPU time): 命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和。

其中,用户CPU时间和系统CPU时间之和为CPU时间,即命令占用CPU执行的时间总和。实际时间要大于CPU时间,因为Linux是多任务操作系统,往往在执行一条命令时,系统还要处理其它任务。

另一个需要注意的问题是即使每次执行相同命令,但所花费的时间也是不一样,其花费时间是与系统运行相关的。

例1:

# time date
Sun Mar :: GMT- real 0m0.136s
user 0m0.010s
sys 0m0.070s
#

在例1中,执行命令"time date"(见第1行)。系统先执行命令"date",第2行为命令"date"的执行结果。第3-6行为执行命令"date"的时间统计结果,其中第4行"real"为实际时间,第5行"user"为用户CPU时间,第6行"sys"为系统CPU时间。以上三种时间的显示格式均为MMmNN[.FFF]s。

在例1中,CPU时间 = 用户CPU时间 + 系统CPU时间 = 0m0.010s + 0m0.070s = 0m0.080s,实际时间大于CPU时间,说明在date命令运行的同时,还有其它任务在运行。

【参数说明】

-p 以POSIX缺省的时间格式打印时间统计结果,单位为秒。详细的输出格式见例2。

例2:

1. # time -p date
            2. Wed Mar 27 00:33:11 GMT-8 2006
            3. real 0.11
            4. user 0.00
            5. sys 0.02
            6. #

在例2中,同样执行命令"time date"(见第1行)。系统先执行命令 "date",第2行为该命令的执行结果。第3-5行为执行命令"date"的时间统计结果。注意本例的时间格式与例1中的时间格式差别,使用-p 参数后的时间显示格式为NN.FF,其单位为秒。

【相关环境变量说明】

TIMEFORMAT 自定义输出的时间格式。

我们也可以通过环境变量TIMEFORMAT来自定义输出的时间格式[1]。格式中使用和标准C中的函数printf一致的转义符,以及使用以下的转义序列来指定输出的时间格式:

%[prec][l][RUS]
其中,选项prec为指定时间精度,即小数点后面的位数;选项l表示使用分秒(具体格式为:MMmNN[.FFF]s)的格式;最后一个字符表示时间的类型,其中R表示实际时间,U表示用户CPU时间,S表示系统CPU 时间,它们的单位均为秒。

time命令缺省输出的时间格式同 TIMEFORMAT=$'nrealt%3lRnusert%3lUnsyst%3lS'。

使用-p参数的time命令输出的时间格式同 TIMEFORMAT=$'real %2Rnuser %2Unsys %2S'。

例3:

1. # export TIMEFORMAT=$'real %2Rnuser %2Unsys %2S'
            2. # time date
            3. Wed Mar 27 00:52:03 GMT-8 2006
            4. real 0.04
            5. user 0.00
            6. sys 0.01
            7. #

比较例2和例3显示结果,很容易发现例3虽然没有使用参数-p,但其输出的结果和例2一模一样。

当然,我们也可以修改为任何自己喜欢的时间格式。

例4:

1. # export TIMEFORMAT=$'nHello, ThinkerABC!nreal time :       %lRnuser CUP time :   %lUnsystem CPU time : %lS'
            2. # time date
            3. Wed Mar 27 01:09:26 GMT-8 2006
            4.
            5. Hello, ThinkerABC!
            6. real time :       0m0.016s
            7. user CUP time :   0m0.006s
            8. system CPU time : 0m0.008s
            9. #

例4的第4-8行正是我们自定义的输出格式。

从以上介绍了三种指定时间格式的方法,即缺省的时间格式、使用参数-p的POSIX缺省的时间格式和设定环境变量TIMEFORMAT自定义的时间格式,Linux系统使用的先后顺序如下:

1.参数-p的POSIX缺省时间格式;

2.环境变量TIMEFORMAT自定义的时间格式;

3.缺省的时间格式。

【退出状态说明】

如果能执行command命令,则返回该命令的退出状态,否则返回如下的退出状态值:

127 命令未找到

126 命令找到,但不能执行

1-125 其它错误

修改系统日期与时间date -s "2012-11-03 10:25:25"

[root@localhost ~]# date 
2012年 11月 02日 星期五 00:08:27 UTC

[root@localhost ~]# date -s "2012-11-03 10:25:25" 
2012年 11月 03日 星期六 10:25:25 UTC 
[root@localhost ~]# date 
2012年 11月 03日 星期六 10:25:27 UTC

linux time命令参数--执行命令并计时的更多相关文章

  1. 详解如何在 Linux 启动时自动执行命令或脚本

    我一直很好奇,在启动 Linux 系统并登录的过程中到底发生了什么事情.按下开机键或启动一个虚拟机,你就启动了一系列事件,之后会进入到一个功能完备的系统中,有时,这个过程不到一分钟.当你注销或者关机时 ...

  2. linux集群批量执行命令

    因为工作需要,需要修改集群中机器的配置,一台一台的修改太浪费时间,就想能不能通过自动化脚本批量执行命令,尝试写一个,自己shell不熟悉,写的有点渣渣 if [ "$#" -ne ...

  3. Linux:ssh远程执行命令并自动退出

    ssh命令格式: [root@localhost ~]# ssh --helpusage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c ...

  4. Linux基础命令---间歇执行命令---watch

    [watch] watch指令可以间歇性的执行程序,将输出结果以全屏的方式显示,默认是2s执行一次. watch指令下发后,将会一直被执行,直到被中断. [语法] watch \ [-d h v t] ...

  5. linux下shell中执行命令的顺序问题

    在shell中有很多种命令的同义词,到底先执行的是哪一个命令呢,我们可以借助type -a命令来检查. 为了测试我们就对type本身做一条alias: alias type=type 然后我们通过ty ...

  6. linux下设置php执行命令

    第一种方法: 打开用户根目录下的: vi ~/.bash_profile # .bash_profile # Get the aliases and functions if [ -f ~/.bash ...

  7. Linux基础命令---间歇执行命令watch

    watch watch指令可以间歇性的执行程序,将输出结果以全屏的方式显示,默认是2s执行一次.watch将一直运行,直到被中断. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS ...

  8. linux指定nologin用户执行命令

    为了安全,使用nologin账号来运行程序, su -s /bin/bash -c "ls" www 这条命令到底做了什么呢?su -s 是指定shell,这里www用户是nolo ...

  9. python 使用标准库连接linux实现scp和执行命令

    import stat import pexpect 只显示关键代码: sqldb = localpath+database //获取database名字 if os.path.exists(sqld ...

随机推荐

  1. centos修改ssh端口

    1.编辑防火墙配置:vi /etc/sysconfig/iptables防火墙增加新端口2222-A INPUT -m state --state NEW -m tcp -p tcp --dport ...

  2. Angularjs 通过WebApi 下载excel

    如果想知道 AngularJs 通过WebAPI 下载Excel.请看下文,这里仅提供了一种方案. 服务器端代码如下: protected HttpResponseMessage GenereateE ...

  3. MyEcpilise引入Maven项目目录不正常,无JRE,无Maven Dependencies

    右键项目--> Maven4MyEclipse --> Update Project Configuration

  4. C# - dynamic 类型

    C#4引入dynamic关键字,定义变量时,可以不初始化它的值. dynamic类型仅在编译期间存在,在运行期间会被System.Object类型替代. dynamic myDynamicVar; m ...

  5. [mock]12月27日

    一开始介绍项目,最后的反馈是,还是说得不清楚,需要再准备准备. 然后两道题,第一题是有个数组,有2*n个数字,从1~n.比如n=3的数组,{1,2,2,3,1,3}.然后两两相同的数字删除,每次删除得 ...

  6. [codility]Min-abs-sum

    https://codility.com/demo/take-sample-test/delta2011/ 0-1背包问题的应用.我自己一开始没想出来.“首先对数组做处理,负数转换成对应正数,零去掉, ...

  7. altium designer 13 学习之添加汉字

    在altium desginer中如果你是想添加英文还是比较方便的,基本直接就可以输入了,但是添加中文就不是那么简单了,下面不介绍下如何在altium designer中快速的添加自己想要的中文 工具 ...

  8. Google Code Style

    Google开源项目的代码遵循的规范,见这,C++, OC. PS: vim的配色编辑用户主目录下的.vimrc即可.

  9. [企业级linux安全管理]- 安全管理基础(1)

    1. 操作条件:  (1)装有 Cent OS Linux 操作系统的虚拟机一台 2. 背景: 某企业有一台服务器,其信息如下: (1)  该服务器上存在管理员 root,密码为 root,另存有一些 ...

  10. 在C++中调用DLL中的函数

    如何在C++中调用DLL中的函数 应用程序使用DLL可以采用两种方式:一种是隐式链接,另一种是显式链接.在使用DLL之前首先要知道DLL中函数的结构信息.Visual C++6.0在VC\bin目录下 ...