`
chembo
  • 浏览: 942674 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

linux中用shell获取时间(资料)

阅读更多
linux中用shell获取昨天、明天或多天前的日期:
在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明:
# -d, --date=STRING display time described by STRING, not `now’
[root@Gman root]# date -d next-day +%Y%m%d #明天日期
20091024
[root@Gman root]# date -d last-day +%Y%m%d #昨天日期
20091022
[root@Gman root]# date -d yesterday +%Y%m%d #昨天日期
20091022
[root@Gman root]# date -d tomorrow +%Y%m%d # 明天日期
20091024
[root@Gman root]# date -d last-month +%Y%m #上个月日期
200909
[root@Gman root]# date -d next-month +%Y%m #下个月日期
200911
[root@Gman root]# date -d next-year +%Y #明年日期
2010
DATE=$(date +%Y%m%d --date ’2 days ago’) #获取昨天或多天前的日期
名称 : date
使用权限 : 所有使用者
使用方式 : date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
说明 : date 能用来显示或设定系统的日期和时间,在显示方面,使用者能设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下 :
时间方面 :
% : 印出
% %n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数 %S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
日期方面 :
%a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期和时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],
其中 MM 为月份,
DD 为日,
hh 为小时,
mm 为分钟,
CC 为年份前两位数字,
YY 为年份后两位数字,
ss 为秒数
把计 :
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
--help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
--version : 显示版本编号
例子 :
显示时间后跳行,再显示目前日期 : date +%T%n%D
显示月份和日数 : date +%B %d
显示日期和设定时间(12:34:56) : date --date 12:34:56
设置系统当前时间(12:34:56):date --s 12:34:56
注意 : 当你不希望出现无意义的 0 时(比如说 1999/03/07),则能在标记中插入 - 符号,比如说 date +%-H:%-M:%-S 会把时分秒中无意义的 0 给去掉,像是原本的 08:09:04 会变为 8:9:4。另外,只有取得权限者(比如说 root)才能设定系统时间。 当你以 root 身分更改了系统时间之后,请记得以 clock -w 来将系统时间写入 CMOS 中,这样下次重新开机时系统时间才会持续抱持最新的正确值。
ntp时间同步
linux系统下默认安装了ntp服务,手动进行ntp同步如下
ntpdate ntp1.nl.net
当然,也能指定其他的ntp服务器
-------------------------------------------------------------------
扩展功能
date 工具可以完成更多的工作,不仅仅只是打印出当前的系统日期。您可以使用它来得到给定的日期究竟是星期几,并得到相对于当前日期的相对日期。了解某一天是星期几
GNU 对 date 命令的另一个扩展是 -d 选项,当您的桌上没有日历表时(UNIX 用户不需要日历表),该选项非常有用。使用这个功能强大的选项,通过将日期作为引号括起来的参数提供,您可以快速地查明一个特定的日期究竟是星期几:
$ date -d "nov 22"
Wed Nov 22 00:00:00 EST 2006
$
在本示例中,您可以看到今年的 11 月 22 日是星期三。
所以,假设在 11 月 22 日召开一个重大的会议,您可以立即了解到这一天是星期三,而这一天您将赶到驻地办公室。
获得相对日期
d 选项还可以告诉您,相对于 当前日期若干天的究竟是哪一天,从现在开始的若干天或若干星期以后,或者以前(过去)。通过将这个相对偏移使用引号括起来,作为 -d 选项的参数,就可以完成这项任务。
例如,您需要了解两星期以后的日期。如果您处于 Shell 提示符处,那么可以迅速地得到答案:
$ date -d ’2 weeks’
关于使用该命令,还有其他一些重要的方法。使用 next/last指令,您可以得到以后的星期几是哪一天:
$ date -d ’next monday’ (下周一的日期)
$ date -d next-day +%Y%m%d(明天的日期)或者:date -d tomorrow +%Y%m%d
$ date -d last-day +%Y%m%d(昨天的日期) 或者:date -d yesterday +%Y%m%d
$ date -d last-month +%Y%m(上个月是几月)
$ date -d next-month +%Y%m(下个月是几月)
使用 ago 指令,您可以得到过去的日期:
$ date -d ’30 days ago’ (30天前的日期)
您可以使用负数以得到相反的日期:
$ date -d ’dec 14 -2 weeks’ (相对:dec 14这个日期的两周前的日期)
$ date -d ’-100 days’ (100天以前的日期)
$ date -d ’50 days’(50天后的日期)
这个技巧非常有用,它可以根据将来的日期为自己设置提醒,可能是在脚本或 Shell 启动文件中,如下所示:
DAY=`date -d ’2 weeks’ +"%b %d"`
if test "`echo $DAY`" = "Aug 16"; then echo ’Product launch is now two weeks away!’; fi

##############################

unix shell中的日期格式转换
$ t_t="Jul  1 21:29"
$ date "+%G-%m-%d %H:%M:%S" -d "$t_t" # $t_t的格式是比较随意的
2008-07-01 21:29:00
$ date +%b/%d/%G -d "2008-07-01"
Jul/01/2008

unix shell中的日期之间间隔的天数
$ expr '(' $(date +%s -d "2008-07-02") - $(date +%s -d "2008-05-30") ')' / 86400
33
##存在bcdate的话,可以直接使用。

shell中日期加减指定间隔单位
增加36小时:
$ a=`date +%Y-%m-%d`
$ b=`date +%Y-%m-%d -d "$a +36 hours"`
10天前:
$ date -d "$a -10 days"
Sun Jun 22 00:00:00 CST 2008

以指定格式显示文件更改后最后日期,如yyyy-mm-dd hh24:mi:ss
$ date "+%Y-%m-%d %H:%M:%S" -r test.bak
2008-07-01 21:28:55
分享到:
评论

相关推荐

    Linux-shell获取天气

    用Linux中的shell获取天气,本来觉的比较难,原来,真简单,个位数的代码搞定。  1获取对应城市天气  所有天气信息都从中国天气网获取。每一个城市多会对应一个id(比如,北京为101010100,因为本人在银川,所以...

    Linux shell

    Linux Shell是操作系统与用户交互的重要接口,它是一个命令行解释器,允许用户通过文本命令来控制计算机。在本文中,我们将深入探讨如何基于C语言构建一个支持多重管道(multiple pipes)和重定向(redirection)功能的...

    在linux 系统shell 批量添加用户和密码

    在本例中,我们使用的是Bash shell,它是Linux中最常用的shell类型之一。 #### 2. **随机密码生成函数** 脚本中包含一个`getPassword`函数,用于生成随机密码。该函数首先定义了一个包含数字和字母的数组`myArray`...

    linux中用shell快速安装配置Go语言的开发环境

    1. **下载安装包**:获取Go语言最新稳定版或所需版本的安装包,例如`go1.7.linux-amd64.tar.gz`。 - **命令示例**: ```bash wget https://storage.googleapis.com/golang/go1.7.linux-amd64.tar.gz ``` 2. *...

    linuxshell脚本学习笔记.pdf

    变量是 Shell 中用于存储值的容器。变量名相当于指针,使用 `$` 符号来获取变量的值。例如,`echo $variable` 可以输出变量的值。 重定向 重定向是将命令的输出结果重定向到文件中或从文件中输入。使用 `>` 符号...

    LINUX and UNIX Shell(1)

    Linux和Unix Shell是两种强大的命令行界面,它们提供了一种与操作系统交互的方式,特别是对于系统管理、脚本编写和自动化任务。Shell不仅是命令解释器,还是一个编程环境,允许用户通过编写脚本来执行一系列复杂的...

    linux date命令使用文档

    linux date shell中用 date命令对日期进行处理,但怎么获取10分钟之前的时间呢,仔细看了一下help,没有看出对时间的“运算”,有的也就是一些输出格式的描述。但有一 个参数 -d or --date=STRING 其描述...

    在shell脚本中获取上个月最后一天的日期方法

    linux中用date命令来获取上个月最后一天的日期: $ date -d`date +%Y%m01` last day +%Y%m%d 20161231 编写脚本getdate.sh: #! /bin/sh nowdate=`date +%Y%m01` #本月第一天 startdate=`date -d$nowdate last ...

    linux shell在while中用read从键盘输入的实现

    在Linux Shell脚本编程中,`while`循环与`read`命令结合使用是一种常见的方法,用于从标准输入或文件中逐行读取数据。在这个场景中,我们的目标是从用户键盘输入来实现这一功能。以下是对这个话题的详细解释: 首先...

    Python下调用Linux的Shell命令的方法

    在Python中,调用Linux Shell命令是通过内置的模块实现的,主要涉及到`os`模块和`subprocess`模块。本文将详细介绍这两种方法以及`commands`模块(在Python 3中已被弃用,但在这里仍然提及,以供了解)。 1. `os`...

    Linux入门教程(精华基础版)

    Linux入门教程(精华基础版)是一份专为初学者设计的指南,旨在帮助你快速掌握Linux操作系统的基础知识和技能。Linux是一种开源、免费的操作系统,它以其强大的稳定性和灵活性在全球范围内广泛应用于服务器、桌面...

    Linux中用PHP判断程序运行状态的2个方法

    这种方法的核心思想是通过`ps`命令获取系统当前的所有进程信息,然后使用正则表达式筛选出包含特定程序名称的进程。具体步骤如下: 1. 使用`shell_exec()`函数执行`/bin/ps ax`命令,这会列出所有进程的信息,并将...

    Linux的基础知识二

    本节主要介绍Linux的基础知识,包括控制命令的执行方式、命令分类、查看命令路径的方法以及如何获取命令帮助。 **1、控制命令的执行方式** 在Linux中,你可以使用`Ctrl+C`来取消正在执行的命令。同时,通过在一行...

    我从老师那考的linux课件

    9. **shell脚本编程**:Bash是常用的Linux shell,通过编写shell脚本可以自动化执行一系列任务。基础语法包括变量、条件语句、循环结构和函数定义。 10. **系统管理**:`systemctl`用于管理Systemd服务,`crontab`...

    Linux与dos命令对比[借鉴].pdf

    在DOS中,输入`exit`关闭命令提示符窗口,Linux中同样使用`exit`退出当前Shell会话。 6. 显示或设置日期 DOS的`date`命令显示或设置日期,Linux也有同名命令`date`,执行`date`即可查看当前日期,如需设置日期,...

    LINUX下C语言编程

    在“Linux操作系统下C语言编程入门.pdf”这本书中,读者可以期待找到关于这些话题的详细解释和实例,帮助初学者逐步掌握在Linux环境中用C语言进行程序设计的技术。通过深入学习和实践,不仅可以提升C语言编程技巧,...

    linux命令学习-新手入门

    Linux命令是Linux操作系统中进行系统管理、文件操作和任务执行的主要工具。对于新手而言,掌握基本的Linux命令是进入这个领域的第一步。以下是一些关键的Linux命令和概念的详细解释: 1. **more 和 less 命令**: ...

    一个强大的网络分析shell脚本分享(实时流量、连接统计)

    - **/proc/net/dev**:Linux内核提供的接口,用于获取网络接口的输入/输出流量。 为了使用这个脚本,你需要下载并赋予执行权限。在运行过程中,它会显示一个菜单,让你选择不同的监控选项。此外,脚本还包含了将...

    liux与shell编程

    ### liux与Shell编程——AWK操作符及应用详解 #### 一、AWK操作符概述 在Linux环境下,AWK是一种强大的文本处理工具,它不仅支持基础的文本处理功能,还能实现复杂的文本分析和数据处理任务。AWK语言包含了多种...

    《安天365安全研究》第二期.pdf

    目录 第 1 部分拟研究技术专题 1.1《黑客攻防实战——web 漏洞挖掘...2.14Linux(CentOS)安全加固之非业务端口服务关闭 2.14.1 查找端口对应的服务进程 2.14.2 查找进程对应的服务 2.14.3 停用进程服务 2.14.4 学习小结

Global site tag (gtag.js) - Google Analytics