用shell将时间字符串与时间戳互转
date +%s 可以得到UNIX的时间戳;
用shell将时间字符串与时间戳互转:
date -d "2010-10-18 00:00:00" +%s 输出形如:1287331200
而时间戳转换为字符串可以这样做:
date -d @1287331200 "+%Y-%m-%d" 输出形如:2010-10-18
如果需要得到指定日期的前后几天,可以:
1、seconds=`date -d "2010-10-18 00:00:00" +%s` #得到时间戳
2、seconds_new=`expr $seconds + 86400` #加上一天的秒数86400
3、date_new=`date -d @$seconds_new "+%Y-%m-%d"` #获得指定日前加上一天的日前
1、date --help
%% 输出%符号 a literal %
%a 当前域的星期缩写 locale’s abbreviated weekday name (Sun..Sat)
%A 当前域的星期全写 locale’s full weekday name, variable length (Sunday..Saturday)
%b 当前域的月份缩写 locale’s abbreviated month name (Jan..Dec)
%B 当前域的月份全称 locale’s full month name, variable length (January..December)
%c 当前域的默认时间格式 locale’s date and time (Sat Nov 04 12:02:33 EST 1989)
%C n百年 century (year divided by 100 and truncated to an integer) [00-99]
%d 两位的天 day of month (01..31)
%D 短时间格式 date (mm/dd/yy)
%e 短格式天 day of month, blank padded ( 1..31)
%F 文件时间格式 same as %Y-%m-%d
%g the 2-digit year corresponding to the %V week number
%G the 4-digit year corresponding to the %V week number
%h same as %b
%H 24小时制的小时 hour (00..23)
%I 12小时制的小时 hour (01..12)
%j 一年中的第几天 day of year (001..366)
%k 短格式24小时制的小时 hour ( 0..23)
%l 短格式12小时制的小时 hour ( 1..12)
%m 双位月份 month (01..12)
%M 双位分钟 minute (00..59)
%n 换行 a newline
%N 十亿分之一秒 nanoseconds (000000000..999999999)
%p 大写的当前域的上下午指示 locale’s upper case AM or PM indicator (blank in many locales)
%P 小写的当前域的上下午指示 locale’s lower case am or pm indicator (blank in many locales)
%r 12小时制的时间表示(时:分:秒,双位) time, 12-hour (hh:mm:ss [AP]M)
%R 24小时制的时间表示 (时:分,双位)time, 24-hour (hh:mm)
%s 自基础时间 1970-01-01 00:00:00 到当前时刻的秒数 seconds since `00:00:00 1970-01-01 UTC’ (a GNU extension)
%S 双位秒 second (00..60); the 60 is necessary to accommodate a leap second
%t 横向制表位(tab) a horizontal tab
%T 24小时制时间表示 time, 24-hour (hh:mm:ss)
%u 数字表示的星期(从星期一开始 1-7)day of week (1..7); 1 represents Monday
%U 一年中的第几周星期天为开始 week number of year with Sunday as first day of week (00..53)
%V 一年中的第几周星期一为开始 week number of year with Monday as first day of week (01..53)
%w 一周中的第几天 星期天为开始 0-6 day of week (0..6); 0 represents Sunday
%W 一年中的第几周星期一为开始 week number of year with Monday as first day of week (00..53)
%x 本地日期格式 locale’s date representation (mm/dd/yy)
%X 本地时间格式 locale’s time representation (%H:%M:%S)
%y 两位的年 last two digits of year (00..99)
%Y 年 year (1970…)
%z RFC-2822 标准时间格式表示的域 RFC-2822 style numeric timezone (-0500) (a nonstandard extension)
%Z 时间域 time zone (e.g., EDT), or nothing if no time zone is determinable
By default, date pads numeric fields with zeroes. GNU date recognizes
the following modifiers between `%’ and a numeric directive.
`-’ (hyphen) do not pad the field
`_’ (underscore) pad the field with spaces
--------------------------------------------------------------------------------
2、一些用法
1)#以yymmdd的格式输出43天前的当前时刻
date +%Y%m%d --date='43 days ago'
2)# 测试十亿分之一秒
date +’%Y%m%d %H:%M:%S.%N’;date +’%Y%m%d %H:%M:%S.%N’;date +’%Y%m%d %H:%M:%S.%N’;date +’%Y%m%d %H:%M:%S.%N’
3)#创建以当前时间为文件名的目录
mkdir `date +%Y%m%d`
4)#备份以时间做为文件名的
tar -cvf ./htdocs`date +%Y%m%d`.tar ./*
5)#显示时间后跳行,再显示目前日期
date +%T%n%Y%m%d
6)#只显示月份与日数
date +%B%d
7)#获取上周日期(day,month,year,hour)
date -d "-1 week" +%Y%m%d
8)#获取24小时前日期
date --date="-24 hour" +%Y%m%d
9)#shell脚本里面赋给变量值
date_now=`date +%s`
10)#计算执行一段sql脚本的运行时间
TIME_BEGIN=$(date '+%s.%N')
$sqlcli < queries/q1.3.sql 1>> $FILE_RESULT 2>> $FILE_ERROR
TIME_END=$(date '+%s.%N')
TIME_RUN=$(awk 'BEGIN{print '$TIME_END' - '$TIME_BEGIN'}')
11)#编写shell脚本计算离自己生日还有多少天?
read -p "Input your birthday(YYYYmmdd):" date1
m=`date --date="$date1" +%m` #得到生日的月
d=`date --date="$date1" +%d` #得到生日的日
date_now=`date +%s` #得到当前时间的秒值
y=`date +%Y` #得到当前时间的年
birth=`date --date="$y$m$d" +%s` #得到今年的生日日期的秒值
internal=$(($birth-$date_now)) #计算今日到生日日期的间隔时间
if [ "$internal" -lt "0" ]; then #判断今天的生日是否已过
birth=`date --date="$(($y+1))$m$d" +%s` #得到明天的生日日期秒值
internal=$(($birth-$date_now)) #计算今天到下一个生日的间隔时间
fi
echo "There is :$((einternal/60/60/24)) days." #输出结果,秒换算为天
12)#若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],
其中 MM 为月份,
DD 为日,
hh 为小时,
mm 为分钟,
CC 为年份前两位数字,
YY 为年份后两位数字,
ss 为秒数
13)
#显示目前的格林威治时间,也叫“世界时”。是英国的标准时间,也是世界各地时间的参考标准。中英两国的标准时差为8个小时,即英国的当地时间比中国的北京时间晚8小时。
date -u
Thu Sep 28 09:32:04 UTC 2006
14)#修改时间
date -s
按字符串方式修改时间
可以只修改日期,不修改时间,输入: date -s 2007-08-03
只修改时间,输入:date -s 14:15:00
同时修改日期时间,注意要加双引号,日期与时间之间有一空格,输入:date -s "2007-08-03 14:15:00"
修改完后,记得输入:clock -w
把系统时间写入CMOS
相关推荐
第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...
#### 一、Shell编程高级用法概览 **Shell编程**是一种在Linux和Unix系统中非常重要的技能,它能够帮助用户通过编写脚本来自动化执行一系列任务。Shell编程的基础知识包括命令行操作、变量管理、流程控制等。而进阶...
第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...
本次实验旨在帮助学生掌握基本的Shell编程技巧,包括但不限于创建并使用脚本的基本步骤、熟悉Bash的控制结构以及简单的Shell编程方法。通过实践,加深对Linux操作系统下脚本语言的理解和应用能力。 #### 实验内容...
1. **熟练掌握 Shell 程序的编辑、运行与调试方法**:这包括如何使用文本编辑器(如 Vim 或 Emacs)来创建脚本文件,如何使用命令行来执行脚本,以及如何使用调试工具来定位和解决问题。 2. **实现所有必需的功能**...
#### 七、Shell编程调试方法 在开发Shell脚本的过程中,可能会遇到各种错误。以下是一些常用的调试技巧: - **使用`set -x`**: - 在脚本开始处添加`set -x`可以开启调试模式,显示每条执行的命令。 - 示例代码: ...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...
书中详细讲解了SHELL编程的基础概念、命令语法以及高级特性,为读者提供了一个全面的学习路径。以下是基于这个主题的详细知识点: 一、SHELL编程基础 SHELL作为UNIX和LINUX系统中的用户界面,是用户与操作系统之间...
3. 执行 Shell 程序:可以使用三种方法执行 Shell 程序:直接执行、作为参数传递给 Shell 命令、添加到环境变量中。 例如: ``` [root@localhost bin]#vi date #!/bin/sh echo “ Mr.$USER,Today is:” echo &date ...
本文旨在深入探讨Shell编程中的关键控制结构,包括条件语句`if`、循环结构`for`和`while`以及选择语句`case`的高级应用。通过具体实例和实验任务,帮助读者更好地理解和掌握这些基本语法在实际开发中的运用。 ### 1...
在Linux和Unix系统中,Shell编程是系统管理与自动化任务的核心技能之一。本章专注于讲解如何有效地使用引号来避免解释器错误,确保脚本的正确执行。引号的使用对于保护变量、字符串和命令的完整性至关重要。 首先,...
### Linux Shell编程验证身份证号码 #### 核心功能: 此脚本主要实现了身份证号码的有效性检查和信息提取,支持15位和18位两种身份证号码格式。通过一系列逻辑判断和数学运算,确保了身份证号码的真实性,并能够...
linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...
- **pingall、backup_gen、del.lines等**: 实际脚本例子,展示了脚本的编写和使用方法。 ### 运行级别脚本 - **了解系统中的运行级别目录**: 用于管理系统的运行级别。 - **inittab**: 系统启动时读取的配置文件。 ...
10. **Readme文档**:通常包含项目的介绍、使用方法和可能的注意事项,是理解和使用项目的关键。 通过这个项目,我们可以学习到如何使用shell脚本来实现一个简单的数据库管理系统,这对于理解shell脚本的语法和功能...
11.1.12 使用k的其他sort方法 108 11.1.13 使用k做分类键排序 108 11.1.14 指定sort序列 108 11.1.15 pos用法 108 11.1.16 使用head和tail将输出分类 109 11.1.17 awk使用sort输出结果 109 11.1.18 将两个分类文件...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...