引言:从认识到学习脚本这么久以来,从未对其做完整的归纳和整理使其形成完整知识框架。今天借此机会希望通过下面一连串的问题,逐步打开Scripts体系的大门,希望通过此专栏能帮助大家一点点剖析出脚本语言的类型和知识框架及用法,如有不足和错误之处还望大家不吝指教。🙏🙏🙏
脚本语言(Scripts)?脚本(Script)是使用一种特定的描述型或
解释型语言,依据一定的格式编写的可执行文件。那脚本语言的定义就是对脚本定义进步一的具象化:脚本语言又被称为扩建的语言, 或者动态语言, 是一种编程语言, 用来控制软件应用程序, 脚本通常是以文本 (ASCⅡ) 保存, 只是在被调用时进行解释或者编译。
备注:摘录自百度百科;脚本定义;上文提到一个关键词“解释型语言”不知道大家有没有留意到,有咩有产生疑问什么事解释型语言呢?或者是怎样的语言才能被称为解释型语言呢,大家可以继续看下面问题。
解释型语言?提到解释型语言就一定躲不过编译型语言,只要搞清楚两者之间的关系,那么就会对计算机语言执行过程有个更加清晰的认知。大家根据下面规则可以很清晰辨别出自己学的语言属于那种类型,那么脚本语言不言而喻就属于“编译型语言”。
- 编译型语言:
编写-编译-链接-运行包含四个过程- 解释型语言:
解释-执行包含两个过程(说人话就是一边编译一边执行)
脚本语言有哪些呢?常见的脚本语言有:Scala、JavaScript,VBScript,ActionScript,MAX Script,ASP,JSP,PHP,SQL,Perl,Shell,Python,Ruby,JavaFX,Lua,AutoIt等。
经过上面的对脚本(Script)语言的概念铺垫,想必大家对脚本语言有了一个初步的认知。接下来我们继续探究脚本语言相关分类和知识体系,而我们今天重点探究shell脚本。
Shell脚本?Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种
命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。例如:Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
补充:Shell 脚本(shell script)是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,但希望大家区分shell 和 shell script 是两个不同的概念。由于习惯和简洁的原因,日常出现的 "shell编程" 都是指 shell 脚本编程,不是指开发 shell 自身,希望大家区分shell、shell script关系。
Shell的基本分类有哪些?Shell分为图形界面shell和命令行shell两大类,如Windows的资源管理器explorer.exe和cmd命令窗口。不同系统有不同的shell,如bash、C shell、windows power shell 等等;在linux系统中,通常是Bourne Again shell ( 即bash)。上图提供了一些shell相关的分类信息以供大家参看。
Shell内部交互结构?操作系统可以分成核心(kernel)和Shell(外壳)两部分,其中,Shell是操作系统与外部的主要接口,位于操作系统的外层,为用户提供与操作系统核心沟通的途径。Shell是一个命令解释器(也是一种应用程序),处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户。同时,shell也可以作为一门强大的编程语言。
Shell脚本常见的环境类型有哪些?Shell作为一种解释型语言其编程跟 JavaScript、php类似,只需具备文本编辑器和解释执行器就可以开始shell语言的编程。除此之外我们还要知道shell常见的环境类型有哪些,这有助于我们形成一个完整的shell知识框架体系。Linux 的 Shell 种类众多,常见的有:
- Bourne Shell(/usr/bin/sh或/bin/sh)
- Bourne Again Shell(/bin/bash)
- C Shell(/usr/bin/csh)
- K Shell(/usr/bin/ksh)
- Shell for Root(/sbin/sh)
……
备注:在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以像 #!/bin/sh,它同样也可以改为 #!/bin/bash,Linux系统默认的 Shell就是Bash(Bourne Again Shell)。
DOS是英文Disk Operating System的缩写,意思是“磁盘操作系统”,顾名思义,DOS主要是一种面向磁盘的系统软件。
说得简单些,DOS就是人与机器的一座桥梁,是罩在机器硬件外面的一层“外壳”,有了DOS,就不必去深入了解机器的硬件结构,也不必去死记硬背那些枯燥的机器指令。只需通过一些接近于自然语言的DOS命令,就可以轻松地完成绝大多数的日常操作。此外,DOS还能有效地管理各种软硬件资源,对它们进行合理的调度,所有的软件和硬件都在DOS的监控和管理之下,有条不紊地进行着自己的工作,但是在操作不慎情况下也会死机。说简单点DOS就是由下面五部分组成的一个完整的操作系统。
- 引导程序( BOOT ):由格式化程序直接写入磁盘初始扇区。
- 基本输入/输出管理程序(PC-DOS为IBMBIO. COM、MS-DOS为IO.SYS)。
- 文件管理和系统功能调用程序(PC-DOS为IBMDOS.COM、MS-DOS。为MSDOS.SYS)。
- 命令处理程序(COMMAND. COM)。
- 各种外部命令:完成各种辅助功能的可执行文件。
备注:摘录自百度百科;DOS定义
通过上面问题的解答大家应该对DOS有了大致的了解。DOS是区别于Windows之外独立操作系统。Windows中的CMD分为两个类型一个是基于图形化界面(GUI)的explorer.exe(资源管理器)和命令行式(CLI)的shell(Ctrl + R 输入CMD;直接在文件系统中路径栏输入CMD),它实质上是一个接口,类似于上一个问题中DOS组中的命令处理程序(COMMAND. COM)
参考文章:
[1]Scripts(脚本语言)、Shell、Sh、Bash之间的关系.https://zhuanlan.zhihu.com/p/268407319[EB/OL].
[2]编译型语言和解释型语言的区别.http://c.biancheng.net/view/4136.html[EB/OL].
[3]shell、cmd、dos和脚本语言区别和联系.https://www.cnblogs.com/steamedfish/p/7123749.html[EB/OL].