构建自定义 shell

building a customized shell

我正在 Minix 中使用 C 构建一个 shell。这是我 'Operating System Lab' 的家庭作业。这个想法是建立一个 bash 像 shell(使用 fork() 和 exec()) 它将有它自己的环境路径,一些额外的功能等。(当然我会 运行 它使用 bash.)

所以现在就我而言,我是 shell 的新手。 bash 用户最常使用的基本功能是什么?我不需要高级功能。我只想知道什么类型的基本实现应该包含在 shell.

注意。我不要求任何代码。不需要post任何link的大资源。分享您的想法、解释或建议。如果您有任何关于此的教程link,您可以分享。提前致谢。

shell 的最低功能:

  • 为用户生成一个进程。
  • 代表 运行 进程接受用户的输入。将 运行 进程的输出中继给用户。
  • 保留一个目录列表,shell 将查看这些目录以查找用户希望执行的进程(即大多数其他 shell 的 PATH 变量)。允许用户查看和修改此目录清单。
  • 提供终止 运行 进程的机制。