shell编程:
编译器:也叫解释器 shell给我们提供另外一个功能: 编程语言:将人类的语言转变成机器可以理解的语言 机器语言(01代码),汇编语言(依然很低层,成长周期比较长,学习起来也比较困难) 高级语言(尽管如此,它也不是人类的语言,但是最接近人类的语言)
静态语言: 编译型语言(有程序开发环境,不需要借助额外的二进制程序,直接写代码,写完之后需要一个编译器,将代码放到编译器就可以交给硬件形成一个独立运行的程序,我们就把他叫做静态语言) 事先转换成可执行的格式 所需要的重要的一个特征:强类型(变量) 关键字: 执行之前就要完全转换,事先转换成可以执行的格式程序 像C,C++,JAVA,C#(不需要任何解释器,自我就能运行) 动态语言:解释型语言 on the fly (一个代码我们程序员写完以后,他不需要转换成二进制格式,而是有一个解释器,解释一条,执行一条,也就是在执行以后在进行转换) (通常)弱类型:边解释边执行 像PHP,SHELL,Python(非常流行的,面向对象的,很多游戏脚本都是用python),perl(早前流行的:读音:po(破))
bash:最易学,最容易上手的就是SHELL 如果能学好python就是如虎添翼,添加了很多翼。 perl面向过程的,虽然perl6加上了对象,但是现在由于各种原因也流行不起来 事实上很多脚本是python研发的,在学习学了多年的计算机,都没有学过python,所以学校学的是脱节的。
面向过程:相对开发小型的应用程序:shell,c 把编程着眼点主要在于问题解决的过程本身 面向对象:相对开发大型的应用程序:JAVA(纯面向对象语言),Python(纯面向对象语言),perl,c++ 含义:把整个我们要实现的项目抽象一个个对象,并定义对象之间的动作,就是可发出的操作来完成的,所以这个更适合开发大型程序 不过任何工具都是双刃剑(菜刀可以杀人也可以切菜)
要想理解编程,必须要理解变量 变量(不断变化的量):是内存空间,命名的内容空间(就是不断变化的量,存储在某一个内存的存储空间,根据地址就可以找到这个) 内存是存址的存储单元 我们通过变量和内存地址相对应,所以我们看到的是变量,比如a,其实它对应的是一个内存的地址空间。
什么是脚本? 如何去写脚本:其实就是命令的堆砌,是按照实际需要,结合命令流程控制机制实现的源程序的脚本。 Linux只能识别ELF格式去执行的(也就是脚本的第一行必须是#!/bin/bash,bash是解释器,/bin/bash 是解释器路径),这样才能然一个ASCII格式的文本可以被执行
我们的文件几乎都是是ACISS格式的 所以我们想运行脚本文件,必须是在文件的第一行用
#!/bin/bash (而后再出现的#就是注释的#(也就是当做有效的组成部分)) 所以一执行这个文件,就会读到第一行,就会用bash的编辑器去运行 并且要知道shell脚本的文件要用.sh后缀,就像是本地仓库要用.repo一样