数码常识网
霓虹主题四 · 更硬核的阅读氛围

Shell命令中日期时间的操作技巧

发布时间:2025-12-11 09:41:47 阅读:287 次

查看当前系统时间

在日常使用Linux或macOS时,打开终端输入date命令就能看到当前的日期和时间。这个命令默认输出类似这样:

Wed Apr  5 14:23:10 CST 2025

这比看屏幕右上角还快,特别适合远程连接服务器时快速确认时间。

格式化输出日期

如果只想显示年月日,或者需要特定格式,可以用+%来定义输出样式。比如:

date +"%Y-%m-%d"

会输出:

2025-04-05

常见的格式符号有:
%Y 表示四位年份,%m 是两位月份,%d 是两位日期,%H 小时(24小时制),%M 分钟,%S 秒。

想生成日志文件名时可以直接用:

filename=access_$(date +%Y%m%d).log

这样每次运行脚本都会自动带上当天日期。

获取时间戳

有时候需要把时间转成自1970年以来的秒数,也就是时间戳。用下面这条命令就行:

date +%s

输出像这样:

1743834190

这在写自动化脚本判断文件过期、计算耗时很实用。比如记录脚本开始时间:

start_time=$(date +%s)
# 执行一些操作
sleep 3
end_time=$(date +%s)
echo "耗时 $((end_time - start_time)) 秒"

将时间戳转回可读时间

有了时间戳,也可以反过来变成人类看得懂的时间。比如:

date -d @1743834190

就会显示对应的具体日期和时间。在分析日志里的时间字段时特别有用。

设置系统时间(需权限)

普通用户一般不建议修改系统时间,但如果你有root权限,并且确实需要校准时间,可以这样设:

sudo date -s "2025-04-05 15:30:00"

不过更推荐用timedatectl配合NTP自动同步,避免手动调整出错。

常用场景举例

备份数据库时加上时间标签:

mysqldump mydb > backup_$(date +%F_%H%M).sql

清理7天前的日志文件:

find /var/log -name "*.log" -mtime +7 -delete

这里-mtime +7表示修改时间超过7天的文件,结合date能精准控制清理范围。

小技巧:时区处理

如果服务器在国外,但你想看东八区时间,可以临时切换:

TZ='Asia/Shanghai' date

这样不用改全局设置也能看到北京时间。

这些关于shell中日期时间的操作,看似简单,但在写脚本、排查问题、管理服务器时天天都能用上。熟练掌握后,效率提升很明显。