如何在 Linux 终端中显示日期和时间(并在 Bash 脚本中使用) 您所在的位置:网站首页 手机屏幕上如何显示日期和星期 如何在 Linux 终端中显示日期和时间(并在 Bash 脚本中使用)

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

2024-06-24 11:49| 来源: 网络整理| 查看: 265

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

date 命令可以在 Bash shell 中找到,它是大多数 Linux 发行版甚至 macOS 中的默认 shell。本教程将向您展示如何在命令行上掌握 date,以及如何在 shell 脚本中使用它来完成除简单地打印时间之外的更多操作。

运行 date 命令以查看此信息。它打印您所在时区的当前日期和时间:

date

默认格式看起来有点傻。为什么年份不在月份和日期之后打印,而是在末尾标记在时区后面?不要害怕:如果它可以控制您想要的输出格式,date 绝对可以提供。您可以将 40 多个选项传递给 date 以指示它按照您的意愿精确格式化其输出。

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

date +%c

年份现在出现在输出中更自然的位置。

您可以一次将多个选项传递给 date。一系列选项称为格式字符串。查看日期名称 (%A)、月份日期 (%d) 和月份名称 (%B) ,使用这个命令:

date +%A%d%B

那行得通,但是很难看。没问题,只要将整个格式字符串用引号括起来,我们就可以包含空格。请注意,+ 位于引号之外。

date +"%A %d %B"

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

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

在 date 手册页中上下滚动寻找您想要的选项很快就会变得很烦人。我们已将选项分成几组,以帮助您更轻松地找到解决方法。

显示日期和时间的选项

%c:以您所在地区的格式打印日期和时间,包括时区。 显示日期的选项

%D:以 mm/dd/yy 格式打印日期。 %F:以 yyyy-mm-dd 格式打印日期。 %x:以您所在地区的格式打印日期。 显示日期的选项

%a:打印日期名称,缩写为 Mon、Tue、Wed 等。 %A:打印当天的全称,周一周二周三等 %u:打印星期几,其中星期一=1,星期二=2,星期三=3,依此类推。 %w:打印星期几,星期日=0,星期一=1,星期二=2,依此类推。 %d:打印月份中的第几天,如果需要,带有前导零(01、02 … 09)。 %e:打印月份中的第几天,如果需要,带有前导空格(‘1’、‘2’……‘9’)。请注意,撇号不会打印出来。 %j:打印一年中的第几天,如果需要,最多有两个前导零。 显示周的选项

%U:打印一年中的周数,将星期日视为一周的第一天。比如一年中的第三周,一年中的第二十周等。 %V:打印一年中的 ISO 周数,将星期一视为一周的第一天。 %W:一年中的周数,将星期一视为一周的第一天。 显示月份的选项

%b 或 %h:打印缩写为 Jan、Feb、Mar 等的月份名称。 %B:打印月份的全称,一月,二月,三月等 %m:打印月数,如果需要,带前导零 01、02、03 … 12。 显示年份的选项

%C:打印没有年份的世纪。 2019 年它将打印 20。 %y:将年份打印为两位数。 2019 年将打印 19。 %Y:将年份打印为四位数。 显示时间的选项

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

%H:打印小时 00、01、02…23。 %I:使用 12 小时制打印小时,00、01、02 … 12,如果需要,带前导零。 显示会议记录的选项

%M:打印分钟,01, 02, 03 ... 59,如果需要,带前导零。 显示秒数的选项

%s:打印自 1970-01-01 00:00:00 以来的秒数,即 Unix 纪元的开始。 %S:打印秒数 01、02、03 … 59,如果需要,可以使用前导零。 %N:打印纳秒。 显示时区信息的选项

%z:打印您的时区与 UTC 之间的时差。 %:z:打印您的时区和 UTC 之间的时差,在小时和分钟之间使用 :。请注意 % 符号和 z 之间的 :。 %::z:打印您的时区和 UTC 之间的时差,在小时、分钟和秒之间使用 :。请注意 % 符号和 z 之间的 ::。 %Z:打印按字母顺序排列的时区名称。 与格式化相关的选项

%p:以大写形式打印 AM 或 PM 指示器。 %P:以小写形式打印上午或下午指示符。请注意这两个选项的怪癖。小写 p 给出大写输出,大写 P 给出小写输出。 %t:打印一个标签。 %n:打印一个新行。 修改其他选项的选项

这些修饰符可以插入到%和其他选项的选项字母之间来修改它们的显示。例如,%-S 会删除个位数秒值的前导零。

–:单个连字符可防止对单个数字值进行零填充。 _:单个下划线为单个数字值添加前导空格。 0:为个位数值提供前导零。 ^:尽可能使用大写字母(并非所有选项都遵循此修饰符)。 #:如果可能,使用与选项默认大小写相反的方式(并非所有选项都遵循此修饰符)。 两个更巧妙的技巧

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

date -r .bashrc

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

TZ=GMT date +%c在脚本中使用日期

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

#!/bin/bash TODAY=$(date +"Today is %A, %d of %B") TIMENOW=$(date +"The local time is %r") TIME_UK=$(TZ=BST date +"The time in the UK is %r") echo $TODAY echo $TIMENOW echo $TIME_UK

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

chmod +x gd.sh

使用此命令运行脚本:

./gd.sh

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

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

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

#!/bin/bash # obtain the date and time date_stamp=$(date +"%F-%H-%M-%S") # make a directory with that name mkdir "$date_stamp" # copy the files from the current folder into it cp *.txt "$date_stamp" # all done, report back and exit echo "Text files copied to directory: "$date_stamp

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

chmod +x snapshot.sh

使用此命令运行脚本:

./snapshot.sh

您会看到已经创建了一个目录。它的名称是脚本执行的日期和时间。该目录内是文本文件的副本。

只要有一点想法和创造力,即使是不起眼的 date 命令也可以投入生产使用。

Linux Commands Files tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc Processes alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap Networking netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld

RELATED: Best Linux Laptops for Developers and Enthusiasts



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有