1. 为什么要有shell外壳?
Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)"
但我们一般用户,不能直接使用kernel,而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
为什么不能直接使用kernel呢?
1. 对于操作系统而言,操作系统本身的操作难度高,普通用户不易操弄操作系统
2. 操作系统要保证自身安全性,不便让普通用户直接接触操作系统
因此,我们在操作系统外建一层软件层(外壳),通过这个软件层(外壳),将我们的需求去传递给操作系统
总之我们作为一个普通用户,不擅长跟操作系统打交道,通过外壳程序可以快捷方便向操作系统表达我们的需求
2.shell外壳是什么?
1.shell外壳是命令行解释器,将使用者的命令翻译给操作系统处理,同时,操作系统的处理结果翻译给使用者。
2.shell外壳也是一个保护层,保护操作系统不受侵害
对于Windows系统:
我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作
(比如进入D盘的操作,我们通常是双击D盘盘符),因此图形接口就是shell外壳
对于Linux系统:
通过shell对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户
3.运行原理
shell本质上就是一个运行的程序(进程),在系统运行的期间一直存在
每当一个用户使用shell进行登录时,操作系统都会给每个用户分配一个shell或bash
对于大部分有风险的指令,shell通过创建子进程的方式去执行有风险的指令,从而保证自己不受侵害,一直存在
shell(外壳)只是一个统称,一切有类似功能都乐意被称为shell外壳,这里的bash就是shell外壳