practice_templates/basic_03/linux_env/README.md

基础实践 3-1: Linux 环境使用实践

📚 知识点

知识点 说明
文件操作 ls, cat, cp, mv, rm, find, grep
目录管理 cd, pwd, mkdir, tree
文本处理 grep, sed, awk, wc, sort, uniq
权限管理 chmod, chown, ls -l
进程管理 ps, kill, jobs, bg, fg, nohup
环境变量 export, source, .bashrc

🎯 任务目标

完成以下 5 个实践任务,每个任务需提交命令记录和输出结果。

任务 1: 项目目录探索

在 SOC3.0 项目中完成以下操作:
- [ ] 列出 soc/ip/ 下所有子目录
- [ ] 统计 soc/ 目录下有多少个 .sv 文件
- [ ] 找到包含 "module" 关键字的所有文件 (使用 grep -r)
- [ ] 找到最大的 3 个 .sv 文件 (使用 find + sort)

任务 2: 文本处理

  • [ ] 从 soc/top/top.sv 中提取所有 inputoutput 端口声明
  • [ ] 统计 soc/top/top.sv 文件的代码行数 (不含空行和注释)
  • [ ] 使用 grep 找出 SOC 项目中所有 APB 外设的基地址定义
  • [ ] 使用 awk 提取地址映射表并格式化输出

任务 3: 脚本编写

补全 scripts/find_modules.sh:
- [ ] 自动查找项目中所有 Verilog module 的名称
- [ ] 输出模块名和所在文件路径
- [ ] 按模块名排序输出

任务 4: 环境配置

补全 scripts/setup_env.sh:
- [ ] 设置 EDA 工具路径 (VCS, Verdi)
- [ ] 设置工作目录和日志目录
- [ ] 创建必要的目录结构
- [ ] 输出环境检查信息

任务 5: Makefile 理解与修改

分析并修改 Makefile:
- [ ] 理解现有的编译和仿真目标
- [ ] 添加 lint 目标 (运行代码检查)
- [ ] 添加 regress 目标 (批量运行多个测试)
- [ ] 添加 help 目标 (显示所有可用目标)

📁 文件结构

├── scripts/
│   ├── find_modules.sh      ← ⭐ TODO: 补全模块查找脚本
│   └── setup_env.sh         ← ⭐ TODO: 补全环境配置脚本
├── Makefile                 ← ⭐ TODO: 添加新目标
├── answers/                 ← 参考答案(请先独立完成再对照)
│   └── task_answers.md
└── README.md

✅ 验收标准

  • 所有脚本可以正常运行
  • Makefile 新增目标功能正确
  • 提交完整的命令操作记录

📝 考核方式

考核项 分值 评估方法
任务 1: 目录探索 15 分 提交命令截图 + 结果
任务 2: 文本处理 20 分 提交命令截图 + 正确结果
任务 3: 脚本编写 25 分 脚本可运行 + 输出正确
任务 4: 环境配置 20 分 环境脚本可运行 + 变量正确
任务 5: Makefile 20 分 新增目标可运行 + 功能正确
合计 100 分

通过标准:≥ 60 分

考核流程

  1. 学员提交操作记录文档(commands.md)
  2. 导师或 AI 检查命令正确性和输出结果
  3. 运行脚本验证功能
  4. 现场提问 2-3 个 Linux 相关问题