第十一章——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. UVA225-Golygons(dfs)

    Problem UVA225-Golygons Accept:307  Submit:3646 Time Limit: 3000 mSec  Problem Description Imagine a ...

  2. ECO开放平台对接文档说明

    应用集成: http://open.teewon.net:1000/static/index.html#/docs/flow/integrate统一认证集成文档: http://open.teewon ...

  3. 好程序员分享Javascript设计模式

    方法一 对象字面量表示法 在对象字面量表示法中,一个对象被描述为一组包含在大括号中,以逗号分隔的 name/value 对.对象内的名称可以是字符串或标识符,后面跟着一个冒号.对象中最后一个 name ...

  4. classmethod 和 staticmethod

    我一般很少用到. Talk is cheap, show you the code. #!/usr/bin/env python # -*- coding: utf-8 -*- ########### ...

  5. Linux 分卷压缩

    例如,要将大文件夹 PYNQ 分卷压缩成 1G 的单元大小,如下命令(类似的可以指定 tar 的参数为 czf 而生产 .tar.gz 格式的压缩包:可以指定分卷大小例如 500M 等),压缩完成后, ...

  6. 漏洞扫描,linux配置规范处理

    #!/bin/bash ## set shortest length of password filename=/etc/login.defs if [ -f "$filename" ...

  7. linux内存源码分析 - 内存回收(匿名页反向映射)

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 看完了内存压缩,最近在看内存回收这块的代码,发现内容有些多,需要分几块去详细说明,首先先说说匿名页的反向映 ...

  8. Long类型参数传到前端精度丢失的解决方案

        由于公司数据库表的id是利用雪花算法生成的,所以实体类里面定义的数据类型为Long.但是这个数据传到前端时,发生了精度丢失的现象.本文记录了从java后端的角度如何解决这个精度丢失的问题,便于 ...

  9. [C#] LINQ之SelectMany

    声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 一.第一种用法: public static IEnumerable<TResult> SelectMany<TSo ...

  10. 重装mysql后导致Navicat连接失败

    今天重装了mysql数据库,然后再使用navicat去连接数据库的时候,一直报错 1251 Client does not support authentication protocol reques ...