Linux基础命令- date

Linux基础命令- date

1.date 显示或设置系统日期与时间

  • 格式:date 参数 +日期格式,

  • 作用:用于显示或设置系统的时间或日期

  • -s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
    -d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
    date “+%F” 完整日期格式。字符串前后必须加上双引号;

1.常用参数和格式

1.常用参数

  1. -d datestr 显示datestr中所设定的时间(非系统时间)
  2. -s datestr 将系统时间设为datestr中所设定的时间
  3. -u 显示目前的格林威治时间
  4. –help 显示帮助信息
  5. –version 显示版本编号

2.常用格式

  1. %y 年份最后两位数字(00…99)
  2. %Y 年份
  3. %m 月份范围(01…12)
  4. %d 一月中的一天(01…31)
  5. %M 分钟
  6. %H 小时
  7. %S 秒
  8. %t 水平制表符
  9. %F 完整的日期;等价于%+4Y-%m-%d

2.date应用实例

1.以默认格式输出系统当前的日期和时间信息

[root@localhost ~]# date
2023年 01月 15日 星期日 16:48:27 CST

2.按找年-月-日的指定格式输出日期

[root@localhost ~]# date +%F
2023-01-15
[root@localhost ~]# date +%Y-%m-%d
2023-01-15

3.按格式年-月-日 时:份:秒输出当前日期

[root@localhost ~]# date "+%Y-%m-%d %H:%M:%S"
2023-01-15 16:54:20

4.使用 -d 参数指定时间运算

  • 格式:date -d ‘运算规则’
  • 作用:指定时间运算规则,date会将当前时间做指定的运算,然后输出运算后的时间
[root@localhost ~]# date
2023年 01月 15日 星期日 17:00:21 CST
[root@localhost ~]# date -d '3 minutes'
2023年 01月 15日 星期日 17:03:25 CST
[root@localhost ~]# date -d '3 days'
2023年 01月 18日 星期三 17:00:26 CST

$ date +%Y%m%d 	#显示当前年月日
$ date -d "+1 day" +%Y%m%d"   #显示前一天的日期
$ date -d "-1 day" +%Y%m%d"   #显示后一天的日期
$ date -d "-1 month" +%Y%m%d" #显示上一月的日期

$ date -d "+1 month" +%Y%m%d" #显示下一月的日期
$ date -d "-1 year" +%Y%m%d"  #显示前一年的日期
$ date -d "+1 year" +%Y%m%d"  #显示下一年的日期

5.使用 -f 参数

  • 格式:date -f 文件路径
  • 作用:可将 -d 参数指定的运算规则写入文件中,通过 -f 参数指定文件路径,date命令逐行读取该文件,并按照此文件指定的运算规则输出运算后的时间
[root@localhost ~]# cat >>/root/datefile <<EOF
> date
> 1 years ago
> 3 months
> 2 days
> 1 year
> -3 days
> EOF
[root@localhost ~]# date -f datefile 
date: 无效的日期"date"
2022年 01月 15日 星期六 17:06:01 CST
2023年 04月 15日 星期六 17:06:01 CST
2023年 01月 17日 星期二 17:06:01 CST
2024年 01月 15日 星期一 17:06:01 CST
2023年 01月 12日 星期四 17:06:01 CST

6.-s 参数,修改系统时间

  • 格式:date -s ‘字符串’
  • 作用:根据 -s 指定的内容设定系统时间.执行此命令需要提权
[root@localhost ~]# date -s "20121212 8:30:00"
20121212日 星期三 08:30:00 CST
[root@localhost ~]# date
20121212日 星期三 08:30:01 CST

$ date -s 				#设置当前时间,只有root权限才能设置,其他只能查看
$ date -s 20230110 		#设置成20230110,这样会把具体时间设置成空00:00:00
$ date -s 01:01:01 		#设置具体时间,不会对日期做更改
$ date -s "01:01:01 20230110" 	#这样可以设置全部时间
$ date -s "20230110 01:01:01" 	#这样可以设置全部时间
  • 如果要还原回来需要用到时间同步服务器,ntpdate

    比如要与上海时区时间同步

[root@localhost ~]# ntpdate -u ntp.api.bz
11 Jan 19:39:30 ntpdate[75487]: step time server 114.118.7.161 offset 318164310.373762 sec
[root@localhost ~]# date
2023年 01月 11日 星期三 19:39:32 CST

7. -r 显示文件最后被修改的时间

-r 等于 --reference

使用方法:

格式:date -r 文件路径

作用:显示指定文件最后被修改的时间

[root@localhost ~]# date -r datefile 
2023年 01月 15日 星期日 17:05:36 CST
  • 注意:cat查看文件不影响,vim进入文件即会修改时间

8.%s 计算自UTC时间1970年至今的秒数

date +%s

自UTC 时间 1970-01-01 00:00:00 以来所经过的秒数

[root@localhost ~]# date +%s
1673775079

这个秒数带了时区计算,所以得额外判断时区。

1.检测一组命令花费的时间
[root@localhost ~]# vim date.sh
#!/bin/bash
start=$(date +%s)
ping -c5 -w5 www.baidu.com &>/dev/null
end=$(date +%s)
diff=$((end - start))
echo $diff seconds
[root@localhost ~]# chmod +x date.sh 
[root@localhost ~]# ./date.sh 
1673776340 seconds
[root@localhost ~]# sh -x date.sh 
++ date +%s
+ tart=1673776347
+ ping -c5 www.baidu.com
++ date +%s
+ end=1673776351
+ diff=1673776351
+ echo 1673776351 seconds
1673776351 seconds

2.sh命令

  • sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通
  • 语法:
 bash [options] [file]
  • 选项
-c string:命令从-c后的字符串读取。
-i:实现脚本交互。
-n:进行shell脚本的语法检查。
-x:实现shell脚本逐条语句的跟踪。

12.宝塔清单列表脚本

$ vim 1.sh
$ chmod +x 1.sh
[root@localhost 1]# ll
总用量 0
-rwxr-xr-x 1 root root 0 1211 13:59 1.sh
[root@localhost 1]# vim 1.sh
#!/bin/bash
echo "请从以下选项中,选出你要进行的操纵"
echo "安装apache";echo "安装MySQL";echo "安装PHP";
echo "安装LAMP";
echo "安装wordpress";
[root@localhost 1]# ./1.sh
请从以下选项中,选出你要进行的操纵
安装apache
安装MySQL
安装PHP
安装LAMP
安装wordpress

#使用-x选项跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态
$ sh -x 1.sh
+ echo 请从以下选项中,选出你要进行的操纵
请从以下选项中,选出你要进行的操纵
+ echo 安装apache
安装apache
+ echo 安装MySQL
安装MySQL
+ echo 安装PHP
安装PHP
+ echo '安装LAMP'
安装LAMP

猜你喜欢

转载自blog.csdn.net/m0_67159981/article/details/128699270