什么是shell?

图1. 同计算机沟通的过程

我们接触到的计算机,都是各种各样的软件,五花八门,我们也知道各种软件是由不同的计算机语言所写成的。大学计算机课就有讲过C语言或者C++语言,所以大家对计算机语言或多或少都有一些了解。

但是,很多人对计算机语言的看法是生硬,难懂,太多信息,让人想睡觉。就算打了那么久的代码,我现在看代码也是感觉很累,那为什么发明计算机语言的人要选择这种方式与计算机沟通呢?这需要讨论计算机的历史,我们下次再讲,嘻嘻!

既然计算机语言如此生硬,那能不能用简单的方法与计算机沟通?这就讲到了shell了。

什么是shell(外壳)?shell是一种user interface,即用户界面,当初计算机使用的语言非常的冗余,生硬。所以人们便想开发一种更容易懂的方式与计算机沟通,叫做shell的原因也是人们在许多已经实现但使用方法十分复杂的计算机功能上开发一个外壳,让它使用更方便。


举个例子:

我们拥有一个text文件,我们想知道它拥有多少行,在windows系统中,你们会用txt编辑器打开然后查看。这是与计算机沟通之后的结果,计算机是先把文件读入内存,然后计算其行数,然后输出。

如果了解python,那么其大概过程是这样的


图2. 用python计算文件行数

这是已经简化过后的python计算文件行数的方法,使用C语言或者basic语言会比较复杂,而且不能达到面向对象的作用。


而shell可以通过命令的方式执行查询文件行数的功能


图3. 利用wc命令查询文件行数

可以在shell中输入man wc 以查看wc命令的说明:

图4. wc命令的说明


回到shell:

所以shell就是人们为了更方便的与计算机进行沟通而开发的一系列命令集合。那么诱人说了,我觉得现在计算机的各种软件很好啊,功能齐全,不需要用到shell啊?

的确如此,现在软件的功能非常全面,而且具有图形界面,能让更多的人接受他的使用方法。但是较早开发的shell具有的优势也是无可比拟的,如速度,信息量。图形界面为了能让更多的人接受,牺牲了速度和信息量,因为图形界面归根结底还是要通过0,1与计算机沟通,我们使用的Office,Photoshop,会加载很多对于计算无用的图形信息,而且从图像信息所占空间比文字大得多,所以图形界面会比shell慢。

当然,我们在日常生活中,不需要用到那么快的计算能力,因为图形界面软件公司已经对其做了很多优化,但是像我在科研过程中,每个text文件就能占几十GB的时候,速度往往是最重要的。

下期预告:

我们大概认识了shell,就可以准备开始系统的学习了,下期我会以bash shell作为例子,讲讲bash shell能做些什么。


第一次写东西,如有不妥不实,请多多谅解!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在继续Metasploit教程之前,我想提出这么一个疑问:到底什么是shell? 在渗透这个行业,你几乎随处都可以...
    RabbitMask阅读 5,298评论 2 3
  • 第一部分 Linux命令行 1. 基本的bash shell命令 1.1 启动shell /etc/passwd文...
    LALH_08ca阅读 4,436评论 0 2
  • 以下都是对 The Linux command line 一书所做的笔记,以求日后忘记时候可以翻阅 为什么使用Li...
    Klaas阅读 1,846评论 0 0
  • 什么是命令行? 命令行界面(Command Line Interface,CLI)。 什么是Shell? 在计算机...
    APGE阅读 2,939评论 0 0
  • 第一天,我爱上了你 你不知道 第二天,我爱上了你 别人从我的眼里知道 慢慢地日子慢慢流 三天四天 我的身体像是充满...
    罗森桥那头有你阅读 1,279评论 1 2

友情链接更多精彩内容