2016-09-03 13:13:41 qq981378640 阅读数 11237
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7178 人正在学习 去看看 良许

最近几天做了一项window下的打包工作,因为每天都要制作安装包,所以要设置一下时间戳,为此研究了一下Windows下bat脚本获取时间和Linux下shell脚本获取时间。

1、Windows下bat脚本获取时间

(1)windows下DOS窗口date的结果 2016/09/03 周六,我们需要将其进行格式化显示,如:YYYY-MM-DD 就要进行如下操作:

日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)

年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位

(2)windows下DOS窗口time的结果 12:05:49.02 我们需要将其进行格式化显示,如:HH:MM:SS就要进行如下操作:

时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)

时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位

详见脚本DateTime.bat

:: 脚本创建时最好选择GB2312编码(方式很简单,新建txt文件,输入几个中文字符保存后将后缀.txt改成.bat)
:: @echo off 表示不回显执行的命令
@echo off 
@echo =========Windows的原本日期时间格式=======================
:: 设置变量,使用变量时需要用一对%包起来
set ORIGINAL_DATE=%date% 
echo %ORIGINAL_DATE%

@echo =========日期按照YYYY-MM-DD格式显示======================
:: 日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
:: windows下DOS窗口date的结果 2016/09/03 周六
:: 年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位
set CURRENT_DATE=%date:~0,4%-%date:~5,2%-%date:~8,2% 
echo %CURRENT_DATE%

@echo =========时间按照HH:MM:SS格式显示========================
:: 时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
:: windows下DOS窗口time的结果 12:05:49.02 
:: 时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位
set CURRENT_TIME=%time:~0,2%:%time:~3,2%:%time:~6,2%  
echo %CURRENT_TIME%

@echo =========日期时间按照YYYY-MM-DD HH:MM:SS格式显示=========
set CURRENT_DATE_TIME=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%:%time:~3,2%:%time:~6,2%  
echo %CURRENT_DATE_TIME%

@echo =========日期时间按照YYYYMMDD_HHMMSS格式显示=============
set CURRENT_DATE_TIME_STAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%
echo %CURRENT_DATE_TIME_STAMP%
@echo =========================================================


运行结果:



不过最近测试发现一个问题,当时钟小于等于9时,前面有个空格,比较难看,如下图


针对上面的问题做了如下修改:

:: 编码格式 GB2312
:: 脚本创建时最好选择GB2312编码(方式很简单,新建txt文件,输入几个中文字符保存后将后缀.txt改成.bat)
:: @echo off 表示不回显执行的命令
@echo off 
@echo =========Windows的原本日期时间格式=======================
:: 设置变量,使用变量时需要用一对%包起来
set ORIGINAL_DATE=%date% 
echo %ORIGINAL_DATE%

@echo =========日期按照YYYY-MM-DD格式显示======================
:: 日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
:: windows下DOS窗口date的结果 2016/09/03 周六
:: 年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位

set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%
set CURRENT_DATE=%YEAR%-%MONTH%-%DAY%
echo %CURRENT_DATE%

@echo =========时间按照HH:MM:SS格式显示========================
:: 时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
:: windows下DOS窗口time的结果 12:05:49.02 
:: 时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位

set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%

:: 当时钟小于等于9时,前面有个空格,这时我们少截取一位,从第1位开始截取
set TMP_HOUR=%time:~1,1%
set NINE=9
set ZERO=0
:: 处理时钟是个位数的时候前面补上一个0, LEQ表示小于等于
if %HOUR% LEQ %NINE% set HOUR=%ZERO%%TMP_HOUR%

set CURRENT_TIME=%HOUR%:%MINUTE%:%SECOND%
echo %CURRENT_TIME%

@echo =========日期时间按照YYYY-MM-DD HH:MM:SS格式显示=========
set CURRENT_DATE_TIME=%YEAR%-%MONTH%-%DAY% %HOUR%:%MINUTE%:%SECOND%
echo %CURRENT_DATE_TIME%

@echo =========日期时间按照YYYYMMDD_HHMMSS格式显示=============
set CURRENT_DATE_TIME_STAMP=%YEAR%%MONTH%%DAY%_%HOUR%%MINUTE%%SECOND%
echo %CURRENT_DATE_TIME_STAMP%
@echo =========================================================

DateTime.bat

运行效果如下:



提供一个按照时间戳创建文件夹的脚本,这个在文件备份的时候常常用到

CreateDirectoryByTimeStamp.bat

:: 编码格式 GB2312
:: 脚本创建时最好选择GB2312编码(方式很简单,新建txt文件,输入几个中文字符保存后将后缀.txt改成.bat)
:: @echo off 表示不回显执行的命令
@echo off 

:: 日期截取遵从格式 %date:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
:: windows下DOS窗口date的结果 2016/09/03 周六
:: 年份从第0位开始截取4位,月份从第5位开始截取2位,日期从第8位开始截取2位
set YEAR=%date:~0,4%
set MONTH=%date:~5,2%
set DAY=%date:~8,2%

:: 时间截取遵从格式 %time:~x,y%,表示从第x位开始,截取y个长度(x,y的起始值为0)
:: windows下DOS窗口time的结果 12:05:49.02 
:: 时钟从第0位开始截取2位,分钟从第3位开始截取2位,秒钟从第6位开始截取2位
set HOUR=%time:~0,2%
set MINUTE=%time:~3,2%
set SECOND=%time:~6,2%
:: 毫秒
set MILLISECIOND=%time:~9,2%

:: 当时钟小于等于9时,前面有个空格,这时我们少截取一位,从第1位开始截取
set TMP_HOUR=%time:~1,1%
set NINE=9
set ZERO=0
:: 处理时钟是个位数的时候前面补上一个0, LEQ表示小于等于
if %HOUR% LEQ %NINE% set HOUR=%ZERO%%TMP_HOUR%

set CURRENT_DATE_TIME_STAMP=%YEAR%%MONTH%%DAY%%HOUR%%MINUTE%%SECOND%%MILLISECIOND%
mkdir  %CURRENT_DATE_TIME_STAMP%


2、Linux下shell脚本获取时间

Linux下shell脚本获取时间就比较简单了,详见脚本DateTime.sh:

echo "====================================================="
echo "show linux original format date and time:"
echo DateTime: $(date)
echo "====================================================="

echo "show date time like format: YYYY-MM-DD HH:MM:SS"
NOW_DATE_TIME=$(date "+%Y-%m-%d %H:%M:%S")
echo $NOW_DATE_TIME
echo "====================================================="

echo "show date time like format: YYYYMMDD-HHMMSS"
NOW_TIME=$(date "+%Y%m%d-%H%M%S")
echo $NOW_TIME
echo "====================================================="

echo "show last year:"
LAST_YEAR=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 years")
echo $LAST_YEAR
echo "====================================================="

echo "show next year:"
NEXT_YEAR=$(date "+%Y-%m-%d %H:%M:%S" --date="1 years")
echo $NEXT_YEAR
echo "====================================================="

echo "show last month:"
LAST_MONTH=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 months")
echo $LAST_MONTH
echo "====================================================="

echo "show next month:"
NEXT_MONTH=$(date "+%Y-%m-%d %H:%M:%S" --date="1 months")
echo $NEXT_MONTH
echo "====================================================="

echo "show last day:"
LAST_DAY=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 days")
echo $LAST_DAY
echo "====================================================="

echo "show next day:"
NEXT_DAY=$(date "+%Y-%m-%d %H:%M:%S" --date="1 days")
echo $NEXT_DAY
echo "====================================================="

echo "show last hour:"
LAST_HOUR=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 hours")
echo $LAST_HOUR
echo "====================================================="

echo "show next hour:"
NEXT_HOUR=$(date "+%Y-%m-%d %H:%M:%S" --date="1 hours")
echo $NEXT_HOUR
echo "====================================================="

echo "show last minute:"
LAST_MINUTE=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 minutes")
echo $LAST_MINUTE
echo "====================================================="

echo "show next minute:"
NEXT_MINUTE=$(date "+%Y-%m-%d %H:%M:%S" --date="1 minutes")
echo $NEXT_MINUTE
echo "====================================================="

echo "show last second:"
LAST_SECOND=$(date "+%Y-%m-%d %H:%M:%S" --date="-1 seconds")
echo $LAST_SECOND
echo "====================================================="

echo "show next second:"
NEXT_SECOND=$(date "+%Y-%m-%d %H:%M:%S" --date="1 seconds")
echo $NEXT_SECOND
echo "====================================================="

DateTime.sh

运行结果:


2018-11-26 20:27:10 weixin_38653290 阅读数 1011
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7178 人正在学习 去看看 良许

本教程是一些Linux命令中关于grep、cut、printf、sed、awk 的一些基本用法,没有过多的固定格式化语法,而是通过鲜明的对比与例子进行演示,旨在方便大家更好的记忆与理解!

1、grep正则
匹配日期格式 YYYY-MM-DD
[0-9]{4}-[0-9]{2}-[0-9]{2}
匹配IP地址
[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}
在这里我创建了一个a.txt文件 内容如下
在这里插入图片描述

通过grep正则表达式匹配日期 grep ‘[0-9]{4}-[0-9]{2}-[0-9]{2}’ a.txt
在这里插入图片描述
通过grep正则表达式匹配IP地址
在这里插入图片描述

注意:这里的 grep -v “root” 意思是 去除带"root的行" 与 grep “root” 相反
在这里插入图片描述

2、Cut

cut [选项] 文件名
选项
-f 列号 :提取第几列
-d 分隔符 :按照指定分隔符分割列

创建如下制表符分隔的文件
在这里插入图片描述

这里注意下: 如果不用-d去指定,它的默认分隔符是制表符–tab,结果如下
在这里插入图片描述

Cut命令的局限 df -h | cut -d " " -f 1,3
在这里插入图片描述
也就是说 我们以空格做切分,并没有得到完整的数据 下面会以其他方式解决

3、printf命令

printf ‘输出类型输出格式’ 输出内容
在这里插入图片描述

下面调整下输出格式
在这里插入图片描述

4、awk

awk ‘条件1{动作1} 条件2 {动作2}…’
条件:一般使用关系表达式作为条件
动作:格式化输出,流程控制语句
这里注意下:awk的默认分隔符是空白(包含空格和制表符)
在awk命令的输出中时支持printf命令的 下面演示代码中的printf也可以换成print
在这里插入图片描述

看看,前面用的cut方式没有得到对应的列 用awk的方式前面那个问题是不是迎刃而解了
在这里插入图片描述

下面来演示下 awk、grep、print、cut的综合应用
在这里插入图片描述

BEGIN关键在最开始执行,而且只执行一次
在这里插入图片描述

同理,END关键字在最后执行,而且也执行一次
在这里插入图片描述

awk 条件 {动作},这里是先通过 grep -v name 去除了带有name的行哦
在这里插入图片描述

这里awk还有一个常用的变量FS,下面我们来应用一下 它是对每行的数据根据某条件进行切分
其中cat /etc/passwd | grep /bin/bash结果是:
在这里插入图片描述
在这里插入图片描述

5、sed命令

sed 是一种几乎包括在所有UNIX平台(包括Linux)的轻量级流编辑器。sed主要是用来将数据进行选取、替换、删除、新增的命令
sed [选项] ‘[动作]’ 文件名

[选项]
-n :使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN 的数据一般都会被列出到终端上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令列模式上进行 sed 的动作编辑;
-f :直接将 sed 的动作写在一个文件内, -f filename 则可以运行 filename 内的 sed 动作;
-r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)

[动作]
a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
p :列印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
-i :直接修改读取的文件内容,而不是输出到终端。

不带-n是输出文件的全部 带 -n是输出指定行
在这里插入图片描述

删除(delete)第三行到第四行的数据
在这里插入图片描述

这里注意下 a (append)与 i (insert)的区别 append是在后面追加数据 insert这里是在它的指定行插入
在这里插入图片描述

对指定行进行替换
在这里插入图片描述

在指定行对字符串进行替换
在这里插入图片描述

注意上面的替换并没有真正写入数据文件中 如果想要写入文件中 需要 加上选项 -i 如下
在这里插入图片描述

好了,今天的分享就到这里吧,那你今天收获了多少呢

2019-02-13 18:02:36 qq_38313246 阅读数 185
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7178 人正在学习 去看看 良许

1.time(); 函数

函数原型: time_t time(time_t *timer)

函数用途: 得到机器的日历时间或者设置日历时间

头 文 件: time.h

输入参数: timer=NULL时,得到机器日历时间, =时间数值时 用于设置日历时间;

/*  time - 获取计算机系统当前的日历时间(Calender Time)
 *         处理日期时间的函数都是以本函数的返回值为基础进行运算
 *
 *  函数原型:
 *      #include <time.h>
 *  
 *      time_t time(time_t *calptr);
 *
 *  返回值:
 *      成功:秒数,从1970-1-1,00:00:00
 *
 *  使用:
 *      time_t now;
 *  
 *      time(&now); // == now = time(NULL);
 */

time_t是一个long类型

time_t实际上是长整型,到未来的某一天,从一个时间点(一般是1970年1月1日0时0分0秒)到那时的秒数(即日历时间)超出了长整形所能表示的数的范围怎么办?对time_t数据类型的值来说,它所表示的时间不能晚于2038年1月18日19时14分07秒。为了能够表示更久远的时间,一些编译器厂商引入了64位甚至更长的整形数来保存日历时间。比如微软在Visual C++中采用了__time64_t数据类型来保存日历时间,并通过_time64()函数来获得日历时间(而不是通过使用32位字的time()函数),这样就可以通过该数据类型保存3001年1月1日0时0分0秒(不包括该时间点)之前的时间。


2.time命令

当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短的。所有类UNIX系统都包含time命令,使用这个命令可以统计时间消耗。例如:

[root@localhost ~]# time ls
anaconda-ks.cfg  install.log  install.log.syslog  satools  text

real    0m0.009s
user    0m0.002s
sys     0m0.007s

输出的信息分别显示了该命令所花费的real时间、user时间和sys时间。

  • real时间是指挂钟时间,也就是命令开始执行到结束的时间。这个短时间包括其他进程所占用的时间片,和进程被阻塞时所花费的时间。
  • user时间是指进程花费在用户模式中的CPU时间,这是唯一真正用于执行进程所花费的时间,其他进程和花费阻塞状态中的时间没有计算在内。
  • sys时间是指花费在内核模式中的CPU时间,代表在内核中执系统调用所花费的时间,这也是真正由进程使用的CPU时间。

shell内建也有一个time命令,当运行time时候是调用的系统内建命令,应为系统内建的功能有限,所以需要时间其他功能需要使用time命令可执行二进制文件/usr/bin/time

使用-o选项将执行时间写入到文件中:

/usr/bin/time -o outfile.txt ls

使用-a选项追加信息:

/usr/bin/time -a -o outfile.txt ls

使用-f选项格式化时间输出:

/usr/bin/time -f "time: %U" ls

-f选项后的参数:

参数 描述
%E real时间,显示格式为[小时:]分钟:秒
%U user时间。
%S sys时间。
%C 进行计时的命令名称和命令行参数。
%D 进程非共享数据区域,以KB为单位。
%x 命令退出状态。
%k 进程接收到的信号数量。
%w 进程被交换出主存的次数。
%Z 系统的页面大小,这是一个系统常量,不用系统中常量值也不同。
%P 进程所获取的CPU时间百分百,这个值等于user+system时间除以总共的运行时间。
%K 进程的平均总内存使用量(data+stack+text),单位是KB。
%w 进程主动进行上下文切换的次数,例如等待I/O操作完成。
%c 进程被迫进行上下文切换的次数(由于时间片到期)。
2012-08-21 16:59:09 iteye_5443 阅读数 547
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7178 人正在学习 去看看 良许

 

转:http://www.mysqlinfo.com/2012/04/22/shell-%E6%97%A5%E6%9C%9F%E5%8A%A0%E5%87%8F%EF%BC%8C%E6%97%A5%E6%9C%9F%E5%A4%A7%E5%B0%8F%E6%AF%94%E8%BE%83%E7%9A%84%E6%96%B9%E6%B3%95/

 

1 日期加减方法
可实现当天的日期加减,指定日期的加减,天周月年。

$ date -d "+1 day" +%Y-%m-%d
2012-04-23

$ date -d "-1 day" +%Y-%m-%d
2012-04-21

$ date -d "2012-04-10 -1 day " +%Y-%m-%d
2012-04-09

$ date -d "2012-04-10 +1 day " +%Y-%m-%d
2012-04-11

$ date -d "-1 week " +%Y-%m-%d
2012-04-15

$ date -d "+1 week " +%Y-%m-%d
2012-04-29

$ date -d "+1 month " +%Y-%m-%d
2012-05-22

$ date -d "-1 month " +%Y-%m-%d
2012-03-22

$ date -d "-1 year " +%Y-%m-%d
2011-04-22

$ date -d "+1 year " +%Y-%m-%d
2013-04-22

2 日期大小比较方法
转化为时间戳然后比较

$ date -d `date +%Y%m%d` +%s
1335024000

$ date -d "2012-04-21" +%s
1334937600

$ date -d "2012-04-22" +%s
1335024000

Docker实践总结

阅读数 29

没有更多推荐了,返回首页