shell_Day03

嗯,这是第二天,吧

wc

  word count 统计文本文件中的字符个数
  -l 查看行数
  -w 查看字符个数
  -c 查看文件大小(字节)
 

cut

  用来分割文件内容
  -d 指定分隔符,delimiter
  -f 指定提取那一列
  -f2 输出第二列
  -f1,3 输出第一列和第三列
  -f1-3 输出第一列到第三列
  --output-delimited=’xx' 替换分割符
  局限性:-d不能指定多个分隔符,不能做高级的格式化输出
 

sort

  -n 按数字大小排序
  -r 逆序
  -f 忽略大小写
  -t -k 指定分隔符以及指定按照哪一列进行排序
  -u  去重复
 

uniq

  去重复,连续且且相同的字符才是重复
  建议,先排序,后去重
  -c 统计重复次数
  sort filename|uniq -c   查看重复次数
 

编程介绍

  早期编程:
    驱动 硬件默认时不能使用的
    不用的厂商硬件设备之间需要进行指令沟通,我们需要驱动程序进行来进行“翻译”
    更趋近与硬件工程师,要学习“汇编语言”;而“汇编语言”被厂商所限制,CC++的底层就是汇编语言
  现在编程:
    基于高级语言以及超高级语言,更好的让程序员更够的实现编程功能;
  编程语言的分类:
    高级语言、超高级语言需要*翻译*成计算机可读的语言(二进制指令)
    解释型 -- 逐行翻译,逐行执行 shell python JAVA perl
    编译型 -- 一次编译,全部执行 C语言 C++ C# java
    面向对象 -- 侧重于数据的编程语言
    面向过程 -- 侧重于指令
  编程语言的执行方式:
    顺序执行
    循环执行--for while until
    选择执行--分支结构 if case
 

shell脚本语言介绍

    有点:调用os(操作系统)的命令行,来实现所有功能
    缺点:没有库调用(区分python)
  shell脚本包括:
    1、*命令* 2、变量(全局变量、局部变量、本地变量)3、逻辑关系
  shell的第一句话(必须写)
    #!/bin/bash 定义脚本解释器
    /etc/shells -- 查看当前系统支持的shell程序
    echo $SHELL --查看当前回话的shell程序
    /etc/passwd -- 指定了用户默认支持的shell程序

shell的执行

  1、bash命令来执行脚本
    -n 查看shell脚本的逻辑错误
    -x 逐行显示执行的脚本程序
  2、授权chmod u+x filename.sh
    使用全路径执行脚本即可
 

变量

  是一段未命名的内存空间
  环境变量
  局部变量 declare命令 -- 定义变量类型
  本地变量 local 在函数中使用
  变量类型:
    数值型:
      整形 int
      浮点型 float
      布尔型 0 1   (true false)
    字符串:
      1、普通字符及字符串
      2、数组
  编程语言的分类:
    强类型语言 -- 数值必须被定义,才能进行处理或运算
    弱类型语言 -- 编程语言可以自动识别变量类型
  多态 -- 一个数据具有多个属性,而最后使用的属性取决于和他进行运算的数据

传参

  $? 上一条命令的执行状态
  $1 ... ${10}命令后面传入脚本的数据,以空格为分隔符
  $# 统计传参数量${$#}
  $*表示所有传参
  $@表示所有传参

定义变量的格式

  NAME=VALUE
  通过declare 定义变量类型
  declare -i 整数
  declare -a 数组

test文件测试、条件判断

  在脚本中,我们需要进行语句分支(判断)
  判断就是使用test命令来实现;
  使用格式
    1、test [ option ] file
    2、[ 条件语句 ]
  常见的test选项:
    比较选项:
      -eq 等于
      -ne 不等于
      -gt 大于
      -ge 大于等于
      -lt 小于
      -le 小于等于
    判断选项:
      -e 文件是否存在
      -f 是否是文件
      -d 是否是目录
      -L 是否是链接
      -r -w -x
    关联选项:
      -o 或
      -a 且
      !非
    字符串判断
      = 判断两边的字符是否相同
      != 不等于
      -z 判断字符串是否存在
      -n 存在为假,不存在为真

逻辑运算

  与 &&
  或 ||
  非 != 

算术运算

  let 1+1
  expr 1*1
  $[$1+10] 
  $(($1/$2))
  + - * / % **
posted @ 2019-08-13 20:19  千纪  阅读(139)  评论(0编辑  收藏  举报