终端指令是怎么设计的?

问题:如win的控制台和一些终端指令窗口,每行都会打印出 类似 (例子): 路径$>(键入你的命令) 或者 一些符号 : root:iSH$->(键入你的命令)
其次就是 如何 做到 不同的 指令 做不同的 事情, 并且 指令可以组合, 就是 怎么处理 字符串的,主要是 怎么设计的?,想不来怎么抽象这个 东西 。 我的想法是 把每一句 指令 都 拆解成对应的 class , 就类似 学习英语的时候 那种 主语 谓语什么的 。
把每一个 指令(这里叫做 关键字吧 比如 ls ll rm - sudo 什么的 我也 不太熟悉)转换成 对应的 code 然后做对应的事情?
就想做出 这么 一个效果, 我表述的可能不清楚。想拿这个做我的 qi mo zuo ye (会C++) ,具体 每条指令 做什么, 这个 由我来写。

建议概览一下linux bash的源代码