在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
Shell是什么?可能对于一些完全没有计算机基础的朋友来讲,想要理解Shell的概念可能会有一些困难。本文将从Shell的出现、定义以及分类来带大家快速理解Shell的概念。

1、为什么会出现Shell
我们日常使用的操作系统如Windows、Mac OS、Android、iOS等系统,都是带有美美的图形操作界面的,根据图形加简短的文案提示,就知道该程序是干嘛的,任何人都可以上手。然而在计算机的初期,并没有类似这样的图形界面,如果要使用计算机只能用一个个的命令去操作。想想成天面对着黑屏,敲着成百上千个命令来做事,这样的计算机只能给专业人士使用,无法普及。
当然,无论是图形界面还是命令行,最终要实行的目的是一致的:用户需要控制计算机。然而真正能够对计算机进行控制的只有系统内核Kernel,而用户不需要也很难直接去接触系统内核,那么就需要有有一个“中间件”或者桥梁将用户与Kernel连接起来,用户界面和命令行程序就是这座桥梁,在Linux系统中,这个命令行程序叫Shell。以上只是对Shell的通俗解释。
2、什么是shell?
Linux系统的shell介于系统内核与用户之间,相当于系统与用户间的桥梁,负责解析输入的命令和输出的二进制码。另外,shell也属于一种程序设计语言,为用户提供操作机器的交互接口,使用户输入的命令能够传送到内核执行并把处理结果反馈回来。一句话解释Shell的概念:shell就是在操作系统和应用程序之间的一个命令翻译工具。
3、shell的分类有哪些?
(1)图形界面shell,桌面就是一个图形界面shell。
(2)命令行shell,如:linux系统下的bash。
3、Shell连接用户与内核的真相
Shell程序本身的功能是很弱的,我们运行一个命令,Shell去调用内核暴露出来的接口,也就是调用一个个函数,调用函数即是使用内核。比如我们在命令行执行命令cat xxx.log命令来查日志文件内容。然而,这个文件在哪个位置,有多少个数据块等等这些细节,shell都是不知道的,它只能去调用内核提供的read或open函数,告诉内核我需要这样做,你帮我去做。
4、Shell 是一种脚本语言
有些编程语言可以一边编译一边执行,我们称之为脚本语言(Script)。脚本语言是使用灵活、部署容易、跨平台性好。Shell 就是一种脚本语言,我们编写完源码后不用编译,直接运行源码即可。Shell 虽然没有其他编程语言那么强大,如C++、Python,但也支持基本的编程元素,例如:if...else,case,for、while等;变量、数组、字符串、加减乘除、逻辑运算等;函数,包括用户自定义的函数和内置函数(例如 printf、export、eval 等)。
看到这里,想必打击对于“Shell是什么”,应该有了自己的答案了。希望大家都可以通过本文快速理解Shell的概念,更多的IT技术干货尽在博学谷资讯栏目~
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
初学者应该怎样学习编程?需要经历那些阶段?
对于初学者来说,学习编程是一个痛苦的过程,甚至认为编程就是一个难以逾越的鸿沟。满屏幕的英文字母,各式各样的专业名词导致初学者连尝试的机会都不敢考虑。但是面对各种网站华丽的效果、方便实用的网络工具以及行业高薪的诱惑,初学者依旧对编程抱有渴望的态度,只是没有好的学习途径和方法。那初学者应该怎样学习编程呢?需要经历那些阶段?
9855
2019-08-01 18:13:46
新型肺炎疫情下选择IT在线学习提升自己
新型肺炎疫情来势汹汹,为防止交叉感染,防止居家隔离造成交叉感染,从根本上控制感染源,武汉开始对确诊、疑似、发热及密切接触者进行集中收治和隔离。新型冠状病毒感染的肺炎病例不断上升。全国各地有广东、湖南、浙江、北京、上海、天津、湖北、山东等30个省、市、自治区开始对主要公共卫生事故进行一级应对。
7050
2020-02-06 15:13:42
程序员在线学习视频在哪里看?
受新冠疫情影响,许多人都因为封城封路而不得不呆在家里,可以说这也是一个给自己充电,提升自我能力的绝佳机会。尤其是对于处在技术迭代迅速行业的程序员来讲,让自己保持学习的态度,可以在职场中走得更好更远。目前比较高效的学习方式就是观看线上的学习视频,那么疫情期间程序员在线学习视频在哪里看呢?这里给大家推荐一个学习资源丰富的平台——博学谷。
7782
2020-02-26 15:26:05
代码中if…else过多怎么办?解决方案汇总
if…else是我们经常会使用的基础语法,但是在代码中如果存在过多的if…else,将会很大程度影响代码的可读性和可维护性。那么代码中if…else过多怎么办?本文为大家汇总了解决这个问题的五种方案,下面我们来逐一看看吧!
8571
2020-05-12 14:45:50
在线教育发展前景怎么样?
随着互联网技术的不断发展,在线教育逐渐成为传统教育之后的第二大教育体,未来它会如何发展呢?未来在线教育的市场规模还是非常庞大,在线教育可以通过技术的不断发展而逐渐提升学习体验,能够在一定程度上降低教育成本。
6082
2020-06-10 14:15:00
热门文章
- 前端是什么
- 前端开发的工作职责
- 前端开发需要会什么?先掌握这三大核心关键技术
- 前端开发的工作方向有哪些?
- 简历加分-4步写出HR想要的简历
- 程序员如何突击面试?两大招带你拿下面试官
- 程序员面试技巧
- 架构师的厉害之处竟然是这……
- 架构师书籍推荐
- 懂了这些,才能成为架构师 查看更多
扫描二维码,了解更多信息
