Error[8]: Undefined offset: 66, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

大数据学习教程SD版—第一篇【shell】

文章目录

1.shell

Shell 命令行解释器,Linux的脚本编程语言

1.1 变量
  1. 常用系统变量:$HOME $PWD $SHELL $USER……
  2. 严格的空格规则
  1. bash中默认类型都是字符串类型
  2. export 提升变量为全局变量
  3. ∗ 获 取 所 有 参 数 , 可 直 接 用 于 f o r 循 环 , 用 “ * 获取所有参数,可直接用于for循环,用“ ∗获取所有参数,可直接用于for循环,用“*”,则把会进行拼接 *** 作
  4. 脚本名 , 1 − 9 参 数 , 1-9 参数, 1−9参数,# 获取参数个数
  5. @ 获 取 所 有 参 数 , 转 成 列 表 , 用 “ @ 获取所有参数,转成列表,用“ @获取所有参数,转成列表,用“@”,效果一样
  6. $? 获取上条命令返回值
  7. 数值运算方式:$(()) 、 $[]、expr
1.2 运算符
  1. 乘法运算符:
  2. 在[]内部为*  在expr中为*
    
  • 数值比较判断:-lt -le -eq
  • 1.3 条件判断
    1. 文件权限判断:-r -w -x
    2. 文件类型判断:-f -e -d
    3. 字符串比较判断:=
    4. 多条件判断:&& 与 || 或
    5. if 选择语句:
    1.4 流程控制
      if [ xxx ];then
      	xxx
      elif [ xxx ];then
      fi
      
  • case选择语句:
    1. case $var in 
      xxx)
      	xxx
      ;;
      xxx)
      	xxx
      ;;
      *)
      	xxx
      ;;
      easc
      
  • for 循环语句:
    1. for ((xxx;xxx;xxx))
      do
      	xxx
      done
      
    for item in x y z
    do
    	xxx
    done
    
  • while 循环语句:
    1. while [ xxx ]
      do
      	xxx
      done
      
  • 系统函数
  • 1.5 控制台输入
    1. read xxx

      -p “提示信息”

      -t 等待时间s

    1.6 函数
      basename /home/aaa/example.txt   # out:expample.txt
      basename /home/aaa/example.txt .txt #out:example
      
    1. 自定义函数

    2. cut :裁剪数据, 默认“t”
    1.7 工具
      ifconfig eth0 |grep inet|cut -d " " -f 10   # 切出linux本机IP地址,版本不同,显示不同
      
       "na xxx" # 表示在第n行下面插入xxx
      
      awk -F "x" '/pattern/ {action}' filename #找出匹配到pattern的行,以“x”分割,执行action动作
      
      BEGIN END # 匹配行的开头和结尾
      -v i=1 # 后续使用变量i时,不需要使用$i,直接使用 i 即可
      
    1. -n : 按照数值大小排序number
    awk '/^$/ {print NR}' file.txt
    
    1.8 题库
    1. 查询file.txt中空行所在的行号

      cat file.txt |awk -F " " '{sum+=} END{print sum}'
      
    2. 计算file.txt第二列的和并输出[每一行的格式为:name score]

      if [ -f file.txt ];then
      	echo "exists"
      else
      	echo "not exsits"
      fi
      
    3. shell 检查文件是否存在

      sort -n file.txt
      
    4. 对数字文件进行排序

      grep -r "xxx" /home |cut -d ":" -f 1
      
    5. 查找/home 文件夹下所有文本,文本内容包含“xxx”的关键字

      [+++]
    )
    File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
    File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
    File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
    大数据学习教程SD版—第一篇【shell】_随笔_内存溢出

    大数据学习教程SD版—第一篇【shell】

    大数据学习教程SD版—第一篇【shell】,第1张

    大数据学习教程SD版—第一篇【shell】

    文章目录
    • 1.shell
      • 1.1 变量
      • 1.2 运算符
      • 1.3 条件判断
      • 1.4 流程控制
      • 1.5 控制台输入
      • 1.6 函数
      • 1.7 工具
      • 1.8 题库

    1.shell

    Shell 命令行解释器,Linux的脚本编程语言

    1.1 变量
    1. 常用系统变量:$HOME $PWD $SHELL $USER……
    2. 严格的空格规则
    • 等号两侧不能有空格
    • 变量中存在空格,可以使用“”或者()包裹
    • expr 运算符间必须要有空格
    • 条件判断[] 内部左右两侧都要有空格
    • if、while、for 后要有空格
    1. bash中默认类型都是字符串类型
    2. export 提升变量为全局变量
    3. ∗ 获 取 所 有 参 数 , 可 直 接 用 于 f o r 循 环 , 用 “ * 获取所有参数,可直接用于for循环,用“ ∗获取所有参数,可直接用于for循环,用“*”,则把会进行拼接 *** 作
    4. 脚本名 , 1 − 9 参 数 , 1-9 参数, 1−9参数,# 获取参数个数
    5. @ 获 取 所 有 参 数 , 转 成 列 表 , 用 “ @ 获取所有参数,转成列表,用“ @获取所有参数,转成列表,用“@”,效果一样
    6. $? 获取上条命令返回值
    7. 数值运算方式:$(()) 、 $[]、expr
    1.2 运算符
    1. 乘法运算符:
    2. 在[]内部为*  在expr中为*
      
  • 数值比较判断:-lt -le -eq
  • 1.3 条件判断
    1. 文件权限判断:-r -w -x
    2. 文件类型判断:-f -e -d
    3. 字符串比较判断:=
    4. 多条件判断:&& 与 || 或
    5. if 选择语句:
    1.4 流程控制
      if [ xxx ];then
      	xxx
      elif [ xxx ];then
      fi
      
  • case选择语句:
    1. case $var in 
      xxx)
      	xxx
      ;;
      xxx)
      	xxx
      ;;
      *)
      	xxx
      ;;
      easc
      
  • for 循环语句:
    1. for ((xxx;xxx;xxx))
      do
      	xxx
      done
      
    for item in x y z
    do
    	xxx
    done
    
  • while 循环语句:
    1. while [ xxx ]
      do
      	xxx
      done
      
  • 系统函数
  • 1.5 控制台输入
    1. read xxx

      -p “提示信息”

      -t 等待时间s

    1.6 函数
      basename /home/aaa/example.txt   # out:expample.txt
      basename /home/aaa/example.txt .txt #out:example
      
    • basename 文件名截取

      dirname /home/aaa/example.txt # out:/home/aaa
      
    • dirname 文件路径截取

      function funname(){
      	xxx
      }
      # 由于shell脚本是逐行运行,所以调用函数前必须先声明
      # 函数的形参,通过$n指定,调用函数方式:funname $x $y ……
      
    1. 自定义函数

    2. cut :裁剪数据, 默认“t”
    1.7 工具
      ifconfig eth0 |grep inet|cut -d " " -f 10   # 切出linux本机IP地址,版本不同,显示不同
      
    • -f:列号,多列用“,”连接,范围用“-”

    • -d:分隔符

    • sed: 流编辑器,一次处理一行,不会改变源文件内容
       "na xxx" # 表示在第n行下面插入xxx
      
    • -e edit的缩写,在多个命令之前的短选项

      • a 新增add

        "/xxx/d" # 表示删除xxx的那一行
        
      • d 删除 delete

        "s/old/new/g" # 表示把old替换成new
        
      • s 替换 replace

      • awk: 文本分析工具,逐行读入,以分隔符进行切割,默认分割符“ ”
      awk -F "x" '/pattern/ {action}' filename #找出匹配到pattern的行,以“x”分割,执行action动作
      
      BEGIN END # 匹配行的开头和结尾
      -v i=1 # 后续使用变量i时,不需要使用$i,直接使用 i 即可
      
    • -F : 指定分隔符

    • -v : 定义变量

    • FILENAME :文件名
      • 内置变量
        • NR: 行号
        • NF: 每行切割后的列数
        • ifconfig eth0|grep inet|awk -F " " '{print }' # # 和cut一样切出linux本机IP地址,版本不同,显示不同
          
    • sort : 文件排序
    1. -n : 按照数值大小排序number
    • -r : 反转排序reverse
    • -t : 指定排序所用分隔符
    • -k : 指定排序的列
    • sort -t 'x' -nk y filename # 按照x进行分割,按照y列进行排序
      
    awk '/^$/ {print NR}' file.txt
    
    1.8 题库
    1. 查询file.txt中空行所在的行号

      cat file.txt |awk -F " " '{sum+=} END{print sum}'
      
    2. 计算file.txt第二列的和并输出[每一行的格式为:name score]

      if [ -f file.txt ];then
      	echo "exists"
      else
      	echo "not exsits"
      fi
      
    3. shell 检查文件是否存在

      sort -n file.txt
      
    4. 对数字文件进行排序

      grep -r "xxx" /home |cut -d ":" -f 1
      
    5. 查找/home 文件夹下所有文本,文本内容包含“xxx”的关键字

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://www.outofmemory.cn/zaji/5638943.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-12-16
    下一篇 2022-12-16

    发表评论

    登录后才能评论

    评论列表(0条)

    保存