Linux之哲学思想

    一切皆文件

    避免交互,实现Bash编程

    文本编程命令实现配置

    组合小程序完成复杂任务


总结

    过程式编程

    对象式编程

    编译执行

    解释执行

    程序的组成

    数据可存储的位置

    数据类型的字符和数值存储的区别

    变量类型,即为内部数据的类型


    bash

     格式:shebang -> cpu ->解释器

     过程式编程、解释执行

     变量的类型为:弱类型 

     变量类型的作用   


11)Bash编程


编程风格:过程式编程、对象式编程


过程式编程:目的解决问题

    以指令为中心组织数据,由指令决定数据组织。数据服务于指令,指令的堆积

    为了完成复杂的任务

        顺序执行:逐个运行任务

        选择执行:有一个标准,只执行某些代码片段

        循环执行:让某些代码片段重复执行N次

对象式编程

    以数据为中心,组织指令


编程执行的方式


    编译执行:c,java 先翻译后执行:高级语言 --> 编译 --> 目标代码 --> 汇编 --> 二进制指令

    解释执行:shell,python,java 边翻译边执行,为了避免语境的错乱,先对程序进行语法检查后,都会进行翻译:解释型语言-->解释器-->目标代码



 

解释执行的特性

    纯文本、魔数为一个指明解释器路径的代码

    由解释器执行源程序

    CPU上运行的为解释器,由解释器运行文本

        

魔数:源码编译为二进制后,文件的前n个字节,用于判断可执行程序的格式

编程语言的结构

    数据存储:变量、数组

    表达式、语句

    

编程语言,为了使编程简洁

    操作系统提供库

    提供解释器

    

shell程序:

    过程式编程、解释执行


shell编程特性

    直接调用系统程序

    命令的堆砌

    严重依赖操作系统的环境

    

shell脚本的格式:

    必须有固定的格式:首行为魔数

    必须能读取$PATH的值,bash严重依赖PATH查找执行程序文件

    

运行脚本:

    1、给予权限、通过具体的路径指定文件执行

    2、直接解释执行,将脚本作为解释器程序的参数执行


2、变量

    变量名:用名字可引用的命令的内存空间,用名字即可调用事先划分的内存空间,内存空间的名字

    变量: 单个命令的内存空间

    程序 = 指令  + 数据

    数据可存储在变量、数组、列表、文件

    

    变量中存储的数据的类型

    字符型:用二进制位表示所有变化。例如 2^16表示所有汉字的5000种变化,这种规定有GBK2313,GB18030等。用2^8表示所有数字、字母、特殊字符的127种变化,美国规定的ASCII码表

    所以存储一个汉字时,用16位即可 ,存储一个数字时,用8位即可


    数值型

        整型,数值型数据例如110十进制转换为二进制数即可:110 --> 1101110 用7位即可

        浮点型 浮点数是数学中数的子集合,由一个纯小数乘上一个指数值来组成。在计算机内,其纯小数部分被称为浮点数的尾数,对非0值的浮点数,要求尾数的绝对值必须>=1/2,称满足这种表示要求的浮点数为规格化表示

            

    *任何数据都能被这两种类型包含

    今天:字符用16 + 16位即可

    相当于UNIX元年的天数


布尔型

1:true bash中用 命令的状态结果的0表示 

0:  false bash中用命令的状态结果的1-255表示

逻辑运算:

与: 电路串联,同时为true结果为true,其他均为假。

或: 电路并联,一个为true结果为true,其他均为假。

非:电路的电磁感应,对运算的结果取反,非true为false. 非false为true

短路运算:

与: 左侧为false,结果为false.左侧为true,第二个必须要参与运算

或: 第一个为true,结果为true.左侧为false,第十个必须要参与运算

     

运算:

    全为字符型: 10 + 110 = 10110

    全为数值型: 10 + 110 = 120


    数据类型不统一,运算就会混乱


2)变量

变量的类型

    变量的类型即是变量中数据存储的类型


变量类型的作用:

    决定参与的运算

    决定变量的数据范围:整型为4个字节,32位,2^32=40多亿个数字,超出时,溢出

    决定数据的存储格式


变量类型

    字符

    数值

        整型 

        浮点型


    强类型和弱类型

        强类型:必须申明变量为字符或数值型

        弱类型:不用事先申明变量为字符或数值型,shell

    

弱类型的特性

    统一存储为字符型

    如果需要用到运算时,会隐式转换为数值型