系统相关
首页 > 系统相关> > 『忘了再学』Shell基础 — 1、Shell的介绍

『忘了再学』Shell基础 — 1、Shell的介绍

作者:互联网

目录

1、Shell的由来

我们比较熟悉Windows系统的图形化界面,对于图形界面来说,用户点击某个图标就能启动某个程序。

在此之前我们一直在使用Linux系统的命令行模式学习,对于命令行来说,用户输入一个命令就能启动某个程序。

这两者的基本过程都是类似的,都需要查找程序在硬盘上的安装位置,然后将它们加载到内存运行。

然而,真正能够控制计算机硬件(CPU、内存、显示器等)的只有操作系统内核(Kernel),图形界面和命令行只是架设在用户和内核之间的一座桥梁。

由于安全、复杂、繁琐等原因,用户不能直接接触内核(也没有必要),所以就需要另外再开发一个程序,使该程序的作用就是接收用户的操作(点击图标、输入命令),并进行简单的处理,然后再传递给内核。同时内核执行完成的结果,也经过该程序的处理,返回给用户。

如此一来,用户和内核之间就多了一层“代理”,这层“代理”既简化了用户的操作,也保护了内核。

用户界面和命令行就是我们所说的这个另外开发的程序,就是这层“代理”,在Linux下的这个命令行程序就叫做Shell。

Shell所处的位置如下图所示:

image

总结:

2、Shell的两种执行指令方式

(1)第一种方式:交互式(Interactive

是用户直接在Shell界面(终端界面)上执行Shell命令,由于Shell界面的关系,大家都习惯一行行的书写,很少写出成套的程序来一起执行,所以也称命令行。(换句话说我们操作的终端就是一个Shell)

(2)第二种方式:批处理(Batch

是用户事先编写一个Shell脚本文件,内含Shell脚本,而后使用Shell程序执行该脚本,这种方式我们习惯称为Shell编程。(简单的理解脚本就是一堆命令的集合。)

3、什么是Shell脚本

Shell脚本就是把命令、变量和流程控制语句等有机的结合起来。

Shell脚本擅长处理纯文本类型的数据,而Linux系统中,几乎所有的配置文件,日志文件,都是纯文本类型文件。

4、Shell 是一种脚本语言

任何代码最终都要被“翻译”成二进制的形式才能在计算机中执行。

有的编程语言,如JavaGo语言等,必须在程序运行之前将所有代码都翻译成二进制形式,也就是生成可执行文件,用户拿到的是最终生成的可执行文件,是看不到源码的。这个过程叫做编译(Compile),这样的编程语言叫做编译型语言,完成编译过程的软件叫做编译器(Compiler)。

而有的编程语言,如ShellJavaScriptPython等,需要一边执行一边翻译,不会生成任何可执行文件,用户必须拿到源码才能运行程序。程序运行后会即时翻译,翻译完一部分执行一部分,不用等到所有代码都翻译完。这个过程叫做解释,这样的编程语言叫做解释型语言或者脚本语言(Script),完成解释过程的软件叫做解释器。

编译型语言的优点是执行速度快、对硬件要求低、保密性好,适合开发操作系统、大型应用程序、数据库等。

脚本语言的优点是使用灵活、部署容易、跨平台性好,非常适合Web开发以及小工具的制作。

Shell 就是一种脚本语言,我们编写完源码后不用编译,直接运行源码即可。

拓展:对Shell的一些认知

  • Shell脚本是给自己或者团队内部用的,主要是实现功能,效率可以次之(甚至不考虑)。
  • Shell脚本思路越简单,脚本就有可能很长、很难看。
  • Shell语言不是很难,但是要求对Linux系统的熟悉程度比较高。

参考:http://c.biancheng.net/cpp/view/6994.html

标签:脚本,再学,程序,用户,介绍,Shell,内核,Linux
来源: https://www.cnblogs.com/liuyuelinfighting/p/15705969.html