https://blog.csdn.net/whatday/article/details/78929247
https://blog.csdn.net/wenlifu71022/article/details/4069929
首先看一张图
上图中Shell作为连接用户和操作系统的中间人,封装了一些系统调用接口,并向用户提供更加好用的命令如mkdir。同时也可以通过Shell来执行存放在硬盘中的其他可执行程序。在这个方面可以将Shell看作命令解释器(command interpreter)。
但Shell自身同样也是一个解释型编程语言,具有很完备的控制结构如if、while等。(不过Shell通常用来批量处理文件或执行类似的操作而不是像其他编程语言一样可以有更广阔的应用)
Shell的分类
注意Shell只是这类软件的一个统称,全世界的开发者为Linux开发了很多不同的Shell,常见的有sh、bash、csh、tcsh、ash等,这些Shell都作为一个可执行程序存储在你的硬盘中。
命令查看当前系统中存在的Shell:
vim /etc/shells
查看当前系统的默认Shell:
echo $SHELL