1.1 date命令
date用于获取和设置操作系统的时间,还有hwclock是获取硬件时间。
date有个选项”-d”,可以用来描述获取什么时候的时间,描述的方式非常开放,但不能使用”now”关键字,其他的如3天前”3 days ago”,3天后”3 days”,昨天”yesterday”,下周一”next Monday”等等。
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@linuxidc ~]# date +%F 2016-09-25 [root@linuxidc ~]# date +"%F %T" # 有空格需要使用双引号或引号来分隔 2016-09-25 10:48:34 [root@linuxidc ~]# date +"%Y-%m-%d %H:%M:%S" 2016-09-25 10:47:49
使用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 5
sleep默认的休眠单位为秒,因此上面表示休眠5秒钟。如果要休眠毫秒级、微秒级,则可以使用小数。例如:
sleep 0.5
表示休眠半秒钟。
此外,还有专门的微秒级的休眠命令usleep。例如:
usleep 1000
表示休眠1000微秒,即1毫秒。
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146545.htm