1.
[root@huahua ~]# vim /etc/ssh/sshd_config
[root@huahua ~]# systemctl restart sshd
2.通配符和正則的區(qū)別
?作用支持命令
通配符方便我們找文件Linux大部分命令都可用
正則方便我們過濾文件(在文件中找內(nèi)容)Linux三劍客 ?開發(fā)語言Phython?Go?PHP?JAVA
3.正則表達(dá)式(Regular?Expression??RE)
????發(fā)明1套符號晦鞋,不同符號有不同含義,方便我們再文件中查找/過濾內(nèi)容
(1)基礎(chǔ)正則(Basic?RE????BRE)
^????:以什么開頭
$????:以什么結(jié)尾
^$ ??:查找空行(這一行什么都沒有)
.* ??:所有任意字符
.????:任意一個字符
* :匹配前一個字符 ???只能放字符后面,不允許放前面?前一個字符連續(xù)出現(xiàn)0次或0次以上
[] ??:匹配里面任意一個字符(綜括號)
[^] ?:不要里面的任意字符
\????:轉(zhuǎn)義字符
?[root@huahua ~]# cat /etc/ssh/sshd_config > /tmp/test.txt ???//把/etc/ssh/sshd_config的內(nèi)容放在/tmp/test.txt里面
[root@huahua ~]# grep '^#' /tmp/test.txt ???//篩選出/tmp/test.txt下以#開頭的文件
[root@huahua ~]# grep 'no$' /tmp/test.txt ???//篩選出/tmp/test.txt下以$結(jié)尾的文件
[root@huahua ~]# grep -n '^$' /tmp/test.txt ???//篩選/tmp/test.txt下的空格???-n顯示行號
[root@huahua ~]# grep 'n*' /tmp/test.txt ???//匹配帶n的字符
[root@huahua ~]# grep -nv "^$" oldboy.txt ???//-v排除空行??-n顯示行號
[root@huahua ~]# grep " " oldboy.txt ???//過濾出空格??(空格看不出來铅辞,拉黑就看到紅色的空格)
[root@huahua ~]# grep?-o "......"?oldboy.txt ???//一次查看六個字符 ??(6個.代表一次查看6個字符?-o是顯示過程)
①撬棍系列
加撬棍斗躏,是轉(zhuǎn)移字符坏怪,作用舱馅,脫掉馬甲硅确,打回原型
\n ???回車(換行)
\t ???tab(空格)
[root@huahua ~]# grep?".$" oldboy.txt ???//以任意字符為結(jié)尾
[root@huahua ~]# grep "\.$"?oldboy.txt ???//查看oldboy.txt中以.為結(jié)尾
②echo
-n ???不輸出每行結(jié)尾的回車
-e ???讓echo支持轉(zhuǎn)義符 \n \t
[root@huahua ~]# echo -e?"\nhuahua\txixi\zhizhi"????//可以看到huahua換行了铛楣,huahua和xixi之間有空格
追加123之后查看每瞒,可以看到有4個字符,加上-n追加可以看到有3個字符
[root@huahua ~]# grep "0*"?oldboy.txt????//連續(xù)(重復(fù))出現(xiàn)的0
[root@huahua ~]# grep '[a-z]' /tmp/test.txt ???//匹配字母a-z的
[root@huahua ~]# grep " [a-zA-Z] " oldboy.txt ???//匹配a-z?A-Z
[root@huahua ~]# grep " [0-Z] " oldboy.txt ???//匹配0-9?a-z?A-Z
[root@huahua ~]# grep " [a-Z] " oldboy.txt ???//匹配a-z?A-Z
[root@huahua ~]# grep "[0-9]" /tmp/test.txt ???//匹配帶數(shù)字的
[root@huahua ~]# grep '^[mno]' oldboy.txt ???//顯示以m或n或o開頭的行
[root@huahua ~]# grep '[mn.]$' oldboy.txt ???//以m或n或點(diǎn)結(jié)尾的行
[root@huahua ~]# grep '^[mno].*?[mn.]$'?oldboy.txt????//顯示以m或n或o開頭的并且以m或n或點(diǎn)結(jié)尾的行
[root@huahua ~]# grep "[^abc]" oldboy.txt ???//不要abc
(2)擴(kuò)展正則(Extended?RE??ERE)
|?????或者
+?????匹配前一個字符出現(xiàn)一次和一次以上(>=1)
() ???后向引用
{}????前一個字符出現(xiàn)最少n次炕淮,最多m次
b{m,n} 前1字符連續(xù)出現(xiàn)至少m次和最多n次
b{m}前一個字符連續(xù)出現(xiàn)m次
b{m柿估,}前1個字符連續(xù)至少出現(xiàn)m次
b{,n}前一個字符最多出現(xiàn)n次
岸浑????前一個字符出現(xiàn)0次或1次
[root@huahua ~]# egrep '[a-Z]+'?oldboy.txt ???//匹配a-Z出現(xiàn)1次或1次以上
[root@huahua ~]# egrep 'oldboy|linux'?oldboy.txt ???//查找'oldboy或linux
[root@huahua ~]# egrep 'oldb[oe]y ' oldboy.txt ???//查找oldboy或者oldbey
[root@huahua ~]# egrep 'oldb(o|e)y ' oldboy.txt ???//查找oldboy或者oldbey
[root@huahua ~]# egrep ?'0{1,3}' oldboy.txt ???//查找0至少出現(xiàn)1次搏存,最多出現(xiàn)3次
出現(xiàn)的5個0是因?yàn)間rep具有貪婪性
[root@huahua ~]# egrep ?'0{2,4}' oldboy.txt
[root@huahua ~]# egrep ?'0{3}' oldboy.txt
[root@huahua ~]# egrep '[0-9]{17}[0-9X]$'?id.txt ???//查找身份證號
[root@huahua ~]# egrep 'go?d' oldboy.txt ???//查找god或者go?(oldboy.txt內(nèi)必須有g(shù)od和go)
4.括號表達(dá)式
[[:alnum]]:大小寫字母或數(shù)字(也就是0-9)
[root@huahua ~]# egrep [[:alnum:]] oldboy.txt ???
5.man grep ???info?grep????//info比慢更詳細(xì)
6.?Cat -A ???文件中所有隱藏符號,每行結(jié)尾加上$
[root@huahua ~]# cat -A oldboy.txt
?
7.
?基礎(chǔ)正則擴(kuò)展正則
?grep???sed???awkegrep???sed?-r???awk