Shell的使用

1.shell是什么

2.语法

1.文件命名

2.编写脚本

3.运行脚本

4.定义变量与引用

5.数组

6.流程控制

1.分支 if

2.循环 for while

7.分割字符串

1.str

2.IFS变量分割

8.文本分析工具

1.awk

2.sed

1.shell是什么
1.普通文件
2.linux命令组成
3.编译语言
2.语法
1.文件命名
1.文件命名结尾一般以 .sh 结尾
2.文件内容 第一行 #!/bin/bash (以#!/bin/bash 进行解析)
2.编写脚本
worldcount 词频统计
[hadoop@bigdata13 test]$ cat 1.sh
#!/bin/bash
echo “helloworld”

3.运行脚本  sh
    1.[hadoop@bigdata13 test]$ sh 1.sh 
      helloworld
    2.给脚本赋予权限  
        文件颜色变绿
        可以之间执行 ./1.sh
        [hadoop@bigdata13 test]$ chmod 744 1.sh 
        [hadoop@bigdata13 test]$ ll
        -rwxr--r--. 1 hadoop hadoop  30 12月 14 16:35 1.sh
    3.补充:
           debug
               1.#!/bin/bash -x 
               2.sh -x 1.sh
4.定义变量与引用
    1.变量的命名规范
        1.命名只能使用英文字母、数字、下划线,不能以数字开头
        2.中间不能有空格,可以使用下划线
        3.不能使用linux里的关键字
    2.定义变量
        key=value
        注意:
            1. = 前后不能有空格  
    3.引用
        [hadoop@bigdata13 test]$ cat 1.sh 
        #!/bin/bash
        name="zs"
        dt="date"
        echo ${name}
        echo ${dt}

        [hadoop@bigdata13 test]$ ./1.sh
        zs
        date

        name="zs" 静态变量
        dt1=·data 动态变量
        引用:$k
              ${k}
    4.传递参数
        脚本内获取脚本外参数: 格式$n
             1.n=1 第一个参数...
             2.n=0 获取脚本名字
             3.n=# 获取参数的个数
             4.n=* 将参数作为以个字符串
             5.n=$ 脚本的pid  
    5.数组
        语法格式:
             1.元素用空格分隔
             2.arr=(value1 value2 value3...)
             2.格式   ${arr[n]} 
                1.所有数组元素   ${arr[*]}
                2.第二个元素     ${arr[1]}
                3.数组多少个元素  ${#arr[*]}
    6.流程控制
        1.分支
            1.if else语法
               语法结构
               if condition then
                   command
                elif
                   command               
                else
                   command
                fi
            2.condition 条件判断
                [ 表达式 ] 表达式前后都要有空格
              1.值判断
                = 等于
                == 等于
                -ne 不等于
                -lt 小于
                -gt 大于
                -le 小于等于
                -ge 大于等于
              2.权限判断
              3.文件类型判断
            3. $? 获取上一个命令是否执行成功
                成功 0 true
                不成功 非0 false

        2.循环
            1.for
               语法格式 
                1.for x in item1 item2 ...
                  do
                   commond
                   done  

                2.for ((i=0;i<=10;i++))
                do
                  commond
                done
            2.while
                语法格式
                while condition
                do
                    todo
                done 

                例:i=1
                  while [ i<=10 ]
                  do  
                     echo "${i}"
                     let i++
                  done
    7.分割字符串
        1.
        str//,/ 把,号变成空格
        
        例:
        str="zs,ls,wu"
        arr=(${str//,/})  
        2.IFS变量分割             
            data="chenyu, chencaifeng, chenzixuan, chenzixi"
            oldIFS=$IFS
            IFS=", "            
            for item in $data;
            do
             echo Item:$item
            done


    8.文本分析工具
        1.awk 文本分析
              1.获取第一列和第二列数据
                cat 1.log|awk '{pink $1 $2}'
                2.获取行数据
                cat 2.log|awk  'NR=1{pink}'
        2.sed 文本替换
            1.把a换成d
               sed -i 's#a#d#g'  1.log   有g为全局替换
                                         无则为每行第一个替换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值