linux shell执行原理,linux shell执行原理

Shell作为用户与Linux内核交互的接口,通过分层结构提供命令解析和执行。在用户输入命令并回车后,Shell会通过fork创建子进程,并使用exec执行命令。这种结构便于开发和维护,但可能影响系统性能。在后台执行命令时,父进程会通过wait等待子进程结束。理解这一过程有助于深入掌握Linux系统操作。
摘要由CSDN通过智能技术生成

shell简介

Shell是系统的客户界面,提供了客户与内核进行交互操作的一种接口。它接收客户输入的命令并把它送入内核去执行。

运行背景

a 一个基本的linux系统结构

bae6b354268a7e266a06936b23b1c51b.png

b.由上图可以看出,shell 在系统中是处于中间层次的。他为客户和kernel的交互提供了一种方式,方案。

c.关于分层结构的众多优势:1、开发人员可以只关注整个结构中的其中某一层;

2、可以很容易的用新的实现来替换原有层次的实现;

3、可以降低层与层之间的依赖;

4、有利于标准化;

5、利于各层逻辑的复用。

缺点:1、降低了系统的性能。

2、有时会导致级联的修改

shell命令执行原理

表层了解 我们一般做法就是:打开终端,输入命令,敲回车,等待命令运行,得到结果

那么,对于这个过程进行细致的解析,又包含了哪些东西呢?

打开终端,输入命令,敲回车----IO中断

等待过程:shell分析命令及参数----shell(一个终端位置的解释性程序)

fork拷贝周围成pcb相关资源,为命令执行做准备----系统调用

exec在fork得到的子进程中执行命令

执行完成,返回结果----堆栈保护,栈帧注:当执行命令如 ls &

&符号表示该命令在后端执行,而当命令执行过程中,我们是无法仅需输入命令的,这是由于父进程在fork执行shell命令的同时,回执行wait等待子进程结束,除非客户主动Ctrl+C停止命令执行或者者Ctrl+z置入后端执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值