[root@localhost ~]# time ls anaconda-ks.cfg install.log install.log.syslog satools text

real 0m0.009s

user 0m0.002s

sys 0m0.007s

输出的信息分别显示了该命令所花费的real时间、user时间和sys时间。

real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。

user时间是指进程花费在用户模式中的CPU时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。

sys时间是指花费在内核模式中的CPU时间,代表在内核中执系统调用所花费的时间,这也是真正由进程使用的CPU时间

Shell计时

在Linux的Shell下,我们经常也使用Shell内置的time命令和GNU版的time命令来测试程序运行的时间。

内置的time提供的参数选项比较少,而GNU的time则提供了丰富的参数选项,包括指定输出文件等功能。[grandiose@Bygone grandiose]$ /usr/bin/time --output=foo.txt foo

上句只有时间信息输出到了foo.txt文件中,如果想要包括foo执行的结果,就需要按下句这样使用:[grandiose@Bygone grandiose]$ /usr/bin/time --output=foo.txt --append foo >foo.txt

如果想要控制输出时间的格式,可以使用-f开关进行格式化:[grandiose@Bygone grandiose]$ /usr/bin/time

--output=foo.txt -f "\\t%E real,\\t%U user,\\t%S sys" foo

如果仍需要使用Shell内置的time命令,可以用下面一句将结果输出至文件:[grandiose@Bygone grandiose]$ (time foo) 2>foo.txt

这样写是因为内置命令time的输出是到标准错误的,文件描述符2表示标准错误stderr。如果还想要包括foo执行的结果,就要这样:[grandiose@Bygone grandiose]$ (time foo) >foo.txt 2>&1

其中2>&1的含义是2与1 相同,一起送入foo.txt中。

nohup命令可以保证进程在退出系统之后仍能运行,这是它的常规用法。我们也可以这样使用nohup:[grandiose@Bygone grandiose]$ nohup time foo

结果全部输出至nohup.out,也包括程序运行的时间信息。可以使用下面的语句将时间信息输出至文件foo.txt中。[grandiose@Bygone grandiose]$ tail -2 nohup.out > foo.txt

为了保证和POSIX一致,输出的时间格式为(nohup.out中的内容除外):real    0m0.007s

user    0m0.002s

sys     0m0.004s

我们可以使用linux下面一些过滤命令如awk、sed、grep、tr等过滤出我们想要得到的内容,例如想要得到real段对应的时间:[grandiose@Bygone grandiose]$ grep real foo.txt | cut -f2,或者

[grandiose@Bygone grandiose]$ sed -n '2p' foo.txt | cut -f2

在Shell下,输出的时间精度为毫秒级,如果需要微秒级的计时,那就应该在程序中进行处理。

linux脚本计时,shell计时相关推荐

  1. linux脚本编程(shell)浅介

    linux脚本编程(shell)浅介 2006-01-10 11:45 27693人阅读 评论(18) 收藏 举报 脚本shelllinux编程bash语言 linux脚本(shell)编程 啊,昨天 ...

  2. linux脚本编程(shell)浅介 (转载)

    linux脚本(shell)编程 啊,昨天上网看到一篇讲 linux/unix shell 的文章,想想自己最后写这东西也是一年前的事了,想想都快忘光了. 还是整理一下,做一次回顾,以后说不定还用得上 ...

  3. linux脚本 source,Shell 的source命令

    http://www.xxlinux.com/linux/article/development/shell/2006-09-22/4499.html http://www.diybl.com/cou ...

  4. linux脚本大全,shell大全

    命令解析器--例如bash 是一个程序,可以解析shell命令 shell基本语法 变量 环境变量 敲命令"env"可以取出所有环境变量 环境变量可以当全局变量来使用 set命令可 ...

  5. linux 脚本加密,Shell脚本的4种加密详细教程

    这篇文章上次修改于 1159 天前,可能其部分内容已经发生变化,如有疑问可询问作者. 普及,shell脚本是什么? Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就 ...

  6. linux 脚本 符号,Shell脚本 入门 —— 符号篇

    shell变量 shell变量不需要进行任何声明,直接定义即可,因为shell变量的值实际上都是字符串(对于没有定义的变量默认是一个空串).定义的时候shell变量由大写字母加下划线组成,并且定义的时 ...

  7. node linux脚本,用Shell脚本快速搭建Ubuntu下的Nodejs开发环境

    nodejs的确是很火,以前倒腾过,但是从来没有认真记录下什么.在ubuntu下搭建它的开发环境尝尝鲜,有一个捷径,它能让系统自动帮你安装所需要的东西,我们生成一段shell脚本,让它来完成以下工作: ...

  8. linux脚本多线程,Shell多线程操作及线程数控制实例

    前言 在业务开发过程中,经常会在后台写一些shell脚本处理数据,但估计很多人不知道shell脚本也可以支持多线程,而且非常简单.本篇文章主要就是介绍shell实现多进程以及进程数量控制. 需求 为了 ...

  9. linux 脚本 等待,shell tel脚本中执行等待实现

    ->下面是一个示例脚本,它将"脚本中心"的 URL 存储在一个名为 strURL 的变量中D:\廖嘉航\第三批\脚本之家\脚本之家\文章2\bytes2BSTR.htm比如: ...

最新文章

  1. React数据获取为什么一定要在componentDidMount里面调用?
  2. 淘宝API学习之道:淘宝API相关了解
  3. 一次完整的HTTP事务是怎样一个过程
  4. css span 右端对齐_CSS标准文档流
  5. ubuntu18.04server 真机无法自动获取IP解决方法
  6. 截至20161212中国公司在美上市名单
  7. 如何批量修改图片宽高尺寸
  8. 科大讯飞语音转写以及语音合成配置+遇到问题处理
  9. matlab 自激振荡,基于Simulink的非线性系统自激振荡的仿真
  10. 南京数海文化传媒有限公司官网上线 | LTD文化传媒行业案例分享
  11. 加强统筹布局和顶层设计,以技能、平台、应用为三大着力点推动人工智能突破发展...
  12. 渠道分销系统开发产品管理功能
  13. macOS 中 Cornerstone 的Clean操作和终端的svn cleanup命令无效了怎么办?
  14. 山水印|竹林野茶:秋冬之际,喝这些茶补水润肺
  15. Web jquery ajax,EL遍历 js刷新 jquery遍历json数组填充表格 等等随笔
  16. 剑指offer——数字在排序数组中出现的次数
  17. 企业为什么需要一套固定资产管理系统?
  18. 退出计算机二级培训的申请书,计算机协会退会的申请书
  19. html复选框全选怎么实现,js html css实现复选框全选与反选
  20. 校招慕课Java面试新手尊享课笔记——Java基础从数据类型到类

热门文章

  1. Linux系统 查看,激活,以及退出虚拟环境
  2. ESP8266Wi-Fi接入云平台
  3. aot慈善币跑路了_慈善币AOT崩盘,超过400万人上当受骗
  4. android全屏命令,微信全屏表情指令2020安卓版-2020微信满屏幕表情指令软件v7.0.19 清爽版-007游戏网...
  5. 导图解文 从梦想到财富(40)下一个创业风口,一定在这4者之中
  6. windows server 2008 R2实现磁盘阵列raid1与raid5,数据备份与恢复
  7. 发票信息批量提取到 excel 软件 5.1
  8. AI降噪是什么意思?AI降噪在音视频通讯场景的应用
  9. 服务器电源输出电压不稳定,开关电源输出电压不稳定怎么解决?
  10. android开发经验笔记总计