满足 Linux 日期命令。 不,它不能让你度过一个浪漫的夜晚。 但它可以格式化您在终端中写的情书顶部的日期。 足够近? 让我们开始吧。
当您在 Bash 中编写脚本时,您将不可避免地需要打印日期或时间,并且该日期或时间通常需要采用特定格式以满足其他功能的要求。 这就是 date 命令发挥作用的时候。
正如您将看到的,Linux 中的 date 命令既简单又通用,这意味着它将接受各种输入并以多种格式生成日期。 它还具有其他特殊功能,适用于各种与时间相关的计算任务。 学习日期的选项和语法肯定会让你更熟练地编写脚本,也许更准时。
日期命令基本语法
date 命令的基本语法如下:
date [OPTION]... [+FORMAT]
也就是说进入后 日期你可以输入一个选项,比如 -d 或者 -s来调用一个特定的函数,我们将在下面解释。
您还可以使用格式字符串跟进这些内容,这些字符串始终以 + 特点。 这些字符串采用特定的格式字符(也在下面列出)来定义输出。
Linux date 命令实战示例
您可以通过多种方式使用 date 命令。 让我们考虑一下最常见和最有用的用例。
1.获取当前日期和时间
您可以通过自行传递 date 命令以默认格式获取当前本地日期和时间。
$ date
Mon 19 Apr 2021 12:41:17 PM CDT
如您所见,日期以简单且可预测的格式为您提供相关的日期和时间信息。
2. 获取过去或未来的日期
假设在您的脚本中,您需要计算距现在正好一周的时间和日期。 date 命令已经涵盖了您。 发出此命令,使用 -d 获取与未来日期相关的详细信息的选项:
$ date -d "next week"
Tue 27 Apr 2021 05:21:07 PM CDT
这 -d 选项,日期的缩写,是日期命令真正闪耀的地方。 它将接受各种自定义日期字符串; 他们可以是技术性的,比如 20200315, 20 年 3 月 15 日或可读的 2020 年 3 月 15 日. 但您也可以使用相对术语,例如 明天, 昨天, 下周日, 和更多。 尝试一下,看看 date 如何解释不同的输入字符串。
3.格式化日期
您可能已经注意到,在前面的两个示例中,日期默认为非常特定的时间格式。 那么,如果您需要其他格式怎么办?
您可以像 printf 命令一样格式化输出。 为了 example,您可以使用以下命令打印当前年份:
date +"Year: %Y"
这 + 表示您想要一个格式化的字符串,以及之后出现的任何内容 引用 标记,日期将处理和格式化输出。
以下是您最有可能使用的格式字符列表:
格式化字符 | 输出 |
---|---|
%H | 小时 (00-24) |
%一世 | 小时 (01-12) |
%M | 分钟 (00-59) |
%S | 第二(00-60) |
%p | 上午或下午 |
%一种 | 工作日全名(例如星期日) |
%一种 | 工作日缩写名称(例如 Sun) |
%w | 工作日编号 (0-6) |
%d | 一个月中的哪一天 (01-31) |
%j | 一年中的某一天 (001-366) |
%B | 月份全名(例如一月) |
%b | 月份缩写名称(例如 Jan) |
%m | 月号 (01-12) |
您可以使用 – 帮助 终端中的选项。
date --help
4. 获取星期几
日期格式的一个非常常见和实际的用途是获取任何给定日期的星期几。 为了 example,要检查 1995 年 11 月 4 日是星期几,请输入与此类似的命令:
$ date -d "1996-04-11" +"%A"
Friday
这 -d 选项表示您想要一个特定的日期, “1996-04-11” 字符串指示您想要的日期,以及 +”%A” 格式表示您希望输出中的星期几。 请记住,日期字符串可以有多种格式,而不仅仅是此处指定的一种。
5. 获取协调世界时
通过发出 -u 标志,您可以在协调世界时 (UTC) 中获取当前时间。
$ date -u
Wed 21 Apr 2021 12:46:59 PM UTC
6.输出另一个时区的本地时间
如果您需要获取任何其他时区的日期,您可以通过设置 TZ= date 命令之前的环境变量。
为了 example,您可以使用以下命令以山地标准时间 (MST) 查看当前日期和时间:
$ TZ=MST date
Tue 20 Apr 2021 03:45:29 PM MST
出于您的目的,只需替换 MST 带有您喜欢的任何时区的首字母。 您还可以选择使用 UTC 表示法。 为了 example要获得相同的时区,请替换 MST 和 UTC+7.
此外,您可以命名一个大陆和主要城市,以获取该特定城市的当地时间。 为了 example:
$ TZ=America/Phoenix date
Tue 20 Apr 2021 03:45:29 PM MST
7. 获取文件的最后修改时间
如果您正在创建备份,对于 example,您通常需要获取文件的最后修改日期。 您可以通过传递 -r 选项并命名文件。
$ date -r /etc/shadow
Wed 14 Apr 2021 07:53:02 AM CDT
您也可以在 Linux 中使用 touch 命令更改文件的时间戳。
8. 输出和转换纪元时间
您可以使用以下命令计算自 Unix 纪元以来的秒数:
$ date +%s
1618955631
您还可以反转该过程并将 Unix 时间转换为人类可读的格式。 -d 选项和 @ 特点。
$ date -d @1618955631
Tue 20 Apr 2021 04:53:51 PM CDT
如果您需要精确的秒数来确保其他设备同步,那么计算 Unix 时间很有用。
9.临时设置系统时间
您可以使用 date 命令从终端更改系统时钟,方法是传递 -s 参数后跟您想要的时间。 为了 example,您可以使用以下命令将系统时钟设置为将来的 24 小时:
date -s "tomorrow"
请注意,您需要 sudo 传递此命令的权限。 此外,更改可能不会持久(意味着您的时钟将在重新启动后恢复到以前的时间),因为大多数发行版使用其他实用程序来管理您的系统时钟,这将覆盖启动时的更改。
Linux date 命令解释
就像在生活中一样,在 Linux 中你无法摆脱时间。 这就是为什么通过 date 命令了解如何格式化和使用它至关重要。 在 Linux 文件管理中你肯定会遇到的一件事是文件携带的各种时间戳。