CentOS7.5 —— 基础操作(一)

Shell 脚本
    test 命令
        -eq    等于则为真
        -ne    不等于则为真
        -gt    大于则为真
        -ge    大于等于则为真
        -lt    小于则为真
        -le    小于等于则为真
        
        =    等于则为真
        !=    不相等则为真
        -z 字符串    字符串的长度为零则为真
        -n 字符串    字符串的长度不为零则为真
        
        文件相关的
            -e 文件名    如果文件存在则为真
            -r 文件名    如果文件存在且可读则为真
            -w 文件名    如果文件存在且可写则为真
            -x 文件名    如果文件存在且可执行则为真
            -s 文件名    如果文件存在且至少有一个字符则为真
            -d 文件名    如果文件存在且为目录则为真
            -f 文件名    如果文件存在且为普通文件则为真
            -c 文件名    如果文件存在且为字符型特殊文件则为真
            -b 文件名    如果文件存在且为块特殊文件则为真
        * 注 : Shell还提供了 与( -a )、或( -o )、非( ! ) 逻辑操作符用于条件连接;其优先级为:"!"最高,"-a"次之,"-o"最低.
        
        例:    if test $[num1] -eq $[num2]
                then
                    echo '两个数相等!'
                else
                    echo '两个数不相等!'
                fi
        
    echo 命令 (数据输出)
        echo string  * 命令格式
        echo "It is a test"                   显示普通字符串
        echo "\"It is a test\""              显示转义字符
        read name                              从控制台读取数据
        echo "$name It is a test"             显示变量
        echo -e "OK! \n" # -e 开启转义      显示换行   
        echo -e "OK! \c" # -e 开启转义 \c 不换行                显示不换行
        echo "It is a test" > myfile         显示结果定向至文件
        echo '$name\"'                        原样输出字符串,不进行转义或取变量(用单引号)
        echo `date`    * 显示当前时间            显示命令执行结果
    chkconfig (服务命令)
        chkconfig [--add][--del][--list][系统服务] 或 chkconfig [--level <等级代号>][系统服务][on/off/reset]
        --add              增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
        --del              删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
        --level<等级代号>  指定读系统服务要在哪一个执行等级中开启或关毕。    
            运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
            运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
            运行级别2:多用户状态(没有NFS)
            运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
            运行级别4:系统未使用,保留
            运行级别5:X11控制台,登陆后进入图形GUI模式
            运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
           例:chkconfig --level 服务 级别 状态
        在基本文件中编写    
            # chkconfig: 2345 20 80
            # description: Saves and restores system entropy pool for \
            # higher quality random number generation.
            
                #!/bin/sh
                #chkconfig: 2345 80 05
                #description: elasticsearch
                #author: taft
    系统操作
        sync 将数据由内存同步到硬盘中。
        halt 关闭系统,等同于shutdown –h now 和 poweroff
        reboot 就是重启,等同于 shutdown –r now
    sed 命令
        Linux sed 命令是利用脚本来处理文本文件。
        sed 可依照脚本的指令来处理、编辑文本文件。
        Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
            sed [-hnV][-e<script>][-f<script文件>][文本文件]
        
        -e<script>或--expression=<script> 以选项中指定的script来处理输入的文本文件。
        -f<script文件>或--file=<script文件> 以选项中指定的script文件来处理输入的文本文件。
        -h或--help 显示帮助。
        -n或--quiet或--silent 仅显示script处理后的结果。
        -V或--version 显示版本信息。
        -i :直接修改读取的文件内容,而不是输出到终端。
        -r :sed 的动作支持的是延伸型正规表示法的语法。(默认是基础正规表示法语法)
        
        a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
        c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
        d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
        i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
        p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
        s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如 1,20s/old/new/g 就是啦!
        
        例: sed -i 's/原字符串/新字符串/g' /home/1.txt  
            s 取代  g 全部
    shell 中的$0 $1 $* $@ $# $$ $? $() $(())
        $0: 脚本本身文件名称
        $1: 命令行第一个参数,$2为第二个,以此类推
        $*: 所有参数列表
        $@: 所有参数列表
        $#: 参数个数
        $$: 脚本运行时的PID
        $?: 脚本退出码
        $()  等同于: ··(反引号):运行一段命令
        $(()) 进行数字运算 
        
    流程控制
        ======
        if condition
        then
            command1 
            command2
            ...
            commandN 
        fi
        ===========
        if condition
        then
            command1 
            command2
            ...
            commandN
        else
            command
        fi
        ===========
        if condition1
        then
            command1
        elif condition2 
        then 
            command2
        else
            commandN
        fi
        ===========
        for var in item1 item2 ... itemN
        do
            command1
            command2
            ...
            commandN
        done
        ===========
        while condition
        do
            command
        done
        ===========
        while :
        do
            command
        done
        或者

        while true
        do
            command
        done
        或者

        for (( ; ; ))
        =========
        until condition
        do
            command
        done
        ============
        case 值 in
        模式1)
            command1
            command2
            ...
            commandN
            ;;
        模式2)
            command1
            command2
            ...
            commandN
            ;;
        esac
        =========
        break  跳出循环
        =========
        continue 继续
        =========
        esac
        case的语法和C family语言差别很大,它需要一个esac(就是case反过来)作为结束标记,每个case分支用右圆括号,用两个分号表示break。
            
         

发布了19 篇原创文章 · 获赞 4 · 访问量 1246

猜你喜欢

转载自blog.csdn.net/qq_41133533/article/details/98081800