美文网首页
Shell 编程

Shell 编程

作者: FX喂你袋盐 | 来源:发表于2017-11-13 21:55 被阅读50次

    Kali-LinuxShell编程

    【课程目的】

    1.掌握shell的基本命令

    2.掌握shell的基本概念和作用

    3.掌握shell环境变量概念和使用方法

    4.掌握shell程序的结构和设计方法

    【实现场景】

    1. VMware Workstation虚拟机

    2. Kali Linux操作系统

    【课程原理】

    1. shell的基本概念:

    shell就是用户与操作系统内核之间的接口,起着协调用户与系统的一致性和在用户与系统之间进行交互的作用。

    shell在linux系统中具有极其重要的低位。

    2. Shell脚本

    Shell最强大的功能在于它是一个功能强大的编程语言。用户可以在文件中存放一

    系列的命令,这被称为Shell脚本或Shell程序,将命令、变量和流程控制有机地

    结合起来将会得到一个功能强大的编程工具。

    3. Shell脚本结构

    Shell结构中主要包括三部分:

    #!指定执行脚本的shell类型

    #代码注释行

    命令可控制结构

    #!/bin/bash

    #Thisis my first shell script.

    cd/root

    ls-l

    mkdirf1

    cdf1

    vif1

    chmod+x f1

    cd

    /root

    注:编写的shell脚本默认是不可执行的,需要用chmod命令更改文件权限

    4.执行shell脚本的方法

    a)输入定向到shell脚本。脚本后不用带参数

    例如:root@kali:~# bash

    b)以脚本名作为shell命令的参数,一般形式:shell名脚本名[参数]

    例如:root@kali:~# bashf1

    c)使用‘.’命令。一般形式:. /脚本名

    例如:root@kali:~# . /f1

    5. Shell语法

    a) Shell变量

    变量用来存储数据,与其他编程语言相比,shell的变量要简单的多,不需要

    指定类型。格式:

    变量名=变量值

    注:等号两侧不能有空格,变量名是以字母、下划线开头的字母、下划线和数

    字的组合,区分大小写。

    引用变量值时在变量前加‘$’符号,如:echo $ name

    b)位置变量

    shell解释执行用户命令时,将命令的第一部分作为命令名,其它部分作为参数,由出现在命令行上的位置确定的参数称为位置参数。

    例如:ls–l file1 file2 file3

    file4

    $0代表此程序的文件名ls–l

    $n代表此程序的第n个参数值,n=1-9,$1=file1

    c) read命令

    从键盘读取数据赋值给变量

    例如:#!/bin/bash

    read one two three

    echo“This is $one.”

    echo“This is $two.”

    echo“This is $three.”

    d) expr命令

    对整数型变量进行算数运算

    例如:expr 3 + 5

    expr $nu - 5

    expr $nu1 / $nu2

    e)变量测试语句

    用于测试变量是否相等、是否为空和文件类型等

    格式:test测试条件或[测试条件]

    例如:test n1–eq n2或[ n1–eq n2 ]

    字符串测试

    测试条件含义

    st1 = st2 st1与st2相等为真

    st1!= st2 st1与st2不相等为真

    s s不为空时为真

    -n s s的长度大于0为真

    -z s s的长度为0时为真

    数值测试

    n1–eqn2 n1是否等于n2 n1–gen2 n1是否不小于n2

    n1–nen2 n1是否不等于n2 n1–ltn2 n1是否小于n2

    n1–gtn2

    n1是否大于n2 n1–len2 n1是否不大于n2

    文件测试

    -r file文件是否可读

    -w file文件是否可写

    -x file文件是否可执行

    -f file文件是否为普通文件

    -d file文件是否为目录

    -s file文件的内容是否大于0

    f)分支结构if

    if分支结构的语法形式

    if [条件测试1]

    then

    执行命令1

    Elif[条件测试2]

    then

    执行命令2

    „„

    else

    执行命令n

    fi

    多个条件时可以用逻辑运算符组成测试表达式

    -a逻辑与

    -o逻辑或

    !逻辑非

    g)分支结构case

    case经常用于多重分支结构,其语法形式为;

    case字符串in

    匹配字符串1)

    执行命令1;;

    匹配字符串2)

    执行命令2;;

    „„

    匹配字符串n)

    执行命令n;;

    esca

    h)循环结构while

    while结构语法形式

    while条件测试

    do

    执行命令

    done

    执行流程为:只要条件测试的结果为真,就执行do和done之间的循环体,

    再进行条件测试,然后执行循环体,直到条件测试的结果为假为止。

    i)循环结构until

    until结构的语法形式

    until条件测试

    do

    执行命令

    done

    其执行流程为:只要条件测试的结果为假,就执行do和done之间的循环

    体,直到条件测试的结果为真为止。

    j)循环结构for

    for循环结构的语法形式为

    for变量in值表

    do

    执行命令

    done

    其执行流程为:第一次循环时将值表中的第一个值赋给变量,执行循环体,

    第二次循环时将值表中的第二个值赋给变量,执行循环体,以此类推直到值表

    值全赋值给变量循环结束。

    在执行循环时命令break和continue可以跳出循环

    break跳出整个循环

    continue跳出本次循环,继续下次循环

    k)函数应用

    在shell脚本中可以定义并使用函数,函数要先定义后使用,定义函数的

    语法形式为:

    函数名()

    {

    执行命令序列

    }

    注:函数中变量均为全局变量无局部变量

    相关文章

      网友评论

          本文标题:Shell 编程

          本文链接:https://www.haomeiwen.com/subject/vlytvxtx.html