如何在Linux终端中显示日期和时间(并在Bash脚本中使用它)

Unity桌面概念上的Bash shellFatmawati Achmad Zaenuri / Shutterstock.com

日期 命令在Bash shell中找到,它是大多数Linux发行版甚至macOS中的默认shell。本教程将向您展示如何掌握 日期 在命令行上以及如何在shell脚本中使用它来做的不仅仅是打印时间。

跑过 日期 命令查看此信息。它会打印您时区的当前日期和时间:

日期

输出日期命令

默认格式看起来有点傻。为什么不是在月份和日期之后打印年份,而不是在时区之后的最后标记?不用担心:如果它控制你想要的输出格式, 日期 在黑桃中提供它。您可以传递40多个选项 日期 指示它按照您的意愿精确地格式化其输出。

要使用任何选项类型 日期,一个空间,一个加号 +,以及包括领先百分号的选项。该 %C (区域设置格式的数据和时间)选项使日期和时间以与您的语言环境关联的规范化格式打印。您的区域设置由您在安装操作系统时提供的地理和文化信息设置。区域设置管理诸如货币符号,纸张大小,时区和其他文化规范之类的东西。

日期+%c

使用c选项输出date命令

现在,这一年在产出中处于更自然的位置。

您可以传递几个选项 日期 立刻。一系列选项称为格式字符串。要查看当天的名字(%一个),每月的某天(%d)和月份名称(%B),使用此命令:

日期+%A%d%B

使用A d B选项输出日期命令

这很有用,但很难看。没问题,我们可以包含空格,只要我们用引号将整个格式字符串包装起来。请注意 + 超出引号。

日期+“%A%d%B”

使用带空格的A d B选项输出date命令

您可以在格式字符串中添加文本,如下所示:

日期+“今天是:%A%d%B”

用户添加的文本输出数据命令

在上下滚动 日期 寻找你想要的选项的手册页很快变得令人厌烦。我们已将选项分组,以帮助您更轻松地找到解决方法。

显示日期和时间的选项

  • %C:以您的区域设置的格式打印日期和时间,包括时区。

输出日期命令

显示日期的选项

  • %d:以mm / dd / yy格式打印日期。
  • %F:以yyyy-mm-dd格式打印日期。
  • %X:以您的语言环境的格式打印日期。

使用D F x选项输出日期命令

显示日期的选项

  • %一个:打印当天的名称,缩写为周一,周二,周三等。
  • %一个:打印当天的全名,周一,周三等。
  • %u:打印星期几的数字,其中星期一= 1,星期二= 2,星期三= 3等。
  • %(重量):打印星期几的数字,其中星期日= 0,星期一= 1,星期二= 2等。
  • %d:如果需要,打印月份的日期,前导零(01,02 … 09)。
  • %E:如果需要,打印月份的日期,带有前导空格('1','2'…'9')。请注意撇号不打印。
  • 引用%j:打印一年中的某一天,如果需要,最多两个前导零。

使用A u w d e j选项输出日期命令

显示周的选项

  • %U:打印一周的周数,将星期日视为一周的第一天。例如,一年中的第三周,一年中的第二十周等。
  • %V:打印一年中的ISO周数,将星期一视为一周的第一天。
  • %的W:一年中的周数,将星期一视为一周的第一天。

使用U V W选项输出日期命令

显示月份的选项

  • %b 要么 %H:打印缩写为Jan,Feb,Mar等的月份名称。
  • %B:打印月份的全名,1月,2月,3月等。
  • %M:打印月份编号,如果需要01,02,03 … 12,则前导零。

使用b h B m选项输出日期命令

显示年份的选项

  • %C:打印没有一年的世纪。在2019年,它将打印20。
  • %Y:将年份打印为两位数。在2019年,它将打印19。
  • %Y:将年份打印为四位数。

使用C y Y选项输出日期命令

显示时间的选项

  • %T:将时间打印为HH:MM:SS。
  • %R:使用24小时制,将小时和分钟打印为HH:MM,无秒数。
  • %R:根据您的语言环境打印时间,使用12小时制和am或pm指示符。
  • %X:使用24小时制,根据您的区域设置打印时间。据称。请注意,在测试期间,此选项的行为完全如此 %R 如下所示。在为英国语言环境配置并设置为GMT的Linux计算机上,它按预期使用没有AM或PM指示符的24小时时钟打印时间。

使用T R r X选项输出日期命令

显示小时的选项

  • %H:打印小时00,01,02 …… 23。
  • %一世:使用12小时制00,01,02 … 12打印小时,如果需要,使用前导零。

使用H I选项输出date命令

显示分钟的选项

  • %M:打印分钟,01,02,03 … 59,如果需要,带前导零。

使用M选项输出日期命令

显示秒数的选项

  • %S:打印自1970-01-01 00:00:00(Unix Epoch开始)以来的秒数。
  • %S:打印秒,01,02,03 … 59,如果需要,使用前导零。
  • %N:打印纳秒。

使用s S N选项输出date命令

显示时区信息的选项

  • %Z:打印时区和UTC之间的时差。
  • %::打印时区和UTC之间的时差,其中:小时和分钟之间。请注意 在。。之间 标志和 ž
  • %:: Z:打印时区和UTC之间的时差,其中:小时,分钟和秒之间。请注意 :: 在。。之间 标志和 ž
  • %Z:打印字母时区名称。

使用时区选项输出date命令

与格式相关的选项

  • %p:以大写形式打印AM或PM指示器。
  • %P:以小写形式打印am或pm指示符。注意这两个选项的怪癖。一个小写的 p 给出大写输出,大写 P 给出小写输出。
  • %T:打印选项卡。
  • %N:打印一个新行。

使用AM PM指示符和格式选项输出日期命令

修改其他选项的选项

这些修饰符可以插入之间 以及修改其显示的其他选项的选项字母。例如, %-S 将删除单位数秒值的前导零。

  • :单个连字符可防止单个数字值上的零填充。
  • _:单个下划线为单个数字值添加前导空格。
  • 0:为单个数字值提供前导零。
  • ^:如果可能,使用大写(并非所有选项都遵循此修饰符)。
  • :如果可能,使用与默认情况相反的选项(并非所有选项都遵循此修饰符)。

两个更整洁的技巧

要获取文件的最后修改时间,请使用 -r (参考)选项。请注意,这使用了 - (连字符)而不是 标志,它不需要 + 标志。在您的主文件夹中尝试此命令:

date -r .bashrc

输出带有文件修改时间选项的date命令

TZ设置允许您在单个命令的持续时间内更改时区。

TZ = GMT日期+%c

输出不同时区的日期命令

在脚本中使用日期

启用Bash shell脚本来打印时间和日期是微不足道的。创建包含以下内容的文本文件,并将其另存为 gd.sh

#!/斌/庆典

TODAY = $(日期+“今天是%A,%B是%B”)
TIMENOW = $(日期+“当地时间是%r”)
TIME_UK = $(TZ = BST日期+“在英国的时间是%r”)

echo $ TODAY
echo $ TIMENOW
echo $ TIME_UK

键入以下命令以设置执行权限并使脚本可执行。

chmod + x gd.sh

使用以下命令运行脚本:

./gd.sh

输出gd.sh脚本

我们可以使用date命令来提供时间戳。显示的脚本将创建一个以时间戳作为名称的目录。然后,它会将当前文件夹中的所有文本文件复制到其中。通过定期运行此脚本,我们可以拍摄文本文件的快照。随着时间的推移,我们将构建一系列文件夹,其中包含不同版本的文本文件。

请注意,这不是一个强大的备份系统,它仅用于说明目的。

创建包含以下内容的文本文件,并将其另存为 snapshot.sh。

#!/斌/庆典

#获取日期和时间
date_stamp = $(日期+“%F-%H-%M-%S”)

#制作一个具有该名称的目录
mkdir“$ date_stamp”

#将当前文件夹中的文件复制到其中
cp * .txt“$ date_stamp”

#all done,报告并退出
echo“复制到目录的文本文件:”$ date_stamp

键入以下命令以设置执行权限并使脚本可执行。

chmod + x snapshot.sh

使用以下命令运行脚本:

./snapshot.sh

运行snapshot.sh脚本的效果

您将看到已创建目录。它的名称是脚本执行的日期和时间。在该目录中是文本文件的副本。

给予一点思考和创造力,即使是谦虚 日期 命令可以投入生产使用。

本文机器自动生成,不保证语句完整通顺和表达准确,亦不对内容真实有效性负责,请读者知悉。