shell笔记

突然看到网上对shell介绍的一段话,以及下面的一张图,网上查询到相关介绍。

Shell本身是一个用C语言编写的程序,它是用户使用Unix/Linux的桥梁,用户的大部分工作都是通过Shell完成的。Shell既是一种命令语言,又是一种程序设计语言。作为命令语言,它交互式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。

  它虽然不是Unix/Linux系统内核的一部分,但它调用了系统核心的大部分功能来执行程序、建立文件并以并行的方式协调各个程序的运行。因此,对于用户来说,shell是最重要的实用程序,深入了解和熟练掌握shell的特性极其使用方法,是用好Unix/Linux系统的关键。

    shell翻译成壳的意思,它是包裹在linux内核外层的,一个可通过一系列的linux命令对操作系统发出相关指令的人机界面。 shell可以通过其条件语句和循环语句等,把一系列linux命令结合在一起,形成一个相当于面向过程的程序,shell script,来实现一些较为复杂的功能。

      总括,shell是linux命令集的概称,是属于命令行的人机界面。Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson的sh是第一种Unix Shell,Windows Explorer是一个典型的图形界面Shell。Shell 和Shell Script不是一回事,通常我们说的都是Shell Script。

    直接在命令行执行, 就是在当前的shell环境下执行,比如涉及到一些环境变量的时候 必须在当前shell环境里执行;在脚本里执行的话,脚本执行的时候,会fork一个子进程,所有操作都在子进程进行,如果涉及到一些在脚本里设置环境变量的东西,脚本结束了,环境变量也就消失了。

shell是一个命令解释器,处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户,同时,shell也可以作为一门强大的编程语言。

综合网上的解释,总结下自己对命令,命令行,shell,shell脚本,bash的理解:

1.shell是内核外的一个壳,是用户与内核之间进行交互的接口,shell是一个命令解释器,将用户的命令解释后传送给内核。

2.每个Linux系统都有一个默认的shell,命令行就是处于一个shell解释器中,在一个shell环境中,每个命令行下执行的命令都是通过shell解释后传给内核。

3.shell有很多种,包括sh,csh,bash等等。我们通常说的shell就是指基于这些shell语法写成的程序shell script,shell脚本。

4.linux常用命令属于系统命令。shell有自己的命令和语法。

所以,窃以为,上面那种图不完全正确,sh,csh,ksh,bash都属于shell,不应该分开。

参考:https://blog.csdn.net/lizhidefengzi/article/details/74066590?locationNum=4&fps=1

shell教程可参阅:https://www.cnblogs.com/maybe2030/p/5022595.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值