Linux正则表达式练习
练习一
1、生成30位的随机口令
[root@centos7 ~]#cat /dev/urandom | tr -dc "[:alnum:]" | head -c30
RJL5qcA5PsQHnYE4kXui0oNkm1FNh1
2、判断主机版本号
[root@centos7 ~]#grep -o "[0-9]\+" /etc/centos-release | head -n1
练习二
1、找出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])\>"
2、查出分区空间使用率的最大百分比值
[root@centos7 ~]#df | grep "/dev/sd" | grep -o "[0-9]*%" | grep -o "[0-9]\+" | sort -n | tail -1
3、查出用户UID最大值的用户名、UID及shell类型
[root@centos7 app]#cat /etc/passwd | sort -nr -t: -k3 | head -n1 | cut -d: -f1,3,7
nfsnobody:65534:/sbin/nologin
4、查出/tmp的权限,以数字方式显示
方法一:
[root@centos7 app]#stat -c %a /tmp
1777
方法二:
[root@centos7 app]#stat /tmp | grep Uid | cut -d\( -f2 | cut -d/ -f1
1777
方法三
stat /tmp | grep Uid | cut -d\( -f2 | head -c4
5、统计当前连接本机的每个远程主机IP的连接数,并按从大到小排序
显示文件/etc/init.d/functions所有方法
方法一
grep ".*{$" /etc/init.d/functions | tr -d {
方法二
[root@centos7 ~]#grep -o "^.*()" /etc/init.d/functions
规范方法三
grep "^[[:alnum:]_]\+[[:space:]]*()" /etc/init.d/functions
练习三
1、显示/proc/meminfo文件中以大小写s开头的行(要求:使用两种方法,不要理解以s开头的单词)
grep -i "^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: -f7
4、找出/etc/passwd中的两位或三位数
grep -o "\<[0-9]\{2,3\}\>" /etc/passwd
5、显示CentOS7的/etc/grub2.cfg文件中,至少以一个空白字符开头的且后面存非空白字符的行
grep "^[[:space:]]\+[^[:space:]]" /etc/grub2.cfg
6、找出“netstat -tan”命令的结果中以‘LISTEN’后跟任意多个空白字符结尾的行
netstat -tan| grep "LISTEN[[:space:]]*$"
7、显示CentOS7上所有系统用户的用户名和UID
cut -d: -f1,3 /etc/passwd | grep "\<[[:digit:]]\{,3\}$"
"\<[[:digit:]]\{,3\}\>"(123用户名能匹配) 注意与上正则区别
8、添加用户bash、testbash、basher、sh、nologin(其shell
为/sbin/nologin),找出/etc/passwd用户名同shell名的行
grep "^\(.*\):.*\<\1$" /etc/passwd
9、利用df和grep,取出磁盘各分区利用率,并从大到小排序
df | grep "^/dev/sd" | grep -o "[0-9]\{1,3\}%" | grep -o "[0-9]\{1,3\}" | sort -rn
练习四
1、显示三个用户root、mage、wang的UID和默认shell
[root@centos7 ~]#grep "^\(root\)\|^\(xiaojun\)\|^\(zilong\)" /etc/passwd | cut -d: -f3,7
0:/bin/bash
1001:/bin/bash
1011:/bin/bash
2、找出/etc/rc.d/init.d/functions文件中行首为某单词(包括下划线)后面跟一个小括号的行
[root@centos7 ~]#grep -o "^[[:alpha:]]\+\>(" /etc/rc.d/init.d/functions
checkpid(
daemon(
killproc(
…..
3、使用egrep取出/etc/rc.d/init.d/functions中其基名
echo "/etc/rc.d/init.d/functions" | egrep -o "[^/]+$"
扩展:取出/etc/rc.d/init.d/基名
[root@centos7 ~]#echo "/etc/rc.d/init.d/" | egrep -o "[^/]+/?$"
4、使用egrep取出/etc/rc.d/init.d/functions路径的目录名
[root@centos7 ~]#echo "/etc/rc.d/init.d/functions" | egrep -o "^/.*/" | egrep -o "^/.*[^/]"
5、统计last命令中以root登录的每个主机IP地址登录次数
last | grep "root" | tr -s " " ":" | cut -d : -f3 | egrep "([0-9]+.){3}[0-9]+" | uniq -c
6、利用扩展正则表达式分别表示
0-9:[0-9]
10-99 : [1-9][0-9]
100-199: 1[0-9][0-9]
200-249: 2[0-4][0-9]
250-255: 25[0-5]
7、显示ifconfig命令结果中所有IPv4地址
[root@centos7 ~]#ifconfig ens33 | egrep -o "\<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>"
192.168.10.150
255.255.255.0
192.168.10.255
Linux正则表达式练习的更多相关文章
- linux正则表达式之-基础正则表达式(基于grep)
linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或 ...
- 关于清晰讲解linux正则表达式的博文分享
http://www.cnblogs.com/chengmo/archive/2010/10/10/1847287.html linux shell 正则表达式(BREs,EREs,PREs)差异比 ...
- Linux正则表达式grep与egrep
grep -io "http:/=[A-Z0-9]\{16\}" ./wsxf.txt >wsxf_urls.txt Linux正则表达式grep与egrep 正则表达式:它 ...
- 【Linux】linux正则表达式及通配符
正则表达式就是用于匹配每行输入的一种模式,模式是指一串字符序列.拥有强大的字符搜索功能.也非常方便的搜索过滤出我们想要的内容. linux正则表达式分为基本正则表达式(Basic Regexp)和扩展 ...
- Linux 正则表达式_010
Linux 正则表达式 标注:本教程只针对linux运维的三剑客命令awk,sed,grep正则表达式 什么是正则表达式? 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法通过定义的这 ...
- linux正则表达式(基础正则表达式+扩展正则表达式)
正则表达式应用非常广泛,例如:php,Python,java等,但在linux中最常用的正则表达式的命令就是grep(egrep),sed,awk等,换句话 说linux三剑客要想能工作的更高效,就一 ...
- linux 正则表达式和通配符
linux 正则表达式和通配符 通配符用于查找文件 包含三种: * ? [] * 代表任意个任意字符 ? 代表任意一个字符 [] 代表中括号中的一个字符 正则表达式(正则是包含匹配,只要包含就可以匹 ...
- 七 、linux正则表达式
为处理大量的字符串而定义的一套规则和方法 1)linux正则表达式以行为单位处理 2)alians grep = “grep –color=auto”,让匹配的内容显示颜色 3)注意字符集,expor ...
- (转)linux正则表达式详解
linux正则表达式详解 http://blog.csdn.net/wuliowen/article/details/64131815 1:什么是正则表达式: 简单的说,正则表达式就是处理字符串的方法 ...
- linux正则表达式企业级深度实践案例1
linux正则表达式结合三剑客企业级实践: 1.取系统ip [root@redhat~]# ifconfig eth0 解答: 替换命令: sed 's#支持正则位置##g' file 先取第 ...
随机推荐
- 浅入深出Vue:工具准备之WebStorm安装配置
浅入深出Vue之工具准备(一):WebStorm安装配置 工欲善其事必先利其器,让我们先做好准备工作吧 导航篇 WebStorm安装配置 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版 ...
- Python:python抓取豆瓣电影top250
一直对爬虫感兴趣,学了python后正好看到某篇关于爬取的文章,就心血来潮实战一把吧. 实现目标:抓取豆瓣电影top250,并输出到文件中 1.找到对应的url:https://movie.douba ...
- 查询sql 索引
SELECT indexname = a.name , tablename = c. name , indexcolumns = d .name , a .indidFROM sysindexes a ...
- docker安装mysql5.7
查看镜像 docker search mysql 拉取镜像 docker pull mysql:5.7 运行镜像 docker run --name mysql -p 3306:3306 -e MYS ...
- 一、Python学习之路
基础篇 第一章 Python介绍.安装.使用 Python 简介 Python 安装 第一个Python程序 Python 解释器 字符编码与解码 动态语言与静态语言的区别 变量及简单 ...
- python元组类型的变量以及字符串类型的变量作为参数进行传值
今天做selenium元素对象剥离时(我把元素对象都放到了元组类型的变量中,格式:user = (“id”,“X-Auto-2”)),遇到一个元组变量,以及str字符串变量一起作为参数传值的问题,发现 ...
- 【easy】141. Linked List Cycle
非常简单的题:判断链表有没有环(用快慢指针) /** * Definition for singly-linked list. * struct ListNode { * int val; * Lis ...
- 留恋 nyoj 854
留恋 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 大家都知道,高中的时候,座位基本都是固定的,但是对于视力不好却又坐在后面的人是很不公平的. 念情的高中班主任安哥 ...
- Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案
1 cartool 下载地址 https://github.com/steventroughtonsmith/cartool 由于在macOS Mojave系统上 之前代码会报错需要修改main.m ...
- linux统配符
linux通配符注意:linux的通配符和三剑客的表达式是不一样的,因为,代表的意义是有较大区别的.通配符一般用户命令行bash环境,而linux正则表达式用于grep,sed,awk场景. * ...