Linux最常用的几个时间日期命令 桃花谢了春红,太匆匆,无奈朝来风雨晚来风。
时光只解催人老,不信多情,长恨离亭,泪滴春衫酒易醒。
时间就在指缝间,悄然的离去了。
 
一日难再晨及时当勉励 date date命令可以用来打印显示亦或者更改日期和时间。
看看官方的定义如下:
 date - print or set the system date and time
 
用法如下:
1 2 $ date  [OPTION]... [+FORMAT] $ date  [-u | --utc| --universal] [MMDDhhmm[[CC]YY][.ss]] 
 
较常用的OPTION为:
-R : 显示时区 
-u, --utc, --universal:打印或者设置世界协调时 
-d, --date=STRING:显示STRING 的时间 
 
默认输入 date 命令默认情况下为CST时区,
1 2 $ date  Mon Jun  5 15:11:44 CST 2014 
 
显示时区 如果加上 -R参数就可以带上时区,比如我们的东八区
1 2 $ date  -R Mon, 05 Jun 2014 15:15:25 +0800 
 
世界协调时 选项-u, --utc, --universal可以显示世界协调时
1 2 3 4 5 6 7 8 $ date  -u Mon Jun  5 07:15:46 UTC 2014 $ date  --utc Mon Jun  5 07:15:48 UTC 2014 $ date  --universal Mon Jun  5 07:15:55 UTC 2014 
 
格式化日期 可以通过不同的参数来格式化日期,这里需要注意的是:不同的大小写代表的是不同的含义
比较常用的日期和时间如下:
1 2 3 4 5 6 7 8 $ date   +%Y-%m-%dT%H:%M:%S 2013-01-17T18:01:08 $ data +%FT%T 2013-01-17T18:02:12 
 
时光总是催人老 time Linux time命令的用途,在于测量指定命令消耗的时间。
最常用的在于大概评估一个程序的运行时间。 
这个命令很容易给人的印象是与date混淆起来
官方定义为:
time - time a simple command or give resource usage
 
可以给出包括系统的粗略时间。
语法 1 $ time  [options] command  [arguments...] 
 
参数 :
	- 可以认为没有参数
示例 会显示程序或命令执行的消耗时间
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 $ time  ls  /var account  crash  games     lib    log   ...... real    0m0.014s user    0m0.003s sys     0m0.010s $ time  ps -aux root     295490  0.0  0.0      0     0 ?        S    Feb20   0:10 [ldlm_cb00_019 root     297717  0.0  0.0      0     0 ?        S<   Jan29   0:04 [kworker/58:1H root     304801  0.0  0.0      0     0 ?        S    Mar19   0:00 [kworker/1:1] root     311110  0.0  0.0      0     0 ?        S    Mar20   0:00 [kworker/66:0] root     313146  0.0  0.0      0     0 ?        S    Mar20   0:01 [kworker/73:2] root     313461  0.0  0.0      0     0 ?        S<   Jan29   0:00 [kworker/44:2H root     313914  0.0  0.0      0     0 ?        S    Feb21   0:10 [kworker/9:2] root     314118  0.0  0.0      0     0 ?        S    Feb21   3:34 [kworker/18:1] root     315801  0.0  0.0      0     0 ?        S    Mar20   0:00 [kworker/79:2] real    0m0.180s user    0m0.019s sys     0m0.114 
 
唯一需要留意的是上面的三个含义:
real  : 程序从开始调用到最后终止之间经过的实时时间 
user  : 程序本身,以及它所调用的库中的子例程使用的CPU 时间 
sys  : 程序直接或间接调用的系统调用执行的CPU 时间 
 
休息一会 sleep Linux sleep命令可以用来将目前动作延迟一段时间。
sleep的官方定义为:
 sleep - delay for a specified amount of time
 
或许你觉得计算机太累,让它稍事休息,亦或许过个个把钟头需要喝杯水,此时sleep就有点小作用了。
其用法如下:
1 $ sleep  [--help ] [--version] number[smhd] 
 
除了帮助和版本信息,基本没有参数了。
其中的number是必须的,也就是sleep多久的数字,默认为s秒。其他的几个含义为:
s second 秒 
m minute分钟 
h hour 小时 
d day 天 
 
休息5分钟 工作太累了,学习太累了,躺着太累了,休息5分钟
 
1小时后提醒我  
时分秒搭配使用 当然,sleep也是支持时分秒搭配使用的,如下所示:
 
将会sleep 1个小时2分钟3秒。
倒计时计时器 当然也可以做个循环计时器,通过sleep 1
1 $ echo  "five"    && sleep  1 && echo  "four"    && sleep  1 && sleep  1 && echo  "three"    && sleep  1 && echo  "two"  && sleep  1 && echo  "one"  && echo  "Stop"  
 
结合脚本 sleep在程序里面使用比较频繁,特别是单片机的走马灯等。而Linux的sleep,也是比较常与bash脚本来配合使用,如下:
1 2 3 4 5 #!/bin/bash echo  -e "start to sleep 15 seconds......" sleep  15echo  -e "continue to run program......" ./program 
 
可看黄道吉日的 cal cal用于显示当前日历信息或者指定日期的公历信息。
cal的官方定义为:
 cal, ncal — displays a calendar and the date of Easter
 
cal也是来自于calendar 的前三个字母。
其用法有好几种,比如可以为:
1 2 3 4 5 6 $ cal [-31jy] [-A number] [-B number] [-d yyyy-mm] [[month] year] $ cal [-31j] [-A number] [-B number] [-d yyyy-mm] -m month [year] $ ncal [-C] [-31jy] [-A number] [-B number] [-d yyyy-mm] [[month] year] $ ncal [-C] [-31j] [-A number] [-B number] [-d yyyy-mm] -m month [year] $ ncal [-31bhjJpwySM] [-A number] [-B number] [-H yyyy-mm-dd] [-d yyyy-mm] [-s country_code] [[month] year] $ ncal [-31bhJeoSM] [-A number] [-B number] [-d yyyy-mm] [year] 
 
cal可以没有参数,也可以多个参数组合。
[[month] year]的含义是,比如有year 这个参数,然后可以出现month year 两个参数。
主要使用的参数为:
-3 :显示前后和当前3个月的日历 
-y :显示一年的日历,此时不要指定月份参数 
-j :显示在当年中的第几天(儒略日) 
 
显示当前月份的日历 默认无参数会显示当前的月份等信息
1 2 3 4 5 6 7 8 $ cal    February 2011 Su Mo Tu We Th Fr Sa        1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
 
显示指定年月的日历 比如希望看看2012年12月份,可以运行如下命令:
1 2 3 4 5 6 7 8 9 $ cal 12 2012    December 2012 Su Mo Tu We Th Fr Sa                    1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 
 
显示3个月的日历 -3将显示当前月份、前一个月、后一个月,共计3个月的日历。
1 2 3 4 5 6 7 8 9 10 $ cal -3                             2011       January               February               March Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa                    1         1  2  3  4  5         1  2  3  4  5  2  3  4  5  6  7  8   6  7  8  9 10 11 12   6  7  8  9 10 11 12  9 10 11 12 13 14 15  13 14 15 16 17 18 19  13 14 15 16 17 18 19 16 17 18 19 20 21 22  20 21 22 23 24 25 26  20 21 22 23 24 25 26 23 24 25 26 27 28 29  27 28                 27 28 29 30 31 30 31 
 
显示一年的日历 使用-y参数,可以查看一年的日历。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 $ cal -y                             2011       January               February               March Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa                    1         1  2  3  4  5         1  2  3  4  5  2  3  4  5  6  7  8   6  7  8  9 10 11 12   6  7  8  9 10 11 12  9 10 11 12 13 14 15  13 14 15 16 17 18 19  13 14 15 16 17 18 19 16 17 18 19 20 21 22  20 21 22 23 24 25 26  20 21 22 23 24 25 26 23 24 25 26 27 28 29  27 28                 27 28 29 30 31 30 31        April                  May                   June Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa                 1  2   1  2  3  4  5  6  7            1  2  3  4  3  4  5  6  7  8  9   8  9 10 11 12 13 14   5  6  7  8  9 10 11 10 11 12 13 14 15 16  15 16 17 18 19 20 21  12 13 14 15 16 17 18 17 18 19 20 21 22 23  22 23 24 25 26 27 28  19 20 21 22 23 24 25 24 25 26 27 28 29 30  29 30 31              26 27 28 29 30         July                 August              September Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa                 1  2      1  2  3  4  5  6               1  2  3  3  4  5  6  7  8  9   7  8  9 10 11 12 13   4  5  6  7  8  9 10 10 11 12 13 14 15 16  14 15 16 17 18 19 20  11 12 13 14 15 16 17 17 18 19 20 21 22 23  21 22 23 24 25 26 27  18 19 20 21 22 23 24 24 25 26 27 28 29 30  28 29 30 31           25 26 27 28 29 30 31       October               November              December Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa                    1         1  2  3  4  5               1  2  3  2  3  4  5  6  7  8   6  7  8  9 10 11 12   4  5  6  7  8  9 10  9 10 11 12 13 14 15  13 14 15 16 17 18 19  11 12 13 14 15 16 17 16 17 18 19 20 21 22  20 21 22 23 24 25 26  18 19 20 21 22 23 24 23 24 25 26 27 28 29  27 28 29 30           25 26 27 28 29 30 31 30 31 
 
显示儒略日 -j用于显示儒略日,这里的儒略日的概念为从1月1日开始计算的多少天,这个在倒计时的时候挺好用的。
1 2 3 4 5 6 7 8 9 $ cal -j   cal 02 2011 -j        February 2011  Su  Mo  Tu  We  Th  Fr  Sa          32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59