Tuxville 中的 Linux 命令重复执行

LinuxLinuxBeginner
立即练习

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

简介

在以庞大市场和精湛工艺闻名的繁华中世纪城市图克斯维尔(Tuxville),住着一位名叫格雷戈尔(Gregor)的朴实农民。有一天,他无意中听到皇家制图师说,他们需要有人能监测王国农作物的生长进度,并每小时汇报一次。格雷戈尔认为这是一个为王国效力并赚取一些银币的绝佳机会,于是决定涉足学习持续观察的技巧,并借助 Linux 领域的一些魔法。他需要你的帮助来掌握能自动重复执行、不知疲倦地监视农田的命令。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux/SystemInformationandMonitoringGroup -.-> linux/watch("Command Repeating") subgraph Lab Skills linux/watch -.-> lab-271434{{"Tuxville 中的 Linux 命令重复执行"}} end

理解 watch 命令

在这一步中,你要帮助格雷戈尔(Gregor)学习如何使用 watch 命令来监控他农作物的状态。

任务

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

要求

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

示例

在使用 watch 之前,格雷戈尔的目录如下所示:

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)的农业发展做出了贡献。