Linux 日期/时间显示

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本实验将向你介绍如何使用命令行在 Linux 中管理日期和时间。你将学习如何显示当前日期和时间、为不同的显示目的自定义格式,以及了解如何操作与时间相关的信息。这些命令对于各种系统管理任务、日志分析、脚本调度以及 Linux 环境中的许多其他日常操作至关重要。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/SystemInformationandMonitoringGroup -.-> linux/date("Date/Time Displaying") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/ls -.-> lab-271261{{"Linux 日期/时间显示"}} linux/chmod -.-> lab-271261{{"Linux 日期/时间显示"}} linux/cd -.-> lab-271261{{"Linux 日期/时间显示"}} linux/date -.-> lab-271261{{"Linux 日期/时间显示"}} linux/env -.-> lab-271261{{"Linux 日期/时间显示"}} linux/nano -.-> lab-271261{{"Linux 日期/时间显示"}} end

显示当前日期和时间

在 Linux 中,date 命令用于显示当前日期和时间。这个基础命令常用于脚本、日志和许多系统操作中。

导航到项目目录并运行以下命令:

cd ~/project
date

你应该会看到类似如下的输出:

Wed Mar 31 21:00:00 PDT 2021

输出显示了:

  • 星期几(Wed)
  • 月份(Mar)
  • 日期(31)
  • 24 小时制时间(21:00:00)
  • 时区(PDT)
  • 年份(2021)

这种默认格式便于快速查看,但在后续步骤中,你将学习如何根据特定需求自定义显示格式。

自定义日期格式

默认的日期格式很实用,但在日志记录、文件命名或数据处理任务中,你通常需要以特定格式显示日期和时间。date 命令支持格式说明符,让你可以自定义输出。

运行以下命令,以 YYYY-MM-DD 格式显示日期,以 HH:MM:SS 格式显示时间:

date '+%Y-%m-%d %H:%M:%S'

你应该会看到类似如下的输出:

2021-03-31 21:02:00

下面来了解一下所使用的格式说明符:

  • %Y:四位数的年份(例如 2021)
  • %m:两位数的月份(01 - 12)
  • %d:两位数的日期(01 - 31)
  • %H:24 小时制的小时数(00 - 23)
  • %M:分钟数(00 - 59)
  • %S:秒数(00 - 59)

这种格式(YYYY-MM-DD HH:MM:SS)在计算机领域广泛使用,因为它遵循国际日期标准(ISO 8601),并且用于文件名时能正确排序。

尝试其他一些实用的格式组合:

## 仅显示日期,格式为 YYYY-MM-DD
date '+%Y-%m-%d'
## 仅显示时间,格式为 HH:MM:SS
date '+%H:%M:%S'
## 自定义格式,包含星期几和月份名称
date '+%A, %B %d, %Y'

最后一条命令的输出类似于:"Wednesday, March 31, 2021"

处理日期组件

在这一步,你将学习如何提取日期和时间的特定组件,这在编写脚本和进行条件操作时非常有用。

使用以下命令提取当前年份:

date '+%Y'

这将仅输出当前年份,例如:

2021

你可以在 shell 脚本中使用这些单独的组件,为文件添加时间戳命名,或者根据当前日期做出决策。

让我们创建一个简单的 shell 脚本,使用 date 命令创建带时间戳的文件名。在项目目录中创建一个名为 timestamp.sh 的新文件:

cd ~/project
nano timestamp.sh

在文件中添加以下内容:

#!/bin/bash

## Get current date and time in different formats
CURRENT_DATE=$(date '+%Y-%m-%d')
CURRENT_TIME=$(date '+%H-%M-%S')
TIMESTAMP=$(date '+%Y%m%d_%H%M%S')

## Print the values
echo "Current date: $CURRENT_DATE"
echo "Current time: $CURRENT_TIME"
echo "Timestamp: $TIMESTAMP"

## Example of using timestamp in a filename
echo "Example filename: backup_$TIMESTAMP.tar.gz"

Ctrl+O 保存文件,然后按 Enter,再按 Ctrl+X 退出 nano。

使脚本可执行:

chmod +x timestamp.sh

运行脚本:

./timestamp.sh

输出将显示不同的日期格式,以及如何在文件名中使用它们:

Current date: 2021-03-31
Current time: 21-05-30
Timestamp: 20210331_210530
Example filename: backup_20210331_210530.tar.gz

这个脚本展示了如何在系统管理和文件管理任务中实际使用日期组件。

在不同时区显示日期

与全球团队协作时,你通常需要了解并显示不同时区的时间。Linux 允许你使用环境变量查看不同时区的日期和时间。

首先,让我们看看你的系统上有哪些可用的时区:

ls -la /usr/share/zoneinfo

你会看到许多代表各大洲和地区的目录。你可以查看特定地区的时区:

ls -la /usr/share/zoneinfo/America

这将显示美洲所有可用的时区。

要显示特定时区的日期和时间,在 date 命令前使用 TZ 环境变量:

TZ='America/New_York' date

此命令显示纽约的当前日期和时间。输出类似于:

Wed Mar 31 18:00:00 EDT 2021

尝试显示不同地点的时间:

TZ='Europe/London' date
TZ='Asia/Tokyo' date
TZ='Australia/Sydney' date

你还可以将时区设置与格式说明符结合使用:

TZ='Europe/Paris' date '+%Y-%m-%d %H:%M:%S %Z'

输出的末尾包含时区缩写:

2021-03-31 23:00:00 CEST

在这个例子中,%Z 显示时区缩写(CEST 代表中欧夏令时)。

能够在不同时区显示日期对于全球团队协调活动、安排会议以及排查不同地区服务器的日志问题至关重要。

总结

在这个实验中,你学习了 Linux 中日期和时间操作的重要命令,这些命令是系统管理和脚本编写任务的基础:

  1. 使用基本的 date 命令显示当前日期和时间
  2. 使用 %Y%m%d%H%M%S 等格式说明符自定义日期和时间格式
  3. 提取日期和时间的特定组件,以便在脚本中使用
  4. 创建一个使用日期格式为文件添加时间戳的 shell 脚本
  5. 使用 TZ 环境变量在不同时区显示日期和时间

这些技能可直接应用于许多实际任务,包括:

  • 创建带时间戳的日志文件
  • 使用日期信息为备份文件命名
  • 根据日期条件安排任务
  • 与不同时区的团队进行协作
  • 排查系统日志中与时间相关的问题

在你继续使用 Linux 的过程中,会发现这些日期操作技术对于高效的系统管理和自动化不可或缺。