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...]

Linux-awk和shell编程初步的更多相关文章

  1. Linux:Day5 shell编程初步、grep

    bash的基本特性(3) 1.提供了编程环境 程序编程风格: 过程式:以指令为中心,数据服务于指令: 对象式:以数据为中心,指令服务于数据: shell程序:提供了编程能力,解释执行:过程式.解释执行 ...

  2. 第5天(半天)【shell编程初步、grep及正则表达式】

    第5天(半天)[shell编程初步.grep及正则表达式] shell编程初步(01)_recv shell脚本:文本文件 #!:/bin/bash #!:/usr/bin/python #!:/us ...

  3. Linux 与 unix shell编程指南——学习笔记

    第一章    文件安全与权限 文件访问方式:读,写,执行.     针对用户:文件属主,同组用户,其它用户.     文件权限位最前面的字符代表文件类型,常用的如         d 目录:l 符号链 ...

  4. Linux学习之Shell编程基础

    转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来 ...

  5. [No000014A]Linux简介与shell编程

    Linux 介绍 内核 库: .so 共享对象,windows:dll 动态链接库 应用程序 Linux的基本原则: 1.由目的单一的小程序组成:组合小程序完成复杂任务: 2.一切皆文件: 3.尽量避 ...

  6. Linux与Unix shell编程指南(完整高清版).pdf

    找到一本很详细的Linux Shell脚本教程,其实里面不光讲了Shell脚本编程,还介绍了系统的各种命令 http://vdisk.weibo.com/s/yVBlEojGMQMpv 本书共分五部分 ...

  7. Linux下的Shell编程

    从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...

  8. linux下的Shell编程(3)shell里的流程控制

    if 语句 if 表达式如果条件命令组为真,则执行 then 后的部分.标准形式: if 判断命令,可以有很多个,真假取最后的返回值 then 如果前述为真做什么 [ # 方括号代表可选,别真打进去了 ...

  9. Linux下的Shell编程(1)最简单的例子

    深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一. 从第一行开始 我们可以使用任意一种文字编辑器编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bi ...

  10. linux操作系统5 shell编程

    知识内容: 1.shell编程预备知识 2.shell变量 3.表达式与运算符 4.分支循环语句 5.函数 一.shell编程预备知识 1.什么是shell编程 shell是与linux交互的基本工具 ...

随机推荐

  1. JavaScript插件编写指南

    在编写插件之前,大家要先了解做插件的几个要点: 插件需要满足的条件 一个可复用的插件需要满足以下条件: 插件自身的作用域与用户当前的作用域相互独立,也就是插件内部的私有变量不能影响使用者的环境变量: ...

  2. 随便写一点最近开发遇到的问题和解决方法 大部分关于laravel和php

    laravel里要想对对象进行自己设计的排序(usort()), 得用匿名方法,  原声php就不用 php里面可以随便写html代码,  比如可以把html直接后缀名改成.php, 然后在任何地方& ...

  3. FALSE_IT

    本文讲一个实用的语法糖(suger),很不错,攻克了我实际工作中的问题. 如果你写了这样一个类: class Executor { int step1(); void step2(); int ste ...

  4. kubernetes调度之pod优先级和资源抢占

    系列目录 Pod可以拥有优先级.优先意味着相对于其它pod某个pod更为重要.如果重要的pod不能被调度,则kubernetes调度器会优先于(驱离)低优先级的pod来让处于pending状态的高优先 ...

  5. SVG 签名动画 制作

    不知道哪天看到的一个朋友圈里面有发的什么什么免费教签名之类的,就看了下SVG,做这功能还不错. 主要用到的几个属性,需要自行百度一下,不详说  stroke-dashoffset ,  stroke- ...

  6. GuozhongCrawler系列教程 (1) 三大PageDownloader

    GuozhongCrawler  QQ群 202568714 教程源代码下载地址:http://pan.baidu.com/s/1pJBmerL GuozhongCrawler内置三大PageDown ...

  7. Android Studio 工程的 .gitignore

    新建一个 Android Studio 工程时会默认建立两个 .gitignore 文件 .gitignore *.iml .gradle /local.properties /.idea/works ...

  8. 一致性Hash简单介绍和使用

    背景: 一致性Hash用于分布式缓存系统,将Key值映射到详细机器Ip上,而且添加和删除1台机器的数据移动量较小,对现网影响较小 实现: 1 Hash环:将节点的Hash值映射到一个Hash环中.每一 ...

  9. wince c# 创建桌面快捷方式 .

    static void Create() { string PathGPRS = System.IO.Path.GetDirectoryName(System.Reflection.Assembly. ...

  10. SAM4E单片机之旅——10、UART与MCK之PLL

    为使用更更高的波特率,则需要更更高的外设时钟的频率.这个时候就需要用到锁相环(PLL)了.锁相环可以对输入的时钟进行分频.升频后进行输出.MCK可以使用的锁相环为PLLA,而PLLA的输入时钟为MAI ...