Linux第三周

一.正则表达式和扩展正则表达式

1.首先有各种工具来对文本进行的查看,分析,统计

  cat 命令:查看文本的工具

Linux第三周

   cat主要有三大功能:
1.一次显示整个文件。$ cat filename
2.从键盘创建一个文件。$ cat > filename  
   只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件: $cat file1 file2 > file
参数:
-n  由 1 开始对所有输出的行数编号
-b  和 -n 相似,只不过对于空白行不编号
-s  当遇到有连续两行以上的空白行,就代换为一行的空白行
例:
把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
cat -n textfile1 > textfile2

2.cut  抽取文件 

   cut -d(指明分隔符,默认是:)

如显示文件的情况:例cut  -d: –f1 /etc/passwd  抽取第一行的

Linux第三周

3.其次有 head tail 行前 行后的提取  文本的整理wl  数据的排序sort距离可以说明

   3.1、找出ifconfig “网卡名” 命令结果中本机的IPv4地址

centos7
ifconfig ens33|head -n2|tail -n1 |tr -s ‘ ‘|cut -d” ” -f3
centos6
ifconfig eth0|head -n2 |tail -n1|tr -s ” ” : |cut -d: -f4
ifconfig eth0|head -n2 |tail -n1|cut -d: -f2|cut -d” ” -f1
ifconfig eth0|head -2 |tail -1|cut -d: -f2|cut -d”B” -f1 

    3.2查出分区空间使用率的最大百分比值

df |tr -s ” ” %|cut -d% -f5|sort -nr|head -n1
df -i |tr -s ” ” %|cut -d% -f5|sort -nr|head -n1
    3.3、查出用户UID最大值的用户名、UID及shell类型
sort -t: -k3 -n /etc/passwd|tail -n1|cut -d: -f1,3,7

4 Linux 文本处理三剑客  grep awk sed  本次介绍的重点就是grep

grep 文本搜索工具,根据用户的要求对文本进行处理。

 模式:有正则表达式来进行过滤处理

grep root /etc/passwd

 grep “$USER” /etc/passwd

 grep ‘$USER’ /etc/passwd

 grep
`whoami` /etc/passwd

grep的命令有很多:

   -v: 显示不被pattern匹配到的行 

 -i: 忽略字符大小写 

 -n:显示匹配的行号

  -c: 统计匹配的行数 

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

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

 -A #: after, 后#行 

 -B #: before, 前#行 

 -C #:context, 前后各#行 

 -e:实现多个选项间的逻辑or关系
grep
–e ‘cat ’
-e ‘dog’ file 

 –
w:匹配整个单词 

 –
E:使用ERE 

 –
F:相当于fgrep,不支持正则表达式

5 正则表达式和扩展正则表达式

其中:正则表达式

元字符分类:字符匹配、匹配次数、位置锚定、分组 

5.1 字符匹配

. 匹配任意单个字符

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

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

 [:alnum:] 字母和数字

 [:alpha:] 代表任何英文大小写字符,亦即 A-Z, a-z
[:lower:] 小写字母

 [:upper:] 大写字母

 [:blank:] 空白字符(空格和制表符)

 [:space:] 水平和垂直的空白字符(比[:blank:]包含的范围广)

 [:cntrl:] 不可打印的控制字符(退格、删除、警铃…)

 [:digit:] 十进制数字 [:xdigit:]十六进制数字
[:graph:] 可打印的非空白字符

 [:print:] 可打印字符

 [:punct:] 标点符号

 5.2 匹配次数

  * 匹配前面的字符任意次,包括0次
贪婪模式:尽可能长的匹配
.

* 任意长度的任意字符

 \? 匹配其前面的字符0或1次

 \+ 匹配其前面的字符至少1次

 \{n\} 匹配前面的字符n次

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

 \{,n\} 匹配前面的字符至多n次

 \{n,\} 匹配前面的字符至少n次

5.3 位置锚定

   位置锚定:定位出现的位置
^ 行首锚定,用于模式的最左侧
$ 行尾锚定,用于模式的最右侧
^PATTERN$ 用于模式匹配整行

 ^$ 空行 

^[[:space:]]*$ 空白行

 \< 或 \b 词首锚定,用于单词模式的左侧

 \> 或 \b 词尾锚定;用于单词模式的右侧
\
匹配整个单词

例如:

 1  显示/proc/meminfo文件中以大小s开头的行(要求:使用两
种方法) 

grep  “^\(s\|S\)”  /proc/meminfo
grep ^[sS] /proc/meminfo

 2、显示/etc/passwd文件中不以/bin/bash结尾的行 

grep -v “/bin/bash$” /etc/passwd

 3、显示用户rpc默认的shell程序 

grep “^rpc\>” /etc/passwd |cut -d: -f1,7 

  4、找出/etc/passwd中的两位或三位数

grep -o “\<[0-9]\{2,3\}\>” /etc/passwd

扩展正则表达式是对正则表达式的一个改进,升级

如:

  5 统计last命令中以root登录的每个主机IP地址登录次数

   last | grep “root” | egrep -o “([0-9]|[0-9]{2}|[0-9]{3})(\.([0-9]|[0-9]{2}|[0-9]{3})
    ){3}”|sort|uniq -c  

 6、利用扩展正则表达式分别表示0-9、10-99、100-199、
200-249、250-255 

[0-9]
[1-9][0-9]
1[0-9]{2}
2[0-4][0-9]
25[0-5]

 7、显示ifconfig命令结果中所有IPv4地址

ifconfig |egrep -o “\<(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>” 

二vim 编辑器 shell 脚本编程

打开文本编辑器(可以使用 vi/vim 命令来创建文件)

新建一个3文件hello。sh 是扩展名 表明你用的shell(其中的sh是shell)

首先开头 #!是向解释器传达信息

然后echo 向窗体输送文本

一个简单的脚本:

第一 :创建文件 vim hello.sh

第二:按 i 建进入内容编辑模式

第三:#!/bin/bash

echo———–

echo———–

保存退出 :wq

给权限:chmod +x hello.sh

最后调试脚本  bash hello.sh 或者

./hello.sh

  

原创文章,作者:gd1479,如若转载,请注明出处:http://www.178linux.com/77433

(0)
gd1479gd1479
上一篇 2017-06-04 11:25
下一篇 2017-06-04 14:11

相关推荐

  • Linux DNS服务系列之主从复制、子域授权和转发、view配置详解

    前言 上文我们讲解了DNS服务的原理及正反向解析配置,相信大家对DNS服务已经有了初步了解。接下来,让我们进一步了解DNS服务的其它功能,本文将详解主从复制、子域授权和转发以及view的相关配置。 主从服务器配置 主从服务器关系 如果公司内DNS服务器负载过重或者为了实现冗余这一类功能就需要用到一个备份DNS服务器,备份服务器和主DNS服务器就形成了主从关系…

    Linux干货 2015-04-13
  • 计算机和操作系统的一些概念

    一、计算机组成     (一) 硬件         CPU:运算器、控制器、寄存器、缓存器         存储器:主内存,RAM(Random Access…

    Linux干货 2016-08-15
  • 萝卜运维记-第二周

    part2–针对文件命令的介绍,使用,演示 Ⅰ Linux文件管理类命令常用方法 Ⅱ bash的工作特性,相关示例 Ⅲ 文件的元数据有哪些,以及所代表的含义。 Ⅳ 相关命令的操作,和结果演示。 ①Linux文件管理命令常用方法 Linux常见文件类型 -:常规文件;即f; d: directory…

    Linux干货 2016-12-12
  • 子网掩码快速划分-心算

    问题状况: 不管作为一名网络工程师还是一名运维工程师,快速心算划分出网络掩码是必备得技能,      为什么要进行子网掩码划分? 纯二层环境不能隔离广播 有安全 管理方面的问题 解决办法:在二层环境下增加三层设备 将原本的一个主类网络号划分成多个子网     掩码基础知识:     注意:此步没记住不要往下进行     死记硬背1:     2^0=1   …

    Linux干货 2017-03-26
  • 【26期】Linux第二周学习小总结

    关于用户组的一些小小的整理     本周学习很多的知识,一些文件管理的技巧和命令,重定向和管道的实用技巧和拓展,最后则是到了我们的用户组的权限和管理,既然说到了管理,我们都知道在Linux中,老师讲的最多的一句话就是一切皆文件,既然是文件就会有用户去用,在里面进行各种的操作,比如增删改查啊,对文件的重新定义啊,那我们就…

    2017-07-21
  • 计算机的组成及其功能

    计算机由五大组成部分 运算器 运算器主要负责数据的算术运算或者逻辑运算 控制器 控制器负责调度系统指令 存储器 存储数据的地方,如硬盘和内存 输入设备和输出设备 主要用于人机交互,如键盘、鼠标,显示器

    2018-03-04