第十一章——Shell编程

一.基础正则表达式

1.正则表达式与通配符(*,?,[ ]):

2.基础正则表达式:

二.字符截取命令

1.cut字段提取命令:

空格分割时,不知道空格有多少个,无法分割行数,grep -v取反

2. printf命令(严格说不是字符提取命令,搭配awk使用):

printf不能用于直接输出文件内容或用管道符接受上一句的输出,它会把文件当成字符串输出。

注:Linux系统无print命令,只有printf,print只能在awk命令里使用。

3.awk命令:(默认能识别的分割符是制表符和空格)

注:$0表示一行本身,$1表示文件第一列,awk外是单引号,{}里是双引号

 注:print自动在后面加一个换行符,printf不会

BEGIN在数据处理之前执行一次

END在数据处理之后执行一次

FS指定分割符,第一列没有分割(默认为空格),先读入后分割

加一个BFGIN在数据处理之前先指定分割符

进行条件筛选

4. sed命令:

可以从管道符接受数据进行修改,可以直接修改命令的结果(而vim不可以)

不加-n会先输出第二行然后输出所有行,一般和-n联立使用输出指定行

在第一行后追加

在行前插入

注:不改变原文件,只修改输出,要修改原文件加-i,加-i时无输出,直接修改了原文件,有一定危险性(最好修改用vim)

 不加行号全文找

三.字符处理命令

1.排序命令sort:

2.统计命令wc:

四.条件判断

1.按照文件类型进行判断:

2.按照文件权限进行判断:

3.两个文件之间进行比较:

4.两个整数之间比较:

5.字符串的判断:

注:[ ]中括号两边有空格,否则会报错,还有==两边也有空格,不然一直为True输出yes

6.多重条件判断:

五.流程控制

1. if语句:

           (1)单分支if条件语句:

                                    例子:判断分区使用率:

           (2)双分支if条件语句:

例子2:判断apache是否启动

(3)多分支if条件语句:

2. case语句:

   

3. for循环:

更利于系统的维护和管理

4. while循环:

注:shell脚本语言(所见即所得)写的所有的脚本都不需要编译就可以直接运行,不是不需要编译,是在执行的同时进行编译,简化了编译过程。好处是编译更加简单,坏处是效率要更慢(主要工作是帮助管理员进行重复操作或运维工作)。

Linux基础学习(11)--Shell编程的更多相关文章

  1. Linux基础学习笔记6-SHELL编程

    编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 编程基本概念: 顺序执行:循环执行:选 ...

  2. linux基础学习之软件安装以及常用命令

    linux基础学习之软件安装以及常用命令 调用中央仓库: yum install wget 然后下载nodejs: wget https://nodejs.org/dist/v10.14.2/node ...

  3. Linux 基础学习1

    目录 Linux 基础学习 用户登录 终端 交互式接口 bash 修改ssh连接慢的步骤 命令提示符 显示提示符格式 命令 别名 命令格式 获取命令的帮助信息 man bash 快捷键 tab 键 引 ...

  4. Linux 基础学习2

    目录 Linux 基础学习2 文件目录结构 文件命名规范 文件系统结构 linux应用程序的组成 绝对路径和相对路径 目录名和基名 切换目录 切换到家目录 切换到上一次的目录 显示当前的工作目录 列出 ...

  5. Linux基础学习系列目录导航

    Linux基础学习-通过VM安装RHEL7.4 Linux基础学习-命令行与图形界面切换 Linux基础学习-基本命令 Linux基础学习-RHEL7.4之YUM更换CentOS源 Linux基础学习 ...

  6. linux基础学习路线&review

    linux基础学习网址: https://www.runoob.com/linux/linux-tutorial.html 比较重点的是这个启动过程的介绍学习:https://www.runoob.c ...

  7. Linux学习之Shell编程基础

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

  8. Shell编程学习之Shell编程基础(一)

    这篇随笔将要介绍关于Shell编程的基本知识,这些将会在假设你已经熟悉了Linux系统和命令行的基本知识. 构建基本脚本 你应该了解或熟悉使用Shell命令行了,但是只是使用Shell命令行的命令,有 ...

  9. 【Linux基础总结】Shell 基础编程

    Shell 基础编程 重启虚拟机遇到磁盘损坏如何解决 Shell编程中变量的声明.引用及作用域 Shell程序 概述 以文件形式存放批量的Linux命令集合,该文件能够被Shell解释执行,这种文件就 ...

随机推荐

  1. 定时器 setTimeout()超时调用和 setInterval()间歇调用

    JavaScript是单线程语言,但它允许通过设置定时器,也就是设置超时值和间歇时间来调度代码在特定的时刻执行.前者是在指定的时间过后执行代码,而后者则是每隔指定的时间就执行一次代码. 超时调用需要使 ...

  2. JS函数防抖与函数节流

    概念 函数防抖(debounce) 当调用动作过n毫秒后,才会执行该动作,若在这n毫秒内又调用此动作则将重新计算执行时间 函数节流(throttle) 预先设定一个执行周期,当调用动作的时刻大于等于执 ...

  3. vue.js 二维码生成组件

    安装 通过NPM安装 npm install vue-qart --save 插件应用 将vue-qart引入你的应用 import VueQArt from 'vue-qart' new Vue({ ...

  4. jenkins使用3----相关工具安装

    一.相关工具安装 a.git安装 #yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc-c++ ...

  5. Linux 任务计划 crontab 配置概要与常见问题

    Linux 可以利用 crontab 来实现定时任务,自动化操作.本文对此进行简要说明. crontab 操作示例 列出定时任务   crontab -l #列出所有的定时任务,如果没有定时任务,返回 ...

  6. linux驱动编写之poll机制

    一.概念 1.poll情景描述 以按键驱动为例进行说明,用阻塞的方式打开按键驱动文件/dev/buttons,应用程序使用read()函数来读取按键的键值.这样做的效果是:如果有按键按下了,调用该re ...

  7. UIToolBar - 官方文档

    继承关系:UIToolBar -> UIView -> UIResponder -> NSObject. toolBar是一个工具栏,用于显示一个或多个按钮.其按钮叫做toolBar ...

  8. Webpack+Typescript 简易配置

    教程:https://www.cnblogs.com/yasepix/p/9294499.html http://developer.egret.com/cn/github/egret-docs/ex ...

  9. 从 0 到 1 实现 React 系列 —— 5.PureComponent 实现 && HOC 探幽

    本系列文章在实现一个 cpreact 的同时帮助大家理顺 React 框架的核心内容(JSX/虚拟DOM/组件/生命周期/diff算法/setState/PureComponent/HOC/...) ...

  10. python之socket模块详解--小白博客

    主要是创建一个服务端,在创建服务端的时候,主要步骤如下:创建socket对象socket——>绑定IP地址和端口bind——>监听listen——>得到请求accept——>接 ...