1 awk

  格式: awk -选项 '处理' 输入

  awk -F : '{print $1}' file

  -F指定分隔符, 默认是空格

  $1 分割后的第一部分

  $0 获得所有部分 

  NF 表示以分隔符分割后一共有多少段

  $NF 最后一段

  NR 显示行号

  

  通过NR来控制输出的行

  

  通过正则表达式来控制输出

  

    注意要使用双引号

    注意要使用==或者>=等比较符号

    如果要传入参数 可用-v来限定

      

  

    针对行的正则表达式

  

    其中~用于指定针对每行的某一部分进行正则匹配

2 补充命令

1 sort

  可以将输入的内容按字典顺序排序, 但是只是针对行的排序

2 uniq

  去除重复的行

  uniq -c

    显示重复行的信息

3 cut

  效果等同于awk

  -d 指定分割符

  -f 指定获得的分组

    cut -d : -f1.3

4 du

  du -sh 路径

  查看文件或者文件夹大小

5 find

  find 查找点 -type 文件类型 -name 文件名(一般用通配符) -size 文件大小

    文件类型 常用的有f 普通文件

    -size可以由多个 -表示小于 +表示大于

6 scale和bc

  echo 'scale=2;30/100' | bc -l

3 shell编程

3.1 shell的基本

  shell脚本可读, 必须要有可执行权限

  shell脚本是从上往下逐行解释执行的

  shell脚本的第一行往往是

    #! shell解释器文件路径

    #! /bin/bash

  shell的注释是以#开头的

  shell脚本的输出

    echo 输出字符串等

    echo "hello world"

  shell脚本一般是以.sh结尾

  执行shell脚本的方法

    ./shell脚本名

    ./hello.sh

  shell在赋值的时候等号前后不能有空格, 这个别的语言不同

  变量的定义之后 可以用unset 变量名, 取消该变量

  $HISTSIZE 查看history的缓存最大数量

  $PS1 用于设定命令号首部固定的样式模式

  在shell中, 要想执行运算最好用[]包裹起来, 且调用变量的值的时候要用$

  ((可以在里面直接运行数学运算))

3.2 条件测试

  测试结果用$?表示 0表示正确 1表示错误

  通过echo $?来输出显示

  数值测试

    [ 数值1 关系运算符 数值2 ]

    关系运算符有:

      -eq (equal) 相等

      -ne (not equal) 不相等

      -gt 大于

      -lt 小于

      -ge 大于等于

      -le 小于等于

  字符串测试

    [ 关系运算符 字符串 ]

    [ 字符串1 关系运算符 字符串2 ]

    关系运算符

      = 相等

      != 不相等

      -z 为空

      -n 不为空

# [ "abc" = "abc" ]
# echo $?
0 # [ "abc" = "cba" ]
# echo $?
1

  文件状态测试

    [ 关系运算符 字符串 ]

    运算符

    

    

  条件测试的逻辑操作符

  -a 逻辑与

  -o 逻辑或

  ! 逻辑否

    

3.3 控制结构

  shell的控制结构有if-then-else, case, for, while, until

  if-then-else的基本语法格式如下

    

  case的基本语法格式如下

    

  例子

    

    

  for循环的基本语法格式

    

  例子

    

    

  expr命令计数器

    expr 数值1 运算符 数值2

    常用的有+  -   \*   /四种

  while

    

  until的结果与while一致

3.4 脚本参数交互

  运行时传入参数

  

  

  

  用户交互

    read 变量1 [变量2...]

最新文章

  1. oracle 密码过期处理
  2. xhEditor用法
  3. Spring 事务知识
  4. 数据库---MySQL常用函数总结
  5. 链表——PowerShell版
  6. Struts标签、Ognl表达式、el表达式、jstl标签库这四者之间的关系和各自作用
  7. Hadoop 2.2 YARN分布式集群搭建配置流程
  8. mysql:ip地址连接
  9. 动态设置bootstrapswitch状态
  10. golang运算与循环等
  11. sklearn.linear_model.LinearRegresion学习
  12. node.js http接口调试时请求串行特性分析
  13. 一个时间上的比较 if else
  14. HDU 6373(斜面上小球弹跳 运动分解)
  15. bzoj1912 树形dp求直径(新写法),求直径的两端点
  16. tcp timestamps
  17. Docker删除镜像报错
  18. CCF CSP 201503-2 数字排序
  19. MySQL 慢查询日志工具之pt-query-digest
  20. Python中的推导式(列表推导式、字典推导式、集合推导式)

热门文章

  1. 【报错】项目启动部署时报错:java.lang.NoSuchMethodError
  2. 投影纹理映射(Projective Texture Mapping) 【转】
  3. Linux以下基于TCP多线程聊天室(server)
  4. javascript原生调用摄像头
  5. 微信小程序制作商 业务流程
  6. LeetCode:二叉树的非递归中序遍历
  7. 基于UDP的一对回射客户/服务器程序
  8. Android-addToBackStack使用和Fragment执行流程
  9. 简单label控件 自制
  10. SPOJ - LCS 后缀自动机入门