date、sleep和usleep命令
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html
1.1 date命令
date用于获取和设置操作系统的时间,还有hwclock是获取硬件时间。
date有个选项"-d",可以用来描述获取什么时候的时间,描述的方式非常开放,但不能使用"now"关键字,其他的如3天前"3 days ago",3天后"3 days",昨天"yesterday",下周一"next Monday",epoch时间"@EPOCH"等等。
Linux中设置date命令的显示格式:date [+format],其中"+"表示从前面的时间中获取其中的格式部分,如date -d "yesterday" +"%Y"获取的是昨天的年份部分。
format格式如下所示:标红色的较常用。
|
符号 |
意义 |
描述 |
|
|
年 |
%y |
年(后两位) |
last two digits of year (00..99) |
|
%Y |
年 |
year |
|
|
月 |
%m |
月 |
month (01..12) |
|
日 |
%j |
年中天 |
day of year (001..366) |
|
%d |
月中天 |
day of month (如01) |
|
|
%w |
周中天 |
day of week (0..6); 0 is Sunday |
|
|
%u |
周中天 |
day of week (1..7); 1 is Monday |
|
|
周 |
%U |
年中周(00-53) |
week number of year with Sunday as first day |
|
%W |
年中周(00-53) |
week number of year with Monday as first day |
|
|
时 |
%H |
时(24时制) |
hour (00..23) |
|
%I |
时(12时制) |
hour (01..12) |
|
|
分 |
%M |
分 |
minute (00..59) |
|
秒 |
%S |
秒 |
second (00..60) |
|
%N |
纳秒 |
ns of current minute |
|
|
%s |
秒 |
从1970-01-01到目前时间的秒数总数 |
|
|
完整 格式 |
%T |
完整时间 |
time; same as %H:%M:%S |
|
%D |
日期完整格式 |
date; same as %m/%d/%y |
|
|
%F |
日期完整格式 |
date; same as %Y-%m-%d |
|
|
特殊 格式 |
%n |
换行 |
a newline |
|
%t |
tab键 |
a tab |
[root@xuexi ~]# date +%F
-- [root@xuexi ~]# date +"%F %T" # 有空格需要使用双引号或引号来分隔
-- :: [root@xuexi ~]# date +"%Y-%m-%d %H:%M:%S"
-- ::
使用date命令可以计算时间差。例如:
# 以下3个命令等价
date -d "3 days ago" +%F
date -d "-3 days" +%F
date -d "now - 3 days" +%F
再例如,给定一个时间,计算它的前几天,后几天。
# 以下两条命令等价
date -d "2018-02-19 3 days ago" +%F
date -d "2018-02-19 - 3 days" +%F
给定一个日期,计算该日期所在星期的星期一是几月几号。例如,2018-05-12是星期六,那么星期一是2018-05-07。
#!/bin/bash
src_date="2018-05-12"
src_weekday=`date -d $src_date +%w`
Mon_date=`date -d "$src_date - $(( src_weekday - 1 )) days" +%F`
echo $Mon_date
date命令还可以计算延迟时间(两个时间点的时间差)。如果要计算精确度为秒级的延迟,可直接使用%s计算,但如果要计算毫秒级、微秒级甚至是纳秒级的时间差,则需要对date的结果进行一番计算和转换。以下是秒级时间差计算方法,毫秒级计算方法见:计算毫秒级、微秒级时间差。
#!/bin/bash
start_time=$(date +"%s")
find / -type f -name "*.db" &>/dev/null
end_time=$(date +"%s")
time_diff=$(( start_time - end_time ))
echo $time_diff
1.2 sleep和usleep
在shell中常使用sleep命令指定休眠时间,休眠的意思表示让当前进程进入睡眠状态。例如:
sleep
sleep默认的休眠单位为秒,因此上面表示休眠5秒钟。如果要休眠毫秒级、微秒级,则可以使用小数。例如:
sleep 0.5
表示休眠半秒钟。
此外,还有专门的微秒级的休眠命令usleep。例如:
usleep
表示休眠1000微秒,即1毫秒。
date、sleep和usleep命令的更多相关文章
- date——系统时间的命令
这是一个可以用各种姿势获得各种时间的命令.最近在写自动化定时脚本时学了一下. 参考:https://www.cnblogs.com/ginvip/p/6357378.html 比如: 利用cronta ...
- 每天一个linux命令(37):date命令
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...
- 每天一个linux命令(29):date命令
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...
- [转]linux之date命令
转自:http://www.cnblogs.com/peida/archive/2012/12/13/2815687.html 在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用 ...
- date 命令
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便.1.命令格式: date [参数] ...
- date命令--修改linux系统时间
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...
- linux常用命令:date 命令
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...
- 【转】每天一个linux命令(37):date命令
原文网址:http://www.cnblogs.com/peida/archive/2012/12/13/2815687.html 在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常 ...
- date命令详解
基础命令学习目录首页 原文链接:https://www.cnblogs.com/qmfsun/p/4598650.html date "+今天是%Y-%d-%m,现在是%H:%M:%S&qu ...
随机推荐
- 如何理解Unity组件化开发模式
Unity的开发模式核心:节点和组件,组件可以加载到任何节点上,每个组件都有 gameobject 属性,可以通过这个属性获取到该节点,即游戏物体. 也就是说游戏物体由节点和组件构成,每个组件表示物体 ...
- Linux运行模式
查看运行模式 cat /etc/inittab 0.表示关机模式,不要把默认模式设置成0 1.表示单用户模式 2.表示多用户模式 3.表示命令行模式 4.表示暂未被使用的模式,以后有可能会被使用 5. ...
- log4j日志的使用
1.引架包和导配置文件log4j.properties <dependency> <groupId>org.slf4j</groupId> <artifact ...
- IntelliJ IDEA 和谐地址及快捷键
转载:http://my.oschina.NET/dyyweb/blog/494504 http://blog.csdn.net/tanlon_0308/article/details/5085473 ...
- python+unittest 控制用例的执行顺序
unittest的main()方法执行用例的顺序是按照测试类.测试方法的名字的ASCII顺序来执行测试方法.所以可能执行的顺序和你想要的顺序不一样,可能通过下面两种方法修改执行顺序 1. 通过Test ...
- The test form is only available for requests from the local machine
使用浏览器测试Web服务时出现提示“The test form is only available for requests from the local machine.”的解决办法 在Web服务项 ...
- [转] Firewall and network filtering in libvirt
Firewall and network filtering in libvirt There are three pieces of libvirt functionality which do n ...
- Azure Sphere–“Object reference not set to an instance of an object” 解决办法
在开发Azure Sphere应用时,如果出现项目无法编译,出现“Object reference not set to an instance of an object”时,必须从下面两个方面进行检 ...
- Spark机器学习解析下集
上次我们讲过<Spark机器学习(上)>,本文是Spark机器学习的下部分,请点击回顾上部分,再更好地理解本文. 1.机器学习的常见算法 常见的机器学习算法有:l 构造条件概率:回归分 ...
- 每天学点SpringCloud(一):使用SpringBoot2.0.3整合SpringCloud
最近开始学习SpringCloud,在此把我学习的过程记录起来,跟大家分享一下,一起学习.想学习SpringCloud的同学赶快上车吧. 本次学习使用得SpringBoot版本为2.0.3.RELEA ...