shell

1.shell 是什么?

    shell 壳,Linux借鉴此意思,shell用于保护内核(kernel)
    从用户角度来看:shell是用户与操作系统沟通的桥梁
    从程序员的角度看:shell本身就是用C语言编写的程序
    shell担任翻译的角色,将用户输入的各种命令翻译成Linux能够识别的指令,称为命令解释器
    shell还是一门编程语言


2.shell类型   

    sh  bash ksh csh kcsh    ...
    查看当前系统上的shell
    cat /etc/shells

    查看当前使用的shell
    echo $SHELL

3.bash的特点

   1. 命令编辑

        记忆你使用过的指令,上下键可以找到之前使用的命令

        history查看历史指令

        vim .bash_history 历史指令就保存在该文件中,默认2000条
        vim .bashrc            一般在18、19、20行,去修改histfilesize

        !编号
        !指令

    2.补全功能(tab)

        指令补全
        文件名补全

    3.命令别名(alias)设定功能

        设定别名:
            alias lll='ls --Color=auto'
            alias rm='rm -i'
        取消别名
            unalias 别名 

    4.作业控制、前台 背台

        &
        jobs
        fg  n[编号]

        ctrl+z结束作业


    5.shell script

        .bat  批处理文件
        Linux中的shell功能更强大

4.管道  |

    xxx | xxx | xxxx ...
    把上一个命令的输出作来下一个命令的输入
    ps | sort | more

5.重定向   >   <

    简单说,就是将目前的所得数据转存在其它地方
    >>追加  >清空
    stdin         0<
    stdout        1>   从哦名
    stderr        2>

    make 2> /dev/null  //把错误信息直接输出到空设备文件中(直接扔掉)


6.shell编程:

    #!开头的行,表示用来解释该脚本的程序
    其它以#号开头的行都是注释

    echo 相当于printf

    变量
    条件
    程序控制
    函数

-------------------------------------------

7.变量

    1.环境变量

        永久的
        临时的

    2.自定义变量

    3.特殊变量

        $?    上一条指令的退出码


    小结:
        设置变量的规则:
        1.变量名与变量值以等号(=)连接
        2.等号两边绝对不能有空格
        3.变量名只能是字母和数字,其中,数字不能用于开头
        4.若变量值中含有空格,需要用引号把内容结合起来
            需要注意单引号与双引号的区别
        5.可以通过在变量名前面加一个$符号来访问该变量的值
        6.通常系统预设的环境变量都是大写字符,自定义变量建议用小字字母,方便判断

8.条件

    测试条件为真或为假
    能够测试  字符串、算术表达式、文件
        测试字符串
        test
            string1 = string2     相等则为真,否则为假
            string1 != string2     不等则为真,否则为假
            -n string             不为空,则结果为真
            -z string             为空,则结果为真

        测试算术表达式
            expression1    -eq expression2    等于
                        -ne                不等于
                        -gt                大于
                        -lt                小于从哦名
                        -ge                大于等于
                        -le                小于等于
                        !expression        如果表达式为真,则结果为假,反之,同理

            expr 1 + 3
            expr用于求表达式的值
        测文件
            -d file    是目录则为真
            -f file 是普通文件则为真
            -e file 存在则为真
            -r file   
            -w file
            -x file

        更多信息,请查看 man test

9.流程控制

    1.if语句的语法

        if test 条件
        then
            语句
        elif test 条件
        then
                语句
        else
            语句
        fi

    2.for语句的语法

        for 变量 in 值1 值2 ...
        do
            语句
        done

    练习:
        写一个脚本,寻找、打印用户目录下的所有的目录文件

    3.while语句的语法

        while 条件
        do
            语句
        done

    练习:
        求1-100的和

        5050

    4.case语句的语法

        case 变量 in
            匹配模式1)语句;;
            匹配模式2)语句;;
            ...
        esac

    5.break和continue

        参考C语言的用法

10.EL ${}

    可以用${}分别替换到不的值
    file=/home/csgec/a.txt

    var=${file#*/}  删除第一个 “/” 及其左边的所有字符
    var-->home/csgec/a.txt


    var=${file##*/}    删除最后一个“/”及其左边的所有字符
        a.txt


    var=${file%/*} 删除最后一个“/”及其右边的所有字符
        /home/csgec

    var=${file%%/*} 删除第一个“/”及其右边的所有字符



    var=${file:0:5}  /home   提取最左边的5个字符

11.函数

        要定义一个函数,只要写出它的名字,然后接一对空括号,再把函数体放到一对大括号中
        func()
        {
            echo "hello"
        }

    $0 $1 $2...
    $# 参数个数,不包括脚本名
    $* 所有的参数    不包括脚本名


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值