1、何为shell和kernel
kernel
kernel即核心,也就是指操作系统,如Windows和Linux…
内核是硬件与软件之间的一个中间层,作用是将应用层序的请求传递给硬件,并充当底层驱动程序,对系统中的各种设备和组件进行寻址。但应用层不能直接与kernel沟通,需通过媒介shell进行交互
shell
Shell为命令行解释器(command Interpreter),把用户命令解释为内核可识别的机器语言,然后翻译命令结果给用户,即:
- 将使用者的命令翻译给核心(kernel)处理
- 将核心的处理结果翻译给使用者
常见的shell有GUI、KDE、sh、csh、bash、tsh、zsh等、而linux中最常用的shell就是bash
2、shell命令以及运行原理
- shell是做命令行解释的,给操作系统解释,同时将结果翻译给用户
- shell外壳会保护操作系统,并不是用户所有的命令都会传递到操作系统,对系统有危害性的命令会被阻止
- shell的运行原理:创建子进程,即子shell,子shell会从父shell中继承很多环境,如变量、命令全路径、文件描述符、当前工作目录、陷阱等等,其好处为子进程出现任何问题都不会影响父进程shell