linux学习20 运维核心技能-grep命令与基本正则表达式

一、回顾

  1、bash的特性:hash,变量

    命令hash:hash命令

    变量:

      本地变量,环境变量,局部变量

      位置参数变量,特殊变量

      变量赋值:name=value,export name=value,declare -x name=value

      变量引用:$name,${name}

      变量撤销:unset name

  2、bash脚本编程,运行脚本

    #!/bin/bash

    #

  3、bash的配置文件

    profile类:登陆式shell

    bashrc类:非登录式shell

    登录式shell: /etc/profile --> /etc/profile.d/* --> ~/.bash_profile --> ~/.bashrc --> /etc/bashrc

    非登录式shell:~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh

二、文本处理工具

  1、Linux上文本处理三剑客

    a、grep:文本过滤工具(模式:pattern)工具。

    b、sed:stream editor,流编辑器;文本编辑工具;

    c、awk:Linux上的实现为gawk,文本报告生成器(格式化文本);

  2、正则表达式:Regual Expression,REGEXP

    a、由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配的功能;

    b、基本正则表达式:BRE

    c、扩展正则表达式:ERE

    d、元字符

三、文本处理工具之grep

  1、grep:Global search REgular expression and Print out the line。

    作用:文本搜索工具,根据用户指定的"模式(过滤条件)"对目标文本逐个进行匹配检查;打印匹配到的行;

    模式:由正则表达式的元字符及文本字符所编写出的过滤条件;

  2、正则表达式引擎:

    grep [OPTIONS] PATTERN [FILE]

    grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...]

  3、常见选项

    --color=auto:对匹配到的文本着色后高亮显示

    -i: Ignorecase:忽略字符的大小写

    -o:仅显示匹配到的字符串本身

    -v:--Invert-match:显示不能被模式匹配到的行

    -E:支持使用扩展的正则表达式元字符

    -q:--quiet,silent:静默模式,即不输出任何信息

[[email protected] ~]# grep -q UUID /etc/fstab
[[email protected] ~]# echo $?
0
[[email protected] ~]# grep -q UUIID /etc/fstab
[[email protected] ~]# echo $?
1

    -A #:after,即显示匹配到的和后两行

[[email protected] ~]# grep -A 2 "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

    -B #:before,即显示匹配到的和前两行

[[email protected] ~]# grep -B 2 "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

    -C #:显示前后各两行

[[email protected] ~]# grep -C 2 "root" /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
--
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

  4、基本正则表达式元字符

    a、字符匹配

      .:匹配任意单个字符

[[email protected] ~]# grep "r..t" /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
tomcat:x:53:53:Apache Tomcat:/usr/share/tomcat:/sbin/nologin

      []:匹配指定范围内的任意单个字符

      [^]:匹配指定范围外的任意单个字符

        [:dlgit:]、[:lower:]、[:upper:]、[:alpha:]、[:alnum:]、[:punct:]、[:space:]

    b、匹配次数:用在要指定其出现的次数的字符的后面,用于限制其前面字符出现的次数,默认工作于贪婪模式

        *:匹配其前面字符任意次:0,1,多次

          例如:grep "x*y"

            abxy:可以匹配到

            aby:可以匹配到

            xxxxxy:可以匹配到

            yab:可以匹配到

        .*:匹配任意长度的任意字符

        \?:匹配其前面的字符0次或1次,其前面字符是可有可无的

[[email protected] ~]# grep "x*y" grep.txt
abxy
aby
xxxxxy
yab
[[email protected] ~]# grep "x\?y" grep.txt
abxy
aby
xxxxxy
yab

        \+:匹配其前面的字符1此或多次;即前面的字符至少要出现1次

[[email protected] ~]# grep "x\+y" grep.txt
abxy
xxxxxy

        \{m\}:匹配前面字符m次

[[email protected] ~]# grep "x\{1\}y" grep.txt
abxy
xxxxxy
[[email protected] ~]# grep "x\{2\}y" grep.txt
xxxxxy

        \{m,n\}:匹配其前面的字符至少m次,至多n次;

[[email protected] ~]# grep "x\{2,5\}y" grep.txt
xxxxxy

          \{0,n\}:至多n次

          \{m,\}:至少m此

    c、位置锚定

      ^:行首锚定:用于模式的最左侧

      $:行尾锚定:用于模式的最右侧

      ^PATTERN$:用于PATTERN来匹配整行

        ^$:空白行;

        ^[[:space:]]*$:空行或包含空白字符的行

      单词:

    d、分组及引用

1:01:46

原文地址:https://www.cnblogs.com/Presley-lpc/p/12092552.html

时间: 2024-08-25 20:51:37

linux学习20 运维核心技能-grep命令与基本正则表达式的相关文章

Linux 学习34 运维加薪技能-btrfs文件系统管理与应用

一.回顾 1.lvm2 lvm:边界动态扩展或收缩:快照: pv --> vg --> lv PE: LE: 2.dd:复制 二.btrfs文件系统:(技术预览版) 1.Btrfs(B-tree,Butter FS,Better FS),GPL,Oracle从2007年左右开始研发,使用写时复制机制(COW):其设计就是为了用来取代ext3/ext4的 2.核心特性 a.多物理卷支持:btrfs可由多个底层物理卷组成:支持RAID,以联机“添加”,“移除”,“修改” b.写时复制更新机制(Co

Linux下一些运维服务器的适用命令

这一次将陆续给出一些实用的命令组合,以完成一些比较常用的运维任务.1.查看MySQL数据库连接数(未完持续) 原文地址:https://blog.51cto.com/yzmlinux/2484272

linux学习33 运维高级技能-在Linux实现LVM逻辑卷及快照

一.LVM2 1.LVM:Logical Volume Manager,Version:2 LVM有点类似于我们的软raid,不过他们的驱动完全相反,我们的软raid用的是内核中的md模块,而LVM用的是dm模块,也就是device mapper(设备映射组件). 2.dm:device mapper,将一个或多个底层块设备组织成一个逻辑设备的模块 3.我们首先将我们的物理硬盘设备可用创建为PV,也就是可用记录元数据的设备,然后再将我们的多个pv组成VG,在组成VG之前我们的PV是不会划分成PE

Linux界顶级运维专家马哥今晚亲自带你飞,错过了再等一年!

良心提示:文末有彩蛋哦! 精彩纷呈.干货不能再多的马哥2016Linux运维公开课第一季完美落幕! 2016年的春天,每周三都有马哥Linux运维公开课,你都参加了吗?马哥Linux运维公开课第一季在来自阿里的罗老师的<应运而生的架构>完美落幕! 错过了第一季,你还要错过第二季吗? 本周三由马哥教育创始人-马哥作为先锋,先为小伙伴们带来一场Linux学习饕餮盛宴--<Linux运维工程师学习路线图>!速度带上你的运维小(hao)伙(ji)伴(you)报名马哥Linux运维公开课第二

《Linux学习并不难》Linux常用操作命令(14):grep命令查找文件中符合条件的字符串

8.14  <Linux学习并不难>Linux常用操作命令(14):grep命令查找文件中符合条件的字符串 使用grep命令可以查找文件内符合条件的字符串.          命令语法: grep [选项] [查找模式] [文件] 命令中各选项的含义如表所示. 选项 选项含义 -E 模式是一个可扩展的正则表达式 -F 模式是一组由断行符分隔的定长字符串 -P 模式是一个Perl正则表达式 -b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量 -c 只显示匹配行的数量 -i 比较时不

Linux云自动化运维第四课

Linux云自动化运维第四课 一.vim 1.vim光标移动 1)在命令模式下 :数字  ###移动到指定的行 G  ###文件最后一行 gg  ###文件第一行 2)在插入模式下 i  ###光标所在位置插入 I  ###光标所在行行首 a  ###光标所在字符的下一个位置 A  ###光标所在行行尾 o  ###光标所在行下一行 O  ###光标所在行上一行 s  ###删除光标所在字符插入 S  ###删除光标所在行插入 2.vim的退出模式 :q  ###当用vim打开文件但没有对字符作

老男孩linux+Python高薪运维就业班第一关课后上机实战考试题

老男孩教育linux+Python高薪运维就业班第一关课后上机实战大考察 (开课第三天上机考试题) (每题10分共130分,过100即可,请给出详细步骤) 1.创建目录/data/oldboy ,并且在该目录下创建文件oldboy.txt,然后在文件oldboy.txt里写入内容"inet addr:10.0.0.8 Bcast:10.0.0.255 Mask:255.255.255.0"(不包含引号). 2.将题1中的oldboy.txt文件内容通过命令过滤只输出如下内容: 10.0

关于Linux主流框架运维工作剖析

LINUX是开源的,这也是最主要的原因,想学Windows,Unix对不起,没有源代码.也正是因为这样,LINUX才能够像雪球一样越滚越大,发展到现在这种规模.今天将为大家带来关于Linux主流框架运维工作剖析,大家一定要认真阅读哦~ 随着IT运维的不断发展,尤其的Linux的飞速发展,越来越多的企业开始使用Linux操作系统平台,例如CentOS.RedHat.Ubuntu.Fedora等等,成千上亿个网站涌现在当今互联网,互联网已经成为必不可少的工具,那今天我们跟大家一起来分享讨论目前用的最

linux故障定位,运维必备

linux故障定位,运维必备 背景有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源.这时候就需要登录服务器进一步深入分析问题的根源.那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题.所以,分析问题和踩坑是非常锻炼一个人的成长和提升自我能力.如果我们有一套好的分析工具,那将是事半功倍,能够帮助大家快速定位问题,节省大家很多时间做更深入的事情. 说明本篇文章主要介绍各种问题定位的工具以及会结合案例分析问题. 分析问题的方法论套用5W2H方法,可以