在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. Ueditor使用笔记

            富文本编辑器在javaweb项目中还是比较常见的,如:ckeditor.kindeditor.ueditor等.今天主要叙述的对象为ueditor,它属于百度的.闲话不多说,下面开始介 ...

  2. 【php增删改查实例】 第三节 - mysql 建表

    这一节,来给数据库中添加一些测试数据. 登陆mysql: 找到%xampp%\mysql\bin 目录, 在此处打开命令窗口,用root用户登陆mysql 用户表建表sql: CREATE TABLE ...

  3. 关于KMP

    KMP算法,对于求b串在a串中出现的次数. 在学习KMP之前,希望大家充分掌握hash. HASH: 1.hash表:用来离散化(hash数组,hash链表) 2.Rabin-Kap算法: 可替代KM ...

  4. 【SP1811】LCS - Longest Common Substring

    [SP1811]LCS - Longest Common Substring 题面 洛谷 题解 建好后缀自动机后从初始状态沿着现在的边匹配, 如果失配则跳它的后缀链接,因为你跳后缀链接到达的\(End ...

  5. python 生成器按指定大小读取文件

    #!/usr/bin/env python import osimport sys def read_file(fpath): Block_Size = 1024 with open(fpath,&q ...

  6. 前端页面loading效果(CSS实现)

    当首页内容或图片比较多时,加载时间会比较长,此时可能出现页面白屏的情况,用户体验较差.所以,在页面完全加载出来之前,可以考虑加入loading效果,当页面完全加载完后,是loading消失即可. 1. ...

  7. 微软职位内部推荐-Sr. SE - Office incubation

    微软近期Open的职位: Senior Software Engineer-Office Incubation Office China team is looking for experienced ...

  8. PAT甲题题解-1111. Online Map (30)-PAT甲级真题(模板题,两次Dijkstra,同时记下最短路径)

    题意:给了图,以及s和t,让你求s到t花费的最短路程.最短时间,以及输出对应的路径.   对于最短路程,如果路程一样,输出时间最少的. 对于最短时间,如果时间一样,输出节点数最少的.   如果最短路程 ...

  9. Design and Implementation of a Routing Control Platform阅读笔记

    Design and Implementation of a Routing Control Platform   0.Abstract 1.Introduction 2.Interoperating ...

  10. Answer My Questions

    回答自己的问题,真棒!断电让自己的工作重来.真棒! 阅读以前自己的博客,发现问题都已经有了答案. (1).想要成为一名专业的软件工程师,首先得是有相关的资格证书,这个可以通过软考获得.然后在职场中锻炼 ...