Linux最常用的几个时间日期命令

Linux最常用的几个时间日期命令

桃花谢了春红,太匆匆,无奈朝来风雨晚来风。

时光只解催人老,不信多情,长恨离亭,泪滴春衫酒易醒。

时间就在指缝间,悄然的离去了。

一日难再晨及时当勉励 date

date命令可以用来打印显示亦或者更改日期和时间。

看看官方的定义如下:

date - print or set the system date and time

用法如下:

$ date [OPTION]... [+FORMAT]
$ date [-u | --utc| --universal] [MMDDhhmm[[CC]YY][.ss]]

较常用的OPTION为:

  • -R : 显示时区
  • -u, --utc, --universal:打印或者设置世界协调时
  • -d, --date=STRING:显示STRING的时间

默认输入

date 命令默认情况下为CST时区,

$ date
Mon Jun  5 15:11:44 CST 2014

显示时区

如果加上 -R参数就可以带上时区,比如我们的东八区

$ date -R
Mon, 05 Jun 2014 15:15:25 +0800

世界协调时

选项-u, --utc, --universal可以显示世界协调时

$ 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

格式化日期

可以通过不同的参数来格式化日期,这里需要注意的是:不同的大小写代表的是不同的含义

比较常用的日期和时间如下:

# 显示年月日时分秒
$ 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

可以给出包括系统的粗略时间。

语法

$ time [options] command [arguments...]

参数

​ - 可以认为没有参数

示例

会显示程序或命令执行的消耗时间

$ 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

唯一需要留意的是上面的三个含义:

  1. real : 程序从开始调用到最后终止之间经过的实时时间
  2. user : 程序本身,以及它所调用的库中的子例程使用的CPU 时间
  3. sys : 程序直接或间接调用的系统调用执行的CPU 时间

休息一会 sleep

Linux sleep命令可以用来将目前动作延迟一段时间。

sleep的官方定义为:

sleep - delay for a specified amount of time

或许你觉得计算机太累,让它稍事休息,亦或许过个个把钟头需要喝杯水,此时sleep就有点小作用了。

其用法如下:

$ sleep [--help] [--version] number[smhd]

除了帮助和版本信息,基本没有参数了。

其中的number是必须的,也就是sleep多久的数字,默认为s秒。其他的几个含义为:

  • s second 秒
  • m minute分钟
  • h hour 小时
  • d day 天

休息5分钟

工作太累了,学习太累了,躺着太累了,休息5分钟

$ sleep 5m

1小时后提醒我

$ sleep 1h

时分秒搭配使用

当然,sleep也是支持时分秒搭配使用的,如下所示:

$ sleep 1h 2m 3s

将会sleep 1个小时2分钟3秒。

倒计时计时器

当然也可以做个循环计时器,通过sleep 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脚本来配合使用,如下:

#!/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的前三个字母。

其用法有好几种,比如可以为:

$ 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 :显示在当年中的第几天(儒略日)

显示当前月份的日历

默认无参数会显示当前的月份等信息

$ 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月份,可以运行如下命令:

$ 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个月的日历。

$ 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参数,可以查看一年的日历。

$ 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日开始计算的多少天,这个在倒计时的时候挺好用的。

$ 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我们编程吧

为吾笔墨赞赏,莫大荣幸鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值