Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel)“ ,但我们一般用户,不能直接使用kernel。 而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。
1.从技术角度,Shell的最简单定义:命令行解释器(command Interpreter)主要包含:
将使用者的命令翻译给核心(kernel)处理。
同时,将核心的处理结果翻译给使用者。
2.对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的 操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运行起来一个应用程序)。
3.shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运 行出结果,通过shell解析给用户。
补充:
1.命令行和图形化界面
2.OS和外壳程序的关系
3.shell外壳
① 什么是she1l外壳 : 包裹在操作系统外层的软件层,方便用户和OS进行沟通
② shell : 接受用户的输入,交给OS执行,得到结果反馈给用户
③ shell的作用 :a.交互 b.保护OS
④ shell是所以外壳程序的统称,笼统的概念 ;bash是一种具体的shell
centOS7的外壳程序是: bash
4.Linux外壳程序的理解:
①shell是进行命令行解释的 ,命令行解释器在系统层面上就是一个进程!
②保证内核的安全运行的同时,也要保证自身的安全,如何保护? shell进程->创建子进程去进行命令行解释->如果失败是不会影响shell进程。
③大部分指令的运行,都是会变成进程的。
5.shell进程
①执行一个程序
②进程之间的关系
1.myproc这个进程是bash帮我们创建的,也就是说 " ./myprco "这个指令是bash帮我们进行执行的。
2.自己grep出来的每一行都有一个grep,原因:当你使用管道的时候grep,它自己在过滤的时候它也要把自己运行起来,只要把自己运行起来也是个进程,自己的进程就包括myproc关键字
③bash的父进程
sshd是xshell登陆,底层用的协议工具,当你用xshell每次登陆的时候OS帮你创建了一个对应的bash;打开xshell登陆的时候就是在链接sshd的一个服务,登陆成功之后这个sshd会帮你创建子进程,然后创建一个bash,所以我们沟通(输入命令行)的时候其实是在和bash沟通。
④进程之间的独立性
杀掉子进程不会影响父进程
以上就是极悦小编介绍的"shell执行命令与运行原理的分析",希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为您务。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习