linux history命令显示时间_Linux的date命令,时间管理的语义化助手

552c54ee8f185f456a5210407463719e.png

1 神奇的语义化查询

Date命令的语义化查询,真是教人爱不释手。

查询明天的此时此刻的四种方法

$ date -d   'tomorrow' # 等价于 date --date='tomorrow'Sat 13 Jun 2020 05:15:25 PM CST$ date -d  '1 day' # 等价于 date --date='1 day'Sat 13 Jun 2020 05:15:36 PM CST$ date -d '+1 day'Sat 13 Jun 2020 05:18:05 PM CST$ date -d 'next day'Sat 13 Jun 2020 05:25:16 PM CST

短选项 -d 是长选项--date=string的简写形式。

查询昨天的此时此刻的四种方法

$ date -d 'yesterday'Thu 11 Jun 2020 05:18:32 PM CST$ date -d '1 days ago'Thu 11 Jun 2020 05:18:39 PM CST$ date -d '-1 days'Thu 11 Jun 2020 05:18:47 PM CST$ date -d 'last day'Thu 11 Jun 2020 05:25:32 PM CST

查询去年的上个月的此时此刻的三种方法

$ date -d 'last month last year'Sun 12 May 2019 05:19:52 PM CST$ date -d '1 month ago 1 year ago'Sun 12 May 2019 05:22:17 PM CST$ date -d '-1 month -1 year'Sun 12 May 2019 05:22:39 PM CST

注意 `date -d '-1 month -1 year`这种写法,数字前面有减号。

查询星期的方法的三种方法

$ date -d 'last Friday' # 上周五Fri 05 Jun 2020 12:00:00 AM CST$ date -d 'next friday' # 下周五Fri 19 Jun 2020 12:00:00 AM CST$ date -d 'next sun' # 下周日Sun 14 Jun 2020 12:00:00 AM CST

星期可以全称,可以简称、,另外不区分大小写。

查询具体的日期

比如想知道1970-01-01是周几?1949-10-01是周几?

$ date -d  'Jan 01 1970'Thu 01 Jan 1970 12:00:00 AM CST$ date -d  '1949/10/01'Sat 01 Oct 1949 12:00:00 AM CST

2 格式化时间输出

我们在前文中阐述了7秒钟完全记住25个时间格式的方法。

总结的表格如下:

42700e2920fe6324dee6f8c66f2de1a2.png

Date 命令默认输出C语言的时间格式。

$ dateFri 12 Jun 2020 05:39:41 PM CST$ date '+%c'Fri 12 Jun 2020 05:39:27 PM CST

我们将未来的某个日期转换成自定义的时间格式

$ date -d  '15 days 1 month 1 year'    ' +%A %Y-%m-%d %H:%M:%S Week-%V Day-%j TZ-%Z'Tuesday 2021-07-27 17:46:31 Week-30 Day-208 TZ-CST

输出了一年零一个月又15天后的时间戳。

3 指定时区

打印当前的UTC时间

$ date -uFri 12 Jun 2020 10:34:26 AM UTC

我们查看系统的时区文件

$ ls /usr/share/zoneinfo/America/ | nl |tail   135  Thunder_Bay   136  Tijuana   137  Toronto   138  Tortola   139  Vancouver   140  Virgin   141  Whitehorse   142  Winnipeg   143  Yakutat   144  Yellowknife

显示当前的美东时间

$ TZ="America/New_York" dateFri 12 Jun 2020 06:50:42 AM EDT

4 Epoch 时间

Epoch时刻是Unix以1970-01-01 00:00:00 UTC为计时的起点。

查看epoch-time到此时此刻经过了多少秒?

$ date '+%s'1591959529 

也可以反向查询

$ date -u -d @10Thu 01 Jan 1970 12:00:10 AM UTC$ date -d @$(date '+%s')Fri 12 Jun 2020 07:02:47 PM CST

epoch-time最好用的一点是用来测量成勋的运行时间

start=$(date +%s)# run some programsend=$(date +%s)elapsed=$(( end - start ))

5 设置系统时间

我们还能以管理员权限重置系统时间。

date --set="20200618 00:00"

或者查看某个文件的最新修改时间

$ date -r linux-tutorial-2.org Tue 26 May 2020 08:34:16 AM CST

附录

7秒钟记住C++、Java、Python等语言的25种时间格式

e1d8ec546ddb631a7756022d917dc997.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值