在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. Kubernetes学习之路(二十一)之网络模型和网络策略

    目录 Kubernetes的网络模型和网络策略 1.Kubernetes网络模型和CNI插件 1.1.Docker网络模型 1.2.Kubernetes网络模型 1.3.Flannel网络插件 1.4 ...

  2. JQuery快速入门-事件与效果

    一.事件 事件绑定的方法有两种: 绑定到元素 查找元素后绑定事件 方法1:绑定到元素 <body> <p onclick='func1()'>点击我</p> < ...

  3. 一、Django前后端交互之Ajax和跨域问题

    一.Ajax介绍 1.概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Jav ...

  4. stl源码剖析 详细学习笔记stack queue

    // //  stack.cpp //  笔记 // //  Created by fam on 15/3/15. // // //---------------------------15/03/1 ...

  5. Linux Mint安装Docker踩坑指南

    我家的服务器选用的Linux Mint系统,最近安装Docker的时候踩了一些小坑,但是总体还算顺利. 我们都知道Linux Mint系统是基于Ubuntu的,说实话用起来感觉还是很不错的,安装Doc ...

  6. 树莓派3b安装Nginx和php7和百度语音合成模块

    1.安装sox系统mp3音频播放模块(项目需要) sudo apt-get install lame sudo apt-get install sox sudo apt-get install lib ...

  7. ffmpeg sox 音频转换 MP3 转 wav

    转自:https://blog.csdn.net/xiaoshulf/article/details/78657172 1 windows 下 mp3 文件和 wav 文件的 转换 实现代码: 1 f ...

  8. commitizen和cz-customizable配置git commit message

    起因 团队对提交的commit message格式有约定俗称的要求,但是没有一个统一的规范,导致大家提交的commit message或多或少不太一样.因此,需要一个工具来帮助大家统一commit m ...

  9. Linux_02

    1.vim编辑器 vim操作命令 --在命令模式下进行 pageup 往上翻页 pagedown 往下翻页 H 移动到屏幕首行 gg 移动光标到文档的首行 前面加数字n表示移动到n行内容 G 移动到文 ...

  10. Apache服务器出现Forbidden 403错误提示的解决方法总结

    在配置Linux的 Apache服务时,经常会遇到http403错误,我今天配置测试时也出现了,最后解决了,总结了一下.http 403错误是拒绝访问的意思,有很多原因的.还有,这些问题在win平台的 ...