Skip to content

Commit 328647e

Browse files
committed
More detailed guide
1 parent d9baaaf commit 328647e

File tree

2 files changed

+343
-53
lines changed

2 files changed

+343
-53
lines changed

README.md

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ python grader.py -d 5-jobs
225225
- 代码风格与注释
226226

227227
- 选做任务(20%)
228-
- 任选两项[选做任务](#33-附加任务选做)完成
228+
- 任选两项[选做任务](#34-附加任务选做)完成
229229
- 或使用 Rust 实现
230230

231231
- 实验报告与代码质量(20%)
@@ -317,8 +317,6 @@ Shell 不仅是执行命令的工具,也是一种编程语言。你可以为
317317

318318
真正实用的 Shell 需要与操作系统深度集成。PATH 管理与命令查找优化是一个很好的切入点,你可以支持在运行时动态添加、删除PATH中的条目,并将其持久化到配置文件。还可以使用缓存或哈希表对 PATH 下的可执行文件进行索引,加速命令查找。
319319

320-
持久化作业与会话恢复则是一个更具挑战性的方向,你可以研究如何将后台作业状态记录至文件,使 Shell 重启后能够重新接管先前的进程。
321-
322320
配置文件与插件系统可以大大增强 Shell 的可定制性和扩展性。你可以设计读取 `~/.tshrc` 这样的配置文件,在启动时加载用户的环境变量、自定义函数、别名等设置。更进一步,你可以定义插件接口,允许用户通过动态库扩展 Shell 的能力。
323321

324322
## 8.4 性能与安全 🛡️
@@ -327,15 +325,13 @@ Shell 不仅是执行命令的工具,也是一种编程语言。你可以为
327325

328326
在安全方面,你可以实现命令执行的权限控制和安全检查,如白名单/黑名单机制,防止执行某些高危操作。对命令执行路径和权限的严格检查则可以预防路径注入攻击。
329327

330-
更进一步,你可以研究如何通过 Linux 的 `seccomp` 或其他机制为命令执行提供沙盒环境,对 Shell 可执行的系统调用进行限制,在保证功能的同时提升安全性。
331-
332328
## 8.5 参考资源 📚
333329

334330
- [POSIX Shell 标准](https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html)
335331
有助于理解 Shell 语法的最小通用规范和关键特性。
336332
- [GNU Bash 参考手册](https://www.gnu.org/software/bash/manual/)
337-
Bash包含了大量进阶功能,如命令替换、算术表达式、扩展模式匹配等,能为自定义Shell提供借鉴
333+
Bash 包含了大量进阶功能,如命令替换、算术表达式、扩展模式匹配等,能为自定义 Shell 提供借鉴
338334
- [Zsh 官方文档](https://zsh.sourceforge.io/Doc/)
339-
Zsh在交互性、可扩展性方面非常灵活,很多功能或设计理念值得学习。
335+
Zsh 在交互性、可扩展性方面非常灵活,很多功能或设计理念值得学习。
340336
- [高级 Bash 脚本指南](https://tldp.org/LDP/abs/html/)
341-
其中对Shell脚本的高级语法、技巧、陷阱均有说明,可以作为实现高级功能时的参考。
337+
其中对 Shell 脚本的高级语法、技巧、陷阱均有说明,可以作为实现高级功能时的参考。

0 commit comments

Comments
 (0)