Linux基础知识之脚本初级编程

1.编程语言的分类:机器语言,汇编语言,高级语言

    高级语言:

        静态语言:编译型语言 在程序执行之前就会编译成机器代码(完全转化完成)

        强类型(变量)

        关键字:在程序运行之前,先编译成机器代码

            C\C++\JAVA\C# 都属于静态语言类

        不需要任何解释器,自我就可以运行的程序

    动态语言:解释型语言 在程序运行之后编译,使用一条编译一条代码

        弱类型(通常)

        边解释边执行

            PHP\SHELL\python\perl

2.编程的分类:面向过程与面向对象

    面向过程:shell,C

        编程时,立足于解决问题的过程本身

        更适合来发小型程序 Linux内核是面向过程的C语言开发的

    面向对象:JAVA,Python,perl,C++

        编程时,把要实现的任务看做是一个一个的对象,来编程,并且定义对象之间的动作,开发出的操作来完成的

        适合开发大型程序

3.变量、内存与进程

    变量:命名的内存空间

    内存:编址存储单元

     进程:命令的具体的执行过程

        10:字符:需要16bit

        10:数值:需要8bit(1010)

4.变量类型:事先确定好数据的存储格式和长度

    字符型

    数值型:整型,浮点型(带小数的eg:11.23,小数点之前作为一个单位存放,小数点之后作为一个单位存放,然后存储一下小数点的位置)

5.逻辑运算:与、或、非、异或

     与:全真才为真,有假便为假

    或:有真便为真,全假才为假

    非:(单目运算符  !)对真取反为假,对假取反为真

    异或:操作数相同则为假,操作数不同才为真

6.shell脚本编程:面向过程的

编译器:解释器

所有的脚本,都需要解释器,解释执行,解释器本身,基本上都是静态语言开发的

bash:运行bash 首先系统中有一个可以运行bash的编译器(脚本解释器)

shell:弱类型编程语言

    强类型:变量在使用前,必须事先声明,甚至还需要初始化。

    数值初始化为0,字符初始化也为空

    NULL:空

    弱类型:变量用时声明(随时用随时声明),甚至不区分类型(默认为字符串)

7.显式转换与隐式转换:

    显式专换是你定义让这个值类型转换成你要用的值类型,例,你定义int i=5,想把他专换成char类就用显式转换(char)i。

    隐式转换是系统跟据程序需要而自动转换的,不需要定义,但并不是所有值类型都可以互相转换,所以有了显式转换。例,int i=5; char j='a'; int n=i+j;因char可以隐式专换为int类型,所以结果n=102

8.变量赋值与撤销:

    VAR_NAME=VALUE

    unset VARNAME :只需要说明变量名就行,不需给此变量赋值

9.bash变量类型:

    环境变量:作用域为当前shell进程及其子进程 

        export VARNAME=VALUE:变量先导出

        VARNAME=VALUE     export VARNAME  :变量后导出

    引用变量:${VARNAME}

        下面没有表示可以引起变量名混淆的,就可以不用加{},否则就必须加{}.

        echo+'':表示强制引用,echo+"":表示弱引用,可以替代里面的变量名。

    本地变量(局部变量)

        本地变量:

            set(set往往省略) VARNAME=VALUE:作用域为整个bash进程

        局部变量:

            local VARNAME=VALUE:作用域为当前代码 

        位置变量:引用脚本的参数

            $1,$2,$3……..

        特殊变量(bash,为了保存某些特定的数值)

            $?:保存上一个命令执行状态返回值(以后用的非常多)

10.脚本在执行时,会启动一个子shell进程:

    环境变量对子shell是有效的

    命令行中启动的脚本会集成当前shell的环境变量

    系统自动执行的脚本(非命令行启动),需要自我定义需要的各环境变量

11.程序执行可能有两种返回值:$?

    程序执行结果

    程序状态返回代码(0-255)

    0:正确执行

    1-255:错误执行

    1,2,127:系统预留,有特殊的含义

12.输出重定向

    /dev/null:设备模拟设备,bit bucket,数据黑洞

13.查看当前shell中的变量

    set包括环境变量和本地变量

    查看当前shell中的环境变量:

    printenv

    env

    export

14.shebang:魔数

#!/bin/bash

脚本中#开头的行都是注释行,不执行

原创文章,作者:sjsir,如若转载,请注明出处:http://www.178linux.com/35742

(0)
上一篇 2016-08-15 14:31
下一篇 2016-08-15 14:31

相关推荐

  • Redis 代理服务Twemproxy

    1、twemproxy explore       当我们有大量 Redis 或 Memcached 的时候,通常只能通过客户端的一些数据分配算法(比如一致性哈希),来实现集群存储的特性。虽然Redis 2.6版本已经发布Redis Cluster,但还不是很成熟适用正式生产环境。 Redis 的 Clust…

    Linux干货 2015-04-04
  • inode概念总结

    一、inode  inode是类UNIX系统上文件系统中的一种数据结构。数据在磁盘上存储是按扇区存放的,几个扇区组成一个块(block),操作系统为高效读取磁盘上的数据,按block来读取。而数据存放的block的地址就包含在inode里。 二、inode的存储信息  每个inode保存一个文件系统对象(目录,文件,管道,软连接,sock…

    Linux干货 2016-08-05
  • Linux文件三剑客sed命令用法详解

    sed是一种流编辑器,它是文本处理中非常强大的工具,能够完美的配合正则表达式使用,用法简单实用,非常灵活。        工作原理:sed命令处理文本时,把当前处理的行存储在一个临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。 在…

    2017-06-24
  • 解决CentOS SSH 连接慢

    1、关闭DNS反向解析在linux中,默认就是开启了SSH的反向DNS解析,这个会消耗大量时间,因此需要关闭。配置文件路径 vim /etc/ssh/sshd_configUseDNS=no 在配置文件中,虽然UseDNS yes是被注释的,但默认开关就是yes 2、关闭SERVER上的GSS认证在authentication gssapi-with-mic…

    Linux干货 2018-01-10
  • Linux下的I/O重定向与管道

    一、I/O设备     Linux中,对系统进行操作时,就需要I/O设备与系统产生交互,同时会产生三种数据,标准输入(0)、标准输出(1)、标准错误(2)。其中标准输入(stdin)默认接受来自键盘的输入,标准输出(stdout)和标准错误(stderr)默认向终端窗口输出,改变默认输出和出入的位置,就是I/O重定向。 二、输出重定向到文…

    Linux干货 2016-08-04
  • shell编程之循环及函数

    for 循环 for 变量名 in 列表;do    循环体 done   执行机制: 依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中 的元素耗尽,循环结束   列表生成方式: (1)直接给出列表 (2)整数列表: (a) {start..end} (b) $(seq [start [s…

    Linux干货 2016-08-24

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-16 14:41

    总结的很好,可以适当的加上自己在练习过程中的问题,做到理论和实践统一哦。作业需要在后面附上