程序运行环境输入与输出

  标准输入0

    read a;echo $a

  标准输出1

    echo cesh

  错误输出

    ls notr

管道重定向

  管道与管道之间可以重定向

  管道与文件之间可以重定向

  用于写入

  

  将错误的输出存进去

  

管道链接

管道连接符 |

  可以链接多个程序

  管道连接是以紫禁城的方式启动的

  

管道执行的上下文控制

  使用{command;}注意花括号与内部命令之间的空格与分号

  使用控制逻辑while read 组合

  使用${}''

grep awk sed 学习

  grep  基于正则表达式查找满足条件的行

  awk 根据定位到的数据行处理其中的分段

  sed 根据定位到的数据行修改数据

  

  与sql对比

  grep  数据查找定位  select * from table like "%yyyy"

  awk 数据切片  select field from table

  sed 数据修改  update table set filed = new where hhhhh

平台实现差异

  不同的系统使用命令会有些不同

  https://www.gnu.org/software/sed/manual/sed.html

  https://www.gnu.org/software/grep/manual/grep.html

  https://www.gnu.org/software/gawk/manual/gawk.html

BRE基本正则表达式

  ^开头 $结尾

  [a-z][0-9]区间,如果开头带有^表示不能匹配区间内的元素

  *0个或多个

  .表示任意字符

ERE扩展正则表达式

  基本正则表达式基础上的扩展

  ?非贪婪匹配

  +一个或者多个

  ()分组

  {}范围约束

  | 匹配多个表达式的任何一个

bash 编程语法

  变量

    命名 英文字母、下划线、数字,收个字符不能以数字开头

    中间不能有空格,可以使 用下划线(_)

    不能使用标点符号

    不能使用bash里面的关键字(可以用help命令查看保留关键字)

  定义与使用变量

    your_name="Linda“

  只读变量

    a="123"

    readonly a

  删除变量

    unset variable_name (不能删除只读变量)

  变量类型

    字符串:“12222”

    拼接字符串:name = "hello, "$bianliang"!"

    数组 arrayname = (value0 value1 value3)

      取数组 valuen = ${arrayname[n]}

      单独赋值 arrayname[0]=value0

  控制语句【空格非常重要】

    条件分支:if  

      if condition

      then

        command1

        command2

        commanf

      fi

      if [3==3];when echo "true";else echo "false";fi

      if [[3>3]];when echo "true";else echo "false";fi

      -gt 大于号  -lt小于号 -eq 相等

  for 循环

    for var in item1 item2 item 3

    do

      command1

      command2

    done

    for i in $(uuu.txt) ; do echo $(i);done

  while循环

    while condition

    do

      command

    done

    while read line; do echo $line;done < tuii.txt   (表示从tuii.txt文件去读取)

bash脚本编写

  read

    从终端或者文件中读取输入的内部命令

    读取整合输入

    每行末尾的换行符不被读入

      read var

      read var0 var1

      read

  脚本参数传递

    $0脚本名称

    $1-$n 获取脚本参数

    $# 传递到脚本的参数个数

    $$ 脚本运行的当前进程号

    $*以一个单字符串显示所有向脚本传递的参数

    $?是显示最后命令的退出状态,0表示没有错误,其他任何值表明有错误

  基本运算

    算术运算

      +加法 -减法 \*乘法 /除法 %取余 =赋值 ==相等 !=不相等  -eq相等 -ne不相等 -gt大于 -lt小于 -ge大于等于 -le 小于等于

      语法:‘expr $a + $b’

bash与linux命令集合

  

  #!/bin/bash
  echo $1,$2,$3
  echo "文件名 "$0
  echo "参数变量 "$#
  echo "return "$?

  

  

  

    

      

       

  

      

    

  

  

  

  

【linux系统】命令学习(六)awk sed grep 与管道的使用的更多相关文章

  1. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  2. awk\sed\grep 补充

    # awk\sed\grep 补充 以上命令中字符 / 在sed中作为定界符使用,也可以使用任意的定界符 sed's:test:TEXT:g' sed's|test|TEXT|g' 定界符出现在样式内 ...

  3. 一点点linux系统的学习心得

    我相信你正在阅读本文的时候,可能是因为你渴望学习Linux技术.我想分享一下过去两年中我自己的一些学习经历,希望你能更顺利地成为Linuxer. 两年前在Linux系统的运行和维护方面找到了一份工作( ...

  4. 安装虚拟机和Linux系统的学习

    安装虚拟机和Linux系统的学习(随笔3) 1.安装虚拟机 首先我按着老师给的链接上的步骤一步一步安装VirtualBox,进行得十分顺利. 接着则是在虚拟机上安装Ubuntu. 然而安装完成以后按要 ...

  5. Linux 系统编程 学习:01-进程的有关概念 与 创建、回收

    Linux 系统编程 学习:01-进程的有关概念 与 创建.回收 背景 上一讲介绍了有关系统编程的概念.这一讲,我们针对 进程 开展学习. 概念 进程的身份证(PID) 每一个进程都有一个唯一的身份证 ...

  6. Linux 系统编程 学习:02-进程间通信1:Unix IPC(1)管道

    Linux 系统编程 学习:02-进程间通信1:Unix IPC(1)管道 背景 上一讲我们介绍了创建子进程的方式.我们都知道,创建子进程是为了与父进程协作(或者是为了执行新的程序,参考 Linux ...

  7. Linux 系统编程 学习:03-进程间通信1:Unix IPC(2)信号

    Linux 系统编程 学习:03-进程间通信1:Unix IPC(2)信号 背景 上一讲我们介绍了Unix IPC中的2种管道. 回顾一下上一讲的介绍,IPC的方式通常有: Unix IPC包括:管道 ...

  8. Linux 系统编程 学习:04-进程间通信2:System V IPC(1)

    Linux 系统编程 学习:04-进程间通信2:System V IPC(1) 背景 上一讲 进程间通信:Unix IPC-信号中,我们介绍了Unix IPC中有关信号的概念,以及如何使用. IPC的 ...

  9. Linux 系统编程 学习:05-进程间通信2:System V IPC(2)

    Linux 系统编程 学习:05-进程间通信2:System V IPC(2) 背景 上一讲 进程间通信:System V IPC(1)中,我们介绍了System IPC中有关消息队列.共享内存的概念 ...

随机推荐

  1. npm install失败或者进度卡住解决办法 以及 nrm的使用

    今天在使用npm install安装url-loader时,遇到下载进度条停止问题 因为已经提前更换了 淘宝的镜像,应该不是网络问题,通过 npm config set loglevel info 显 ...

  2. Python中pymongo find 遍历数据导致timeout

    背景 在读取大约200W左右的数据的时候采用游标形式进行数据遍历时,超过10分钟就报错 timeout 原因 pymongo游标会在10分钟之后被关闭 解决方案 db.find({}, no_curs ...

  3. 款阿里开源的 Java 诊断工具Arthas

    Arthas是什么鬼? Arthas是一款阿里巴巴开源的 Java 线上诊断工具,功能非常强大,可以解决很多线上不方便解决的问题. Arthas诊断使用的是命令行交互模式,支持JDK6+,Linux. ...

  4. 【数据结构与算法Python版学习笔记】算法分析

    什么是算法分析 算法是问题解决的通用的分步的指令的聚合 算法分析主要就是从计算资源的消耗的角度来评判和比较算法. 计算资源指标 存储空间或内存 执行时间 影响算法运行时间的其他因素 分为最好.最差和平 ...

  5. UI自动化测试之Airtest

    官方文档: https://airtest.doc.io.netease.com/ 本文我们讲解下Airtest的使用,主要学习目标有以下几点: (1)认识Airtest (2)了解Airtest能做 ...

  6. 防止SQL注入总结

    1.预编译(占位符)可以很大程度上防止SQL注入 预编译的原理是数据库厂商提供的JAR包中,对参数进行了转义 2.mybatis中,能用# 的地方,不用$,因为#是预编译占位符形式,可以防止SQL注入 ...

  7. 【Linux命令063】Linux非常简单常用的入门命令

    Linux常用命令 这是一篇我在公众号上发布的文章,还算较为受欢迎. 博客园这边荒废好长时间了,主要是最近一年经常撰写的文章都是Linux相关的入门文章. 不知道是否能通过博客园的首页审核. 1.cd ...

  8. [对对子队]发布声明Beta

    Beta版本的新功能 新增的游戏内容 循环部分关卡 Beta阶段我们制作了游戏的第4-6关,为循环部分关卡.这一部分的关卡设计以编程的循环思想为基础,在流水线中加入了新的命令--循环语句,并以此为核心 ...

  9. 【二食堂】Alpha - Scrum Meeting 11

    Scrum Meeting 11 例会时间:4.21 18:00~18:20 进度情况 组员 进度 今日任务 李健 1. 登录注册页面前后端对接issue 1. 登录注册页面前后端对接issue2. ...

  10. 【二食堂】Beta - Scrum Meeting 6

    Scrum Meeting 6 例会时间:5.19 18:30~18:50 进度情况 组员 当前进度 今日任务 李健 1. 实体标注的优化基本已经实现,后端有bug,还没有进行接口调用 issue 2 ...