Skip to content

关卡名称:切割数据的艺术

背景故事:

玩家需要解析一份网络日志文件,找到特定信息来追踪病毒的来源。

需要通过学习掌握 cut 命令,以便从文件中提取所需数据。

关卡结构:

关卡1:cut 命令基础

好的,下面是修改后的任务1.0,以查看 /etc/passwd 文件的最后十行,并提取每行的第一列和第七列,用于检查是否有黑客在系统中添加了账号,并查看这些账号对应的登录 shell:

任务1.0:检查 /etc/passwd 文件最后十行的第一列和第七列

  • 目标:查看 /etc/passwd 文件的最后十行,提取每行的第一列(用户名)和第七列(登录 shell)。
  • 提示:使用 tail 命令查看文件的末尾行,并结合 cut 命令提取所需列。
  • 命令示例tail -n 10 /etc/passwd | cut -d: -f1,7
  • 任务代码
sh
# 查看 /etc/passwd 文件的最后十行,并提取第一列(用户名)和第七列(登录 shell)
tail -n 10 /etc/passwd | cut -d: -f1,7
  • 预期输出
    • 输出会列出最后十行中每行的用户名和对应的登录 shell。玩家需要检查是否有不明账号和不正常的登录 shell。

任务1.1:理解 cut 命令的基本用法

  • 目标:从文件 network.log 中提取每行的前10个字符。
  • 提示:使用 cut 命令的 -c 选项。
  • 命令示例cut -c 1-10 network.log
  • 奖励:获得一个关于 cut 命令选项的简明指南。

任务1.2:按定界符切割

  • 目标:从文件 network.log 中提取第二列,列与列之间以逗号分隔。
  • 提示:使用 cut 命令的 -d-f 选项。
  • 命令示例cut -d',' -f2 network.log
  • 奖励:解锁下一个任务并获得一个网络日志分析工具。

关卡2:进阶用法和综合应用

任务2.1:提取多个字段

  • 目标:从文件 network.log 中提取第一和第三列,列与列之间以空格分隔。
  • 提示:使用 cut 命令的 -d-f 选项,注意列的索引。
  • 命令示例cut -d' ' -f1,3 network.log
  • 奖励:获得一个关于多字段提取的实战技巧指南。

任务2.2:结合其他命令使用

  • 目标:将 network.log 文件中的数据按行排序,并提取每行的第二列,列与列之间以制表符分隔。
  • 提示:结合使用 sortcut 命令。
  • 命令示例sort network.log | cut -d$'\t' -f2
  • 奖励:解锁下一个大关卡并获得高级日志分析工具。

关卡3:实战挑战

任务3.1:日志数据清洗

  • 目标:从文件 network.log 中提取所有IP地址(假设在第三列,列与列之间以冒号分隔),并去重。
  • 提示:结合使用 cutsort 命令,了解如何去重。
  • 命令示例cut -d':' -f3 network.log | sort | uniq
  • 奖励:解锁高级网络安全工具和病毒追踪情报。

游戏界面:

  1. 虚拟终端:中心区域为虚拟终端,玩家在其中输入命令并即时看到结果。
  2. 任务面板:左侧显示当前任务和任务目标。
  3. 提示区:右侧提供命令参考和使用示例,玩家可以根据需要查看。
  4. 积分和进度条:顶部显示玩家当前积分和任务进度。

小结:

通过这个关卡,玩家将逐步掌握 cut 命令的基本和进阶用法,学会如何在实际场景中使用它来处理和分析文本数据。这种任务驱动的学习方式不仅能提高玩家的Linux技能,还能增强他们解决实际问题的能力。