在 Tuxville 练习 Linux 命令重复执行

LinuxBeginner
立即练习

介绍

在繁华的中世纪城市 Tuxville,这里以广阔的市场和精湛的工艺闻名,住着一位名叫 Gregor 的平凡农民。一天,他偶然听到皇家制图师说,他们需要有人能够监控王国农作物的生长进度,并每小时汇报一次。Gregor 认为这是一个为王国效力并赚取银币的绝佳机会,于是他决定利用 Linux 领域的一点「魔法」来学习持续观察的技艺。他需要你的帮助来掌握那个可以不知疲倦地重复执行、替他看守农田的命令。

理解 watch 命令

在这一步中,你将帮助 Gregor 学习如何使用 watch 命令来监控他的农作物状态。

任务

  • 任务 1:学习 watch 命令的语法及其基本操作。
  • 任务 2:使用 watch 命令重复列出存储农作物报告的目录内容。

要求

  • 熟悉 man 手册页,了解 watch 命令的工作原理。
  • 终端操作的默认工作路径为 /home/labex/project,相对路径为 ~/project
  • 在工作路径下创建一个名为 crops 的目录来存储农作物报告。
  • 使用 watch 命令监控 crops 目录。
  • 命令指令必须在 zsh 终端中执行。

示例

在使用 watch 之前,Gregor 的目录看起来像这样:

ll /home/labex/project/crops
total 0

使用 watch 后,你可以打开一个新的终端并在 crops 目录中创建一些文件。watch 命令将每隔 2 秒显示一次该目录的内容。

生成带有时间戳的报告

在这一步中,Gregor 将使用 watch 命令生成一个带有时间戳的报告文件。

任务

  • 任务 1:编写一个脚本,每隔 1 秒向 crops 目录下的 report.txt 文件追加一个新的时间戳条目。
  • 任务 2:使用 watch 命令重复执行该脚本。

要求

  • ~/project/crops 目录下创建一个名为 timestamp.sh 的脚本。在脚本中使用 date 命令获取当前时间戳。

    #!/bin/bash
    echo "$(date)" >> /home/labex/project/crops/report.txt
    
  • report.txt 文件应包含已执行时间戳的历史记录。

  • 利用 watch 命令每隔 1 秒运行一次该脚本。

示例

在使用 watch 命令持续执行 timestamp.sh 脚本后,report.txt 文件将每秒更新一个新时间戳。

你可以通过执行以下脚本来验证 watch 命令是否正常工作:

cat /home/labex/project/crops/report.txt

输出结果应类似于:

Sat Aug 12 09:00:01 UTC 2023
Sat Aug 12 09:02:01 UTC 2023
Sat Aug 12 09:04:01 UTC 2023

总结

在本次挑战中,你的任务是引导 Gregor 掌握 watch 命令,以便时刻关注他的农作物。通过利用这个强大的命令,你成功地帮助他生成并持续更新了一份满足皇家制图师要求的农作物报告。你不仅提升了自己的 Linux 命令行造诣,还为 Tuxville 农业的卓越发展做出了贡献。

✨ 查看解决方案并练习✨ 查看解决方案并练习