Linux基本命令篇 —— data命令

        在Linux系统中,date 是一个用于显示或设置系统日期和时间的基本命令。它功能强大且灵活,支持多种格式化和计算操作。通过灵活组合这些选项,date 命令可以满足日志记录、定时任务、备份等场景的需求。以下是 date 命令的详细解析:

目录

一、基本用法

显示当前日期和时间

二、格式化输出

常用格式符

示例

三、基本选项

1、-d, --date=STRING

2、-s, --set=STRING

3、-u, --utc, --universal

4、-r, --reference=FILE

四、设置系统时间

五、时间计算

相对时间加减

示例

六、显示其他时区时间

七、时间戳转换

1、将日期转为时间戳(秒)

2、将时间戳转为日期

3、Unix时间戳(英文为Unix epoch,Unix time,POSIX time或Unix timestamp)是从1970年1月1 日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒 。

八、实用技巧

1、生成文件名带日期

2、计算命令执行时间

九、常见问题


一、基本用法

显示当前日期和时间

date

输出示例:(格式为:星期 月 日 时:分:秒 时区 年


二、格式化输出

通过 + 指定格式字符串,自定义输出格式(重点)

常用格式符

符号说明示例(输出)
%Y4位年份2023
%m月份(01-12)06
%d日(01-31)28
%H24小时制小时15
%M分钟(00-59)30
%S秒(00-59)45
%A完整星期名Monday
%B完整月份名June
%F日期(等价于 %Y-%m-%d2023-06-28
%T时间(等价于 %H:%M:%S15:30:45
示例
date "+%Y-%m-%d %H:%M:%S"

输出:

date "+Today is %A, %B %d"

输出:


三、基本选项

1、-d, --date=STRING

解释解析指定的时间字符串(而不是当前时间),并按照给定格式输出。
示例

date -d "2024-01-01"           # 显示指定日期的默认格式
date -d "next Friday"          # 显示下周五的日期
date -d "2 days ago" "+%F"     # 显示两天前的日期(YYYY-MM-DD)

2、-s, --set=STRING

解释设置系统时间(需 root 权限)。
示例

sudo date -s "2025-06-28 12:13:00"  # 设置日期和时间
sudo date -s "18:14:00"             # 仅设置时间(日期不变)

3、-u, --utc, --universal

解释显示或设置 UTC(协调世界时)时间,而非本地时间。(中国时间:UTC+8小时)
示例

date -u                            # 显示当前 UTC 时间
date -u "+%Y-%m-%d %H:%M:%S"       # 格式化 UTC 时间

4、-r, --reference=FILE

解释显示指定文件的最后修改时间。
示例

date -r filename.txt                # 显示 /etc/passwd 的最后修改时间
date -r filename.txt "+%F %T"   # 格式化输出


四、设置系统时间

sudo date -s "2023-06-28 15:30:00"

或(由于上面输入过密码了,所以这次不用输入密码)

sudo date 062815302023.00  # 格式:MMDDhhmmYYYY.ss

1)date -s 设置当前时间,只有root用户才能设置,普通用户只能查看。
2)date -s 20250628 将时间设置为20250628,这样会将具体时间设置为空(00:00:00)。
3)date -s 01:01:01 设置具体时间,不会对日期做更改。
4)date -s “01:01:01 2025-06-28” 同时设置日期和具体时间。
5)date -s “01:01:01 20250628” 同时设置日期和具体时间。
6)date -s “2025-06-28 01:01:01” 同时设置日期和具体时间。
7)date -s “2025062801:01:01” 同时设置日期和具体时间。


五、时间计算

相对时间加减

date -d "now + 1 day"     # 明天此时
date -d "next Monday"     # 下周一
date -d "2 hours ago"     # 2小时前
date -d "30 seconds"      # 30秒后的时间

示例
date -d "yesterday" "+%F"

输出:


六、显示其他时区时间

TZ='America/New_York' date

或使用UTC时间:

date -u


七、时间戳转换

1、将日期转为时间戳(秒)

date -d "2023-06-28 15:30:00" +%s

输出:

2、将时间戳转为日期

date -d @1687937400 "+%F %T"

输出:

3、Unix时间戳(英文为Unix epoch,Unix time,POSIX time或Unix timestamp)是从1970年1月1 日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒 。


八、实用技巧

1、生成文件名带日期

tar -czf backup_$(date +%Y%m%d_%H%M).tar.gz /data

结果:将/data目录压缩打包成一个名为backup_年月日_时分.tar.gz的文件。

2、计算命令执行时间

start=$(date +%s)
# 执行某些命令...
end=$(date +%s)
echo "耗时:$((end - start))秒"


九、常见问题

  1. 权限不足修改时间需使用 sudo

  2. 时区问题:若时间不对,检查时区设置(timedatectl 或 tzselect)。

  3. 格式无效:确保格式符大小写正确(如 %M 分钟,%m 月份)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值