问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Linux下的shell工作原理是什么?

发布网友 发布时间:2022-04-26 21:43

我来回答

2个回答

热心网友 时间:2023-08-17 14:14

Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。

shell是用户和Linux内核之间的接口程序,如果把Linux内核想象成一个球体的中心,shell就是围绕内核的外层。当从shell或其他程序向Linux传递命令时,内核会做出相应的反应。

shell是一个命令语言解释器,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。用户在提示符下输入的命令都由shell先解释然后传给Linux核心。

有一些命令,比如改变工作目录命令cd,是包含在shell内部的。还有一些命令,例如拷贝命令cp和移动命令rm,是存在于文件系统中某个目录下的单独的程序。对用户而言,不必关心一个命令是建立在shell内部还是一个单独的程序。

shell首先检查命令是否是内部命令,若不是再检查是否是一个应用程序(这里的应用程序可以是Linux本身的实用程序,如ls和rm,也可以是购买的商业程序,如xv,或者是自由软件,如emacs)。然后shell在搜索路径里寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果键入的命令不是一个内部命令并且在路径里没有找到这个可执行文件,将会显示一条错误信息。如果能够成功找到命令,该内部命令或应用程序将被分解为系统调用并传给Linux内核。

shell的另一个重要特性是它自身就是一个解释型的程序设计语言,shell程序设计语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构。shell编程语言简单易学,任何在提示符中能键入的命令都能放到一个可执行的shell程序中。

当普通用户成功登录,系统将执行一个称为shell的程序。正是shell进程提供了命令行提示符。作为默认值(TurboLinux系统默认的shell是BASH),对普通用户用“$”作提示符,对超级用户(root)用“#”作提示符。

一旦出现了shell提示符,就可以键入命令名称及命令所需要的参数。shell将执行这些命令。如果一条命令花费了很长的时间来运行,或者在屏幕上产生了大量的输出,可以从键盘上按ctrl+c发出中断信号来中断它(在正常结束之前,中止它的执行)。

当用户准备结束登录对话进程时,可以键入logout命令、exit命令或文件结束符(EOF)(按ctrl+d实现),结束登录。

热心网友 时间:2023-08-17 14:14

Linux系统提供给用户的最重要的系统程序是Shell命令语言解释程序。它不属于内核部分,而是在核心之外,以用户态方式运行。其基本功能是解释并执行用户打入的各种命令,实现用户与Linux核心的接口。系统初启后,核心为每个终端用户建立一个进程去执行Shell解释程序。它的执行过程基本上按如下步骤:
(1)读取用户由键盘输入的命令行。

(2)分析命令,以命令名作为文件名,并将其它参数改造为系统调用execve( )内部处理所要求的形式。

(3)终端进程调用fork( )建立一个子进程。

(4)终端进程本身用系统调用wait4( )来等待子进程完成(如果是后台命令,则不等待)。当子进程运行时调用execve( ),子进程根据文件名(即命令名)到目录中查找有关文件(这是命令解释程序构成的文件),将它调入内存,执行这个程序(解释这条命令)。

(5)如果命令末尾有&号(后台命令符号),则终端进程不用系统调用wait4( )等待,立即发提示符,让用户输入下一个命令,转⑴。如果命令末尾没有&号,则终端进程要一直等待,当子进程(即运行命令的进程)完成处理后终止,向父进程(终端进程)报告,此时终端进程醒来,在做必要的判别等工作后,终端进程发提示符,让用户输入新的命令,重复上述处理过程。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
考研可以查试卷的各题得分吗 如何看到自己的考研试卷 考研成绩可以查各题得分吗 原神机关棋谭双风双岩队伍怎么玩_机关棋谭双风双岩队伍推荐 原神双风阵容怎么搭配 原神魈双风阵容怎么搭配-魈双风阵容搭配推荐 Java有发展潜力还是C#有发展潜力 兴智联和电信什么关系 玫瑰花酱做法二 武汉兴智联科技服务有限公司怎么样 为什么linux有多种shell linux下的shell的工作机制是什么? 在Linux中,shell是什么?? Linux中,Shell具体是什么东西,是在系统中干什么的? linux 中为什么要用shell脚本编程 linux中的shell究竟是什么? Linux Shell是什么? 腊肉跟什么菜炒比较好 linux shell是什么 家里吃腊肉,应该选用什么做配菜呢? 炒腊肉的配菜 为书中情节而笑,表达出对阅读的什么态度? 阅读一部名著,介绍书中人物情节,800字 读书时该如何才能记住书中的情节,人物等等? 石头记书中描写的经典情节如什么什么等? 童年书中的精彩情节 结合书本中相关情节说说保尔说如何对待自己的生命的? 在《童年》书中你最感动的情节或理由? 红岩这本书中哪个情节让你最感动为什么 《狼王梦》书中感人的情节 快!!! 192.168.0.1路由器密码忘记了怎么办 192.168.0.1路由器设的密码忘记了怎么办 比目鱼清蒸或者干烧,需要多长时间 清蒸偏口鱼蒸多长时间 清蒸比目鱼的做法 清蒸比目鱼的详细做法,谢谢! 清蒸偏口鱼的做法最正宗的做法 比目鱼要蒸多长时间 清蒸比目鱼怎么做? 清蒸比目鱼的做法和步骤窍门 清蒸比目鱼是怎样做,谢谢。 清蒸比目鱼的正宗做法,清蒸比目鱼怎样做才好吃的做法 比目鱼怎么煮 清蒸比目鱼要怎么作啊? 比目鱼清蒸放什么料? 汽车空调制冷系作用是什么? 为什么汽车空调半小时后才制冷? 聊城康之源蛋业有限公司怎么样? 海城市兴和鸡蛋禽类有限公司怎么样? 新兴大华农禽蛋有限公司怎么样?