date命令解析_学习笔记

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:

时间:2017.11.14

作者:李强

参考:man,info,magedu讲义

声明:以下英文纯属个人翻译,英文B级,欢迎纠正,盗版不纠,才能有限,希望不误人子弟为好。

1、使用目的与场景

  打印或者修改系统日期时间system time。

2、官方说明

  Display or manipulate the history list.

3、写在前面

  首先这里有两个概念System time 和 Hardware Clock。date最重要的就是对时间格式的理解,毕竟这里不是在shell不是在X windows下,不能点点鼠标就行。时间管理以后就使用ntp统一管理。等我学习后我会来这里再补充。

4、修改文件及涉及的环境变量

       /etc/localtime

      /usr/share/zoneinfo/*

      TZ

5、用法

Usage:

date [OPTION]... [+FORMAT]

date [-u|--utc|--universal] [ MMDDhhmm[[CC]YY][.ss] ]

直接执行显示当前system time

默认显示格式是 '+%a %b %e %H:%M:%S %Z %Y' 就是'Mon Nov 13 17:59:49 CST 2017'这样子的格式。

 -d, --date=STRING 显示时间描述的字符串,但不是now这种。有具体格式下面会说     

 -f, --file=DATEFILE 从datefile文件中的每一行去显示date,像--date 每次从文件取一行

 -r, --reference=FILE 显示文件最后一次的修改时间

 -R, --rfc-2822 输出时间以RFC 2822格式.  Example: Mon, 07 Aug 2006 12:34:56 -0600

 --rfc-3339=TIMESPEC 输出时间以RFC 3339格式.时间和日期之间用空格隔开,

  TIMESPEC=‘date’, ‘seconds’, or ‘ns’ : 2006-08-07 12:34:56-06:00           

 -s, --set=STRING  用字符串单词的方式来设置时间和-d的格式一样

 -u, --utc, --universal 打印和设置UTC时间

  我们来说下-d 和-s中的STRING的格式,因为太多,自己可以参考下info信息:

* General date syntax::             Common rules.

* Calendar date items::             19 Dec 1994.

* Time of day items::               9:20pm.

* Time zone items::                EST, PDT, GMT.

* Day of week items::               Monday and others.

* Relative items in date strings::     next tuesday, 2 years ago.

* Pure numbers in date strings::       19931219, 1440.

* Seconds since the Epoch::          @1078100502.

* Specifying time zone rules::        TZ="America/New_York", TZ="UTC0".

* Authors of get_date::             Bellovin, Eggert, Salz, Berets, et al.

ps .因为second代表的是s的单位,因此最好用数字表示表较好,+-表示往前往后,

比如:+2day -1day 这里的day可以替换为year month day  hour minute second  am pm 

 数字前不加+,-  对于monday-sunday January-December 大小写,简写都可以。

this 表示0 last表示-1,first,next表示1,因为second是单位因此就是2表示2,数字可以往后排,last和next还是挺直观,其他我觉得阿拉伯数字还是挺直观的。this 和first在当天时间都是saturday和sunday的时候使用都有问题。都是和next一个意思。这里有待进一步考证。


date -d '+2day +1month' +%F/%T 时间往后,一个月2天后的时间。

date -d '+2hour +1minute +5second' 时间往后,设置为当前时间加上2小时1分钟5秒。

date -d 'TZ="CET|Europe/Paris"'时区还是挺复杂的,还是用tzselect来查看和设置,

这里有一点要注意的是,比如今天是星期天sunday,那么我想看下这个星期一的时间

因为我们一直在用date操作,因此我们可以用clock -s 来帮助我们快速回复我们修改的时间和硬件时间对齐。

关于时间同步的问题我们后面会学习ntp。

centos7中用timedatectl ,个人感觉7上的ctl功能还是不错的,各个都是模块化设置。集成一点比单一各有千秋吧。

   控制输出的格式如下,常用就2个,其他就是查帮助吧:

       %%     a literal %

       %a     locale’s abbreviated weekday name (e.g., Sun)

       %A     locale’s full weekday name (e.g., Sunday)

       %b     locale’s abbreviated month name (e.g., Jan)

       %B     locale’s full month name (e.g., January)

       %c     locale’s date and time (e.g., Thu Mar  3 23:05:25 2005)

       %C     century; like %Y, except omit last two digits (e.g., 20)

       %d     day of month (e.g, 01)

       %D     date; same as %m/%d/%y

       %e     day of month, space padded; same as %_d

       %F     full date; same as %Y-%m-%d

       %g     last two digits of year of ISO week number (see %G)

       %G     year of ISO week number (see %V); normally useful only with %V

       %h     same as %b

       %H     hour (00..23)

      %I     hour (01..12)

       %j     day of year (001..366)

       %k     hour ( 0..23)

       %l     hour ( 1..12)

       %m     month (01..12)

       %M     minute (00..59)

       %n     a newline

       %N     nanoseconds (000000000..999999999)

       %p     locale’s equivalent of either AM or PM; blank if not known

       %P     like %p, but lower case

       %r     locale’s 12-hour clock time (e.g., 11:11:04 PM)

       %R     24-hour hour and minute; same as %H:%M

       %s     seconds since 1970-01-01 00:00:00 UTC

       %S     second (00..60)

      %t     a tab

       %T     time; same as %H:%M:%S

       %u     day of week (1..7); 1 is Monday

       %U     week number of year, with Sunday as first day of week (00..53)

       %V     ISO week number, with Monday as first day of week (01..53)

       %w     day of week (0..6); 0 is Sunday

       %W     week number of year, with Monday as first day of week (00..53)

       %x     locale’s date representation (e.g., 12/31/99)

       %X     locale’s time representation (e.g., 23:13:48)

       %y     last two digits of year (00..99)

       %Y     year

       %z     +hhmm numeric timezone (e.g., -0400)

       %:z    +hh:mm numeric timezone (e.g., -04:00)

       %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)


      %:z    +hh:mm numeric timezone (e.g., -04:00)

       %::z   +hh:mm:ss numeric time zone (e.g., -04:00:00)

       %:::z  numeric time zone with : to necessary precision (e.g., -04, +05:30)

       %Z     alphabetic time zone abbreviation (e.g., EDT)


       默认情况下,日期用0填充数字字段,下面的可以跟在‘%’后面:


       -      (hyphen)连字符,跟在%号后,就不会去填充0了

       _      (underscore)下划线,跟在%号后加了个空格

       0      (zero) 0

       ^      upper 大写字母,跟在%号后,变成大写的格式显示了

       #      opposite相反的格式,变成相反的格式显示了




             本文转自 lajifeiwomoshu 51CTO博客,原文链接:http://blog.51cto.com/lajifeiwomoshu/1981829


相关文章
|
2月前
|
网络协议 开发工具 C语言
Jetson错误(二):wget命令提示无法解析主机地址的问题解决
对于解决在NVIDIA Jetson平台上使用wget命令时出现的无法解析主机地址的问题,提供了两种解决方法:一种是临时修改DNS服务器为Google的公共DNS,另一种是永久修改DNS设置。
137 5
|
3月前
|
存储 缓存 NoSQL
Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
Redis 过期删除策略与内存淘汰策略的区别及常用命令解析
82 0
|
4月前
|
图形学 开发者 存储
超越基础教程:深度拆解Unity地形编辑器的每一个隐藏角落,让你的游戏世界既浩瀚无垠又细节满满——从新手到高手的全面技巧升级秘籍
【8月更文挑战第31天】Unity地形编辑器是游戏开发中的重要工具,可快速创建复杂多变的游戏环境。本文通过比较不同地形编辑技术,详细介绍如何利用其功能构建广阔且精细的游戏世界,并提供具体示例代码,展示从基础地形绘制到植被与纹理添加的全过程。通过学习这些技巧,开发者能显著提升游戏画面质量和玩家体验。
185 3
|
4月前
|
数据采集 运维 监控
运维笔记:流编辑器sed命令用法解析
运维笔记:流编辑器sed命令用法解析
67 5
|
4月前
|
Linux 数据安全/隐私保护 Perl
解锁Linux高手秘籍:文件操作+命令解析大揭秘,面试场上让你光芒万丈,技术实力惊艳四座!
【8月更文挑战第5天】Linux作为服务器与嵌入式系统的基石,其文件管理和命令行操作是技术人员必备技能。本文从文件操作和基础命令两大方面,深入浅出地解析Linux核心要义,助你在面试中脱颖而出。首先探索文件系统的树状结构及操作,包括使用`ls -la`浏览文件详情、`touch`创建文件、`rm -r`慎删目录、`cp`与`mv`复制移动文件、以及利用`find`搜索文件。接着掌握命令行技巧,如用`cat`、`more`和`less`查看文件内容;借助`grep`、`sed`与`awk`处理文本;运用`ps`、`top`和`kill`管理进程;并通过`chmod`和`chown`管理文件权限。
84 8
|
4月前
|
运维 Ubuntu Shell
Docker命令宝典:解锁容器化技术的无限可能,从镜像管理到容器操作,全面解析与实战指南!
【8月更文挑战第3天】Docker简化了应用的部署与运行,掌握其基本命令对开发者和运维人员至关重要。通过`docker images`可查看本地镜像;使用`docker pull`拉取如最新版Ubuntu镜像;`docker rmi`用于删除不再需要的镜像。运行容器可通过`docker run`命令,结合`-it`等选项提供交互式环境。`docker ps`显示运行中的容器,加上`-a`则列出所有容器。`docker stop`和`docker start`分别用于停止和重启容器,而`docker rm`则删除容器。
95 5
|
5月前
|
Linux Docker 容器
ip addr命令解析
ip addr命令解析
658 1
|
4月前
|
运维 Rust 监控
Linux高效运维必备:fd命令深度解析,文件描述符管理从此得心应手!
【8月更文挑战第23天】本文介绍了一款名为fd的命令行工具,该工具基于Rust语言开发,旨在以更直观的语法和更快的速度替代传统的`find`命令。通过本文,您可以了解到如何安装fd以及一些基本用法示例,比如使用正则表达式匹配文件名、排除特定目录等。此外,文章还展示了如何结合`ps`和`lsof`命令来查找特定文件并显示其文件描述符,从而帮助您更好地管理和监控Linux系统中的文件与进程。
155 0
|
5月前
|
Linux
《解析 Linux 命令:systemd-delta》
`systemd-delta`: 解析Linux服务配置差异。概览: 显示服务单元文件与默认配置的对比,助于配置问题排查与系统审计。特点: 清晰展示修改点,涵盖启动选项等。示例: `systemd-delta [--plain] <service>`. 注意: 理解默认配置,谨慎修改,定期检查。掌握此命令,深化系统服务配置洞察,优化Linux管理。#Linux #systemd-delta
|
5月前
|
存储 监控 Linux
stdbuf命令在Linux中的深度解析
`stdbuf`是Linux工具,用于控制命令的stdin、stdout和stderr的缓冲模式。它可以设置为无缓冲、行缓冲或块缓冲,以优化数据处理和实时性。例如,`stdbuf -o0 cmd`禁用cmd的输出缓冲,`-oL`则按行缓冲。在需要实时监控或高效处理大量数据时,选择合适的缓冲模式至关重要。注意,过度使用无缓冲可能影响性能,并非所有系统都支持`stdbuf`。

推荐镜像

更多