每日回顾:
1.什么是挂载,如何挂载光盘到/mnt
2.说说/etc/rc.local /etc/fstab. /etc/hosts/etc/profile /var/log/messages /var/log/secure 作用
3.写出网卡配置文件绝对路径
4.红帽系统中如何配置DNS
5.Linux下面安装软件的方式以及使用到的命令
6.说说如何查看系统内存和系统负载
free -h /proc/meminfo
w /proc/loadavg
w uptime top 研究htop
7.什么是系统负载 什么时候算系统负载高或低
查询核心总数 lscpu /proc/cpuinfo
grep与正则的骚操作
[root@oldboyedu59 ~]# #在 /etc/services 文件中过滤出包含3306的行
[root@oldboyedu59 ~]# grep '3306' /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
普通正则之 ^ :以什么什么开头
[root@oldboyedu59 ~]# #在这个文件中找出以ssh开头的行
[root@oldboyedu59 ~]# grep '^ssh' /etc/services
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
ssh 22/sctp # SSH
sshell 614/tcp # SSLshell
sshell 614/udp # SSLshell
ssh-mgmt 17235/tcp # SSH Tectia Manager
ssh-mgmt 17235/udp # SSH Tectia Manager
通配符与正则区别?
*.txt *.log
touch {01..10}
作用 支持的命令
通配符 : 方便我们进行查找文件 Linux下面大部分命令支持。
正则 : 方便我们进行过滤(在文件中找内容) Linux三剑客 开发语言Python Go PHP JAVA。
通配符:
ls /oldboy/*.txt
find /oldboy/ -type f -name '*.log'
touch lidao{01..10}.txt
正则表达式
[root@oldboyedu59 ~]# #在 /etc/services 文件中过滤出包含3306的行
[root@oldboyedu59 ~]# grep '3306' /etc/services
mysql 3306/tcp # MySQL
mysql 3306/udp # MySQL
[root@oldboyedu59 ~]# #在这个文件中找出以ssh开头的行
[root@oldboyedu59 ~]# grep '^ssh' /etc/services
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
ssh 22/sctp # SSH
sshell 614/tcp # SSLshell
sshell 614/udp # SSLshell
ssh-mgmt 17235/tcp # SSH Tectia Manager
ssh-mgmt 17235/udp # SSH Tectia Manager
普通正则之 $ 符号 :以……结尾
[root@oldboyedu59 /oldboy]# grep ' ' oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu59 /oldboy]#
[root@oldboyedu59 /oldboy]# grep 'm $' oldboy.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
cat-A
[root@oldboyedu59 /oldboy]# cat -A oldboy.txt
I am oldboy teacher!$
I teach linux.$
$
I like badminton ball ,billiard ball and chinese chess!$
my blog is http://oldboy.blog.51cto.com $
our size is http://blog.oldboyedu.com $
my qq is 49000448$
$
not 4900000448.$
my god ,i am not oldbey,but OLDBOY! $
转义字符: \
\n:换行
\t:Tab(Linux下八个空格,windwos下四个空格)
[root@oldboyedu59 /oldboy]# echo -e "oldboy\noldgirl\nalex\nlidao"
oldboy
oldgirl
alex
lidao
[root@oldboyedu59 /oldboy]# echo -e "oldboy\noldgirl\nalex\n\t\t\tlidao"
oldboy
oldgirl
alex
lidao
[root@oldboyedu59 /oldboy]#
[root@oldboyedu59 /oldboy]#
[root@oldboyedu59 /oldboy]#
[root@oldboyedu59 /oldboy]#
echo -n 不换行输出?
[root@oldboyedu59 /oldboy]# echo oldboy >lidao.txt
[root@oldboyedu59 /oldboy]# ll lidao.txt
-rw-r--r-- 1 root root 7 Apr 17 09:55 lidao.txt
[root@oldboyedu59 /oldboy]# echo -n oldboy >lidao.txt
[root@oldboyedu59 /oldboy]# ll lidao.txt
-rw-r--r-- 1 root root 6 Apr 17 09:55 lidao.txt
[root@oldboyedu59 /oldboy]#
正则解释:
[root@oldboyedu59 /oldboy]# grep '^.*o' oldboy.txt
I am oldboy teacher!
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
- grep '^.o*' oldboy.txt
^.o*
当表示出现0次 相当于 ^.
当表示出现0次以上 相当于 ^.o ^.oooo ^.oooooooooo
正则括号系列
() 小括号
[] 中括号
{} 大括号 花括号
grep '[a-z]' oldboy.txt
grep '[A-Z]' oldboy.txt
grep '[a-zA-Z]' oldboy.txt=grep '[a-Z]' oldob
练习题:
1.显示以m或n或o开头的行
[root@lusanbao /tmp/oldboy]# grep '^[mon]' oldboy.txt
m oldboy teacher!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
2.以m或n或点结尾的行
[root@lusanbao /tmp/oldboy]# grep '[mn.]$' oldboy.txt
I teach linux.
not 4900000448.
3.示以m或n或o开头的 并且 以m或n或点结尾的行
[root@lusanbao /tmp/oldboy]# grep '^[mon].*[mn.]$' oldboy.txt
not 4900000448.
显示以m或n或o开头的行
[root@oldboyedu59 /oldboy]#
[root@oldboyedu59 /oldboy]# grep '^[mno]' oldboy.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
以m或n或点结尾的行
[root@oldboyedu59 /oldboy]#
[root@oldboyedu59 /oldboy]# grep '[mn.]$' oldboy.txt
I teach linux.
not 4900000448.
显示以m或n或o开头的 并且 以m或n或点结尾的行
[root@oldboyedu59 /oldboy]# grep '^[mno].*[mn.]$' oldboy.txt
not 4900000448.
&&表示并且 命令
grep '^[mno]' oldboy.txt && grep '[mno] $' oldboy.txt
grep '^[mon][mo.]$' /tmp/oldboy
[root@oldboyedu59 /oldboy]# grep '^[mno]' oldboy.txt
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu59 /oldboy]# grep '^[mno]' oldboy.txt |grep '[mn.]$'
not 4900000448.
找出oldboy.txt 中连续出现的字母(大写或小写)
[root@lusanbao /tmp/oldboy]# egrep '[a-Z]+' oldboy.txt
m oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
解释以下这两条命令:
grep '[mn^o]' oldboy.txt
匹配除了m n o ^ 之外的内容
egrep '^[mon]|[mo.]$' oldboy.txt
匹配以 m o n 开头或 m o .(点)结尾的字符
扩展正则表达式之 |
查看环境
[root@oldboyedu59 /oldboy]# cat oldboy.txt
I am oldboy teacher!
I teach linux.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my qq is 49000448
not 4900000448.
my god ,i am not oldbey,but OLDBOY!
\\\\\...???$$$$^^&^
| 正确的使用方式
[root@oldboyedu59 /oldboy]# egrep 'oldboy|linux' oldboy.txt
I am oldboy teacher!
I teach linux.
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
扩展正则表达式之 ()
[root@oldboyedu59 /oldboy]# egrep 'oldboy|oldbey' oldboy.txt
I am oldboy teacher!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu59 /oldboy]# egrep 'oldb[oe]y' oldboy.txt
I am oldboy teacher!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu59 /oldboy]# egrep 'oldbo|ey' oldboy.txt
I am oldboy teacher!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my god ,i am not oldbey,but OLDBOY!
[root@oldboyedu59 /oldboy]# egrep 'oldb(o|e)y' oldboy.txt
I am oldboy teacher!
my blog is http://oldboy.blog.51cto.com
our size is http://blog.oldboyedu.com
my god ,i am not oldbey,but OLDBOY!
如何使用正则匹配身份证号
创建环境vim id.txt
金 211324198705244720
万 500224197105168312
任 1231231231oldboy
任 3oldboy
任 lidao97303136098
任 alex2197303136098
任 350182197303oldgir
吕 211282199209113038
孔 150000198309176071
邹 371001197412221284
贺 130185200011215926
杜 362522198711278101
向 14052219961008852X
取出文件中正确的身份证号码的行
方法一 egrep '[0-9X]{18}' id.txt
方法二(更严谨)egrep '[0-9]{17}[0-9X]$' id.txt
基础 扩展
含义
支持命令 grep/sed/awk grep -E/egrep 或 sed -r 或 awk
预习:
sed
查找
如何替换
sed中如何使用后向引用
取出ip
ip a s eth0
ip address show eth0
三剑客笔试题
https://www.jianshu.com/p/61d8883719ac
【各种坑】四剑客和正则表达式常见故障及困惑集合
https://www.jianshu.com/p/9eceea81cc12