Linux基础学习(11)--Shell编程
第十一章——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语句:



例子2:判断apache是否启动

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



2. case语句:



3. for循环:

更利于系统的维护和管理





4. while循环:








注:shell脚本语言(所见即所得)写的所有的脚本都不需要编译就可以直接运行,不是不需要编译,是在执行的同时进行编译,简化了编译过程。好处是编译更加简单,坏处是效率要更慢(主要工作是帮助管理员进行重复操作或运维工作)。
Linux基础学习(11)--Shell编程的更多相关文章
- Linux基础学习笔记6-SHELL编程
编程基础 程序:指令+数据 程序编程风格: 过程式:以指令为中心,数据服务于指令 对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 编程基本概念: 顺序执行:循环执行:选 ...
- linux基础学习之软件安装以及常用命令
linux基础学习之软件安装以及常用命令 调用中央仓库: yum install wget 然后下载nodejs: wget https://nodejs.org/dist/v10.14.2/node ...
- Linux 基础学习1
目录 Linux 基础学习 用户登录 终端 交互式接口 bash 修改ssh连接慢的步骤 命令提示符 显示提示符格式 命令 别名 命令格式 获取命令的帮助信息 man bash 快捷键 tab 键 引 ...
- Linux 基础学习2
目录 Linux 基础学习2 文件目录结构 文件命名规范 文件系统结构 linux应用程序的组成 绝对路径和相对路径 目录名和基名 切换目录 切换到家目录 切换到上一次的目录 显示当前的工作目录 列出 ...
- Linux基础学习系列目录导航
Linux基础学习-通过VM安装RHEL7.4 Linux基础学习-命令行与图形界面切换 Linux基础学习-基本命令 Linux基础学习-RHEL7.4之YUM更换CentOS源 Linux基础学习 ...
- linux基础学习路线&review
linux基础学习网址: https://www.runoob.com/linux/linux-tutorial.html 比较重点的是这个启动过程的介绍学习:https://www.runoob.c ...
- Linux学习之Shell编程基础
转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来 ...
- Shell编程学习之Shell编程基础(一)
这篇随笔将要介绍关于Shell编程的基本知识,这些将会在假设你已经熟悉了Linux系统和命令行的基本知识. 构建基本脚本 你应该了解或熟悉使用Shell命令行了,但是只是使用Shell命令行的命令,有 ...
- 【Linux基础总结】Shell 基础编程
Shell 基础编程 重启虚拟机遇到磁盘损坏如何解决 Shell编程中变量的声明.引用及作用域 Shell程序 概述 以文件形式存放批量的Linux命令集合,该文件能够被Shell解释执行,这种文件就 ...
随机推荐
- 使用VMWare虚拟mac系统,设置网络的正确姿势
1. 启动mac虚拟机: 2. 虚拟机-虚拟机设置-网络适配器-选择NAT模式: 3. 打开mac的网络设置,选择使用DHCP模式,并设置DNS服务器为win的DNS: 4. 回到win,控制面板-网 ...
- 七彩爱心灯手机APP
安卓IDE3.20以后不包含sdk,需要更新重新下载. 1 下载工程 https://github.com/Dongvdong/Lovelamp_app 2打开工程 如果换了工程移动换了文件夹 (1) ...
- CDB与PDB之间的切换方法
Oracle 12c 开始支持 PLUGGABLE DATABASE,并且提供了一个方法在CDB和PDB之间切换. 1. 使用 show pdbs 可以确认当前有哪些PDB? SQL> show ...
- randi( )函数--MATLAB
randi()函数生成均匀分布的伪随机整数,范围为imin--imax,如果没指定imin,则默认为1. r = randi(imax,n):生成n*n的矩阵 r = randi(imax,m,n): ...
- 《Web接口开发与自动化测试 -- 基于Python语言》---现已出版。
终于可以购买了!! 有需要的同学通过下面链接购买. 购买来链接: https://item.jd.com/11806319423.html 为什么要出这样一本书? 首先,今年我有不少工作是跟接口自动化 ...
- Java线程和多线程(十五)——线程的活性
当开发者在应用中使用了并发来提升性能的同时,开发者也需要注意线程之间有可能会相互阻塞.当整个应用执行的速度比预期要慢的时候,也就是应用没有按照预期的执行时间执行完毕.在本章中,我们来需要仔细分析可能会 ...
- 【H5 音乐播放实例】第一节 音乐详情页制作(1)
本教程是一个H5音乐播放的详情页制作,实现了H5音乐播放,音轨的跳动,已经较为酷炫的UI界面. 通过本教程,您会学到: 1.H5音乐播放 (带音轨) 2.iconfont字体图标库 3.div+css ...
- kmeans聚类理论篇
前言 kmeans是最简单的聚类算法之一,但是运用十分广泛.最近在工作中也经常遇到这个算法.kmeans一般在数据分析前期使用,选取适当的k,将数据分类后,然后分类研究不同聚类下数据的特点. 本文记录 ...
- 2018年12月份GitHub上最热门的Java开源项目
来自:开源最前线(ID:OpenSourceTop) 链接:https://www.itcodemonkey.com/article/12747.html 又到了公布 GitHub 上热门项目的时候啦 ...
- Microsoft Tech Summit 2018 课程简述:利用 Windows 新特性开发出更好的手绘视频应用
概述 Microsoft Tech Summit 2018 微软技术暨生态大会将于10月24日至27日在上海世博中心举行,这也会是国内举办的最后一届 Tech Summit,2019 年开始会以 Mi ...