在shell脚本里date命令的用法:

%%  一个文字的 %
%a 当前locale 的星期名缩写(例如: 日,代表星期日)
%A 当前locale 的星期名全称 (如:星期日)
%b 当前locale 的月名缩写 (如:一,代表一月)
%B 当前locale 的月名全称 (如:一月)
%c 当前locale 的日期和时间 (如:2005年3月3日 星期四 ::)
%C 世纪;比如 %Y,通常为省略当前年份的后两位数字(例如:)
%d 按月计的日期(例如:)
%D 按月计的日期;等于%m/%d/%y
%e 按月计的日期,添加空格,等于%_d
%F 完整日期格式,等价于 %Y-%m-%d
%g ISO- 格式年份的最后两位 (参见%G)
%G ISO- 格式年份 (参见%V),一般只和 %V 结合使用
%h 等于%b
%H 小时(-)
%I 小时(-)
%j 按年计的日期(-)
%k hour, space padded ( ..); same as %_H
%l hour, space padded ( ..); same as %_I
%m month (..)
%M minute (..)
%n 换行
%N 纳秒(-)
%p 当前locale 下的"上午"或者"下午",未知时输出为空
%P 与%p 类似,但是输出小写字母
%r 当前locale 下的 小时时钟时间 (如::: 下午)
%R 小时时间的时和分,等价于 %H:%M
%s 自UTC 时间 -- :: 以来所经过的秒数
%S 秒(-)
%t 输出制表符 Tab
%T 时间,等于%H:%M:%S
%u 星期, 代表星期一
%U 一年中的第几周,以周日为每星期第一天(-)
%V ISO- 格式规范下的一年中第几周,以周一为每星期第一天(-)
%w 一星期中的第几日(-), 代表周一
%W 一年中的第几周,以周一为每星期第一天(-)
%x 当前locale 下的日期描述 (如://)
%X 当前locale 下的时间描述 (如:::)
%y 年份最后两位数位 (-)
%Y 年份
%z +hhmm 数字时区(例如,-)
%:z +hh:mm 数字时区(例如,-:)
%::z +hh:mm:ss 数字时区(例如,-::)
%:::z 数字时区带有必要的精度 (例如,-,+:)
%Z 按字母表排序的时区缩写 (例如,EDT)

  date命令可以打印和设置系统日期和时间,用法示例如下

  date命令常用选项-d

[keysystem@localhost ~]$ date -d 'now'    #显示当前时间
Fri Feb :: CST
[keysystem@localhost ~]$
[keysystem@localhost ~]$ date -d '2 days ago' #显示2天前的时间
Wed Jan :: CST
[keysystem@localhost ~]$ date -d '3 month 1 day' #显示3月零1天以后的时间
Thu May :: CST
[keysystem@localhost ~]$ date -d '25 Dec' +%j #显示12月25日在当年的哪一天 [keysystem@localhost ~]$ date -d '30 second ago' #显示30秒前的时间
Fri Feb :: CST 2018
##在当前时间的基础上往前或往后推
[keysystem@localhost ~]$ date -d "+3 day"
Mon Feb :: CST
[keysystem@localhost ~]$ date -d "-3 day"
Tue Jan :: CST
[keysystem@localhost ~]$ date -d "-3 month"
Thu Nov :: CST
[keysystem@localhost ~]$ date -d "+3 month"
Wed May :: CST
[keysystem@localhost ~]$ date -d "+3 year"
Tue Feb :: CST
[keysystem@localhost ~]$ date -d "-3 year"
Mon Feb :: CST
[keysystem@localhost ~]$ date -d "-3 hour"
Fri Feb :: CST
[keysystem@localhost ~]$ date -d "+3 hour"
Fri Feb :: CST
[keysystem@localhost ~]$ date -d "+3 minute"
Fri Feb :: CST
[keysystem@localhost ~]$ date -d "-3 minute"
Fri Feb :: CST
[keysystem@localhost ~]$ date -d "-3 second"
Fri Feb :: CST
[keysystem@localhost ~]$ date -d "+3 second"
Fri Feb :: CST
#显示本月的第一天
[keysystem@localhost ~]$ date -d `date +%y%m01`
Thu Feb :: CST
[keysystem@localhost ~]$ date +%y%m01 [keysystem@localhost ~]$ date +%Y%m01
#上个月最后一天
[keysystem@localhost ~]$ date -d `date +%y%m01`"-1 day"
Wed Jan :: CST
#4个月前的最后一天
[keysystem@localhost ~]$ date -d `date -d "-3 month" +%y%m01`"-1 day"
Tue Oct :: CST
#11个月后的第一天
[keysystem@localhost ~]$ date -d `date -d "+12 month" +%y%m01`"-1 day"
Thu Jan :: CST
#11个月后的最后一天
[keysystem@localhost ~]$ date -d `date -d "+12 month" +%y%m01`"-1 day" +%Y%m%d

显示当前的日期和时间

[keysystem@localhost ~]$ date +%Y%m%d

[keysystem@localhost ~]$ date +%Y%m%d%H%M%S

设置日期和时间(date后面的数字代表月日时分年,还可以加秒,需要后面跟英文状态下的句号字符".")

[keysystem@localhost ~]$ date +%m%d%H%M%y

[keysystem@localhost ~]$ date
date: cannot set date: Operation not permitted
Fri Feb :: CST
[keysystem@localhost ~]$ date +%m%d%H%M%y.%S
0202102518.11
[keysystem@localhost ~]$ date 0202102518.11
date: cannot set date: Operation not permitted
Fri Feb :: CST
[keysystem@localhost ~]$ date `date -d "3 days ago" +%m%d%H%M%Y.%S`
date: cannot set date: Operation not permitted
Tue Jan :: CST
[keysystem@localhost ~]$ date `date -d "$((3600*24)) seconds ago" +%m%d%H%M%Y.%S`
date: cannot set date: Operation not permitted
Thu Feb :: CST
[keysystem@localhost ~]$

Linux上shell脚本date的用法的更多相关文章

  1. Linux上shell脚本,字符串转ASCII码

    在shell脚本里,将字符串转ASCII码的方法: [keysystem@localhost ~]$ printf "%d" "'A" [keysystem@l ...

  2. Linux常用Shell脚本珍藏【转载】

    我们在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本.如何学好脚本,最关键的 ...

  3. 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器

    本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...

  4. 从windows到linux的shell脚本编码和格式问题

    从windows到linux的shell脚本编码和格式问题   从windows到Linux的shell脚本编码和格式问题 1.异常问题 :set ff=unix 启动脚本在启动时报错比如执行sh s ...

  5. Linux运行shell脚本提示No such file or directory错误的解决办法

    Linux执行.sh文件,提示No such file or directory的问题: 原因:在windows中写好shell脚本测试正常,但是上传到 Linux 上以脚本方式运行命令时提示No s ...

  6. Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间

    Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...

  7. Linux:从windows到linux的shell脚本编码和格式

    从windows到linux的shell脚本编码和格式问题 异常问题 :set ff=unix 启动脚本在启动时报错比如执行sh start.sh,时会报Command not found等等的错误, ...

  8. 使用C#给Linux写Shell脚本(下篇)

    在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...

  9. Linux/Unix shell 脚本中调用SQL,RMAN脚本

    Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...

随机推荐

  1. Linux每天一个命令:cat

    Linux cat命令 命令:cat cat 命令用于连接文件并打印到标准输出设备上. 使用权限 所有使用者 语法格式 cat [-AbeEnstTuv] [--help] [--version] f ...

  2. springmvc 结合 自动封装异常信息输出为json 报错 500内部服务器错误的原因

    补充:还有一个原因是因为spring的对象没有被成功注入,例如 mapper没有被成功注入,抛出异常时在这种封装场景下将会抛出 500 服务器内部错误, 这种情况下要排查还是靠debug然后看看到底是 ...

  3. LHS 和 RHS----你所不知道的JavaScript系列(1)

      变量的赋值操作会执行两个动作, 首先编译器会在当前作用域中声明一个变量(如果之前没有声明过), 然后在运行时引擎会在作用域中查找该变量, 如果能够找到就会对它赋值.----<你所不知道的Ja ...

  4. 如何设计一个异步Web服务——任务调度

    接上一篇<如何设计一个异步Web服务——接口部分> Application已经将任务信息发到了Service服务器中,接下来,Service服务器改如何对自身的资源进行合理分配以满足App ...

  5. Linux shell (6)

    1.linux shell函数: 将一组命令集或语句形成一个可用的块,这些语句块成为函数. 2.shell 函数的组成:  函数名:函数的名字,注意一个脚本中函数名要唯一,否则会引起调用函数紊乱  函 ...

  6. H5游戏接微信小游戏的支付,满满的都是坑!

    h5小游戏接微信的支付,简直是在为难我胖虎,说多了都是泪. 准备工作: 准备工作一定要做好,不然很容易出错.首先是session_key这个字段,这个session_key是登录的时候需要用到的,根据 ...

  7. Golang Context 详细介绍

    Golang context 本文包含对context实现上的分析和使用方式,分析部分源码讲解比价多,可能会比较枯燥,读者可以直接跳过去阅读使用部分. ps: 作者本着开源分享的精神撰写本篇文章,如果 ...

  8. 1090. Highest Price in Supply Chain (25)-dfs求层数

    给出一棵树,在树根出货物的价格为p,然后每往下一层,价格增加r%,求所有叶子节点中的最高价格,以及该层叶子结点个数. #include <iostream> #include <cs ...

  9. YQCB冲刺第二周第五天

    今天的任务为实现由用户设置每月初始额度的功能. 昨天的任务为实现精准查账的功能. 遇到的问题为界面的布局以及精准查账按什么标准查找,最后决定按分类查账与时间查账相结合. 站立会议 任务面板

  10. beta版本“足够好”/测试矩阵

    能通过地图鱼相应的地点信息实时交互,便于用户操作. 测试矩阵