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 15 echo -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
|