正則表達(dá)式及grep命令

基本正則表達(dá)式元字符:

字符匹配:

                .:匹配任意單個(gè)字符
                    grep "r..t" /etc/passwd
                []:匹配指定范圍內(nèi)任意單個(gè)字符
                [^]:匹配指定范圍外任意單個(gè)字符
                    [:lower:] [:upper:] [:alpha:] [:alnum:] [:punct:] [:space:]

                    grep "r[[:alpha:]][[:alpha:]]t"

匹配次數(shù):寫在要指定其出現(xiàn)次數(shù)的字符的后面

                *:匹配其前面的字符任意次 0,1,多次
                    grep "x\+y"
                        abxy
                        aby
                        xxxxxy
                        yab
                .*: 匹配任意長(zhǎng)度的任意字符
                \?:匹配其前字符0次或1次
                \+:匹配其前的字符1次或多次,即字符出現(xiàn)至少1次
                \{m\}:匹配其前字符m次
                \{m,n\}:匹配其前字符至少m次,至多n次
                    \{0,n\}:至多n次
                    \{m,\}:至少m次

位置錨定:

                ^:行首錨定 寫在模式最左側(cè)
                $:行尾錨定 寫在模式最右側(cè)
                ^PATTERN$:用于PATTERN來(lái)匹配整行循诉;
                    ^$:空白行;
                    ^[[:space:]]*$:空行或包含空白字符的行;

                \< 或 \b:詞首錨定,用于單詞模式的左側(cè)阳堕;
                \> 或 \b:詞尾錨定袱院,用于單詞模式的右側(cè)嘁字;
                \<PATTERN\>:匹配完整單詞蒿往;
                單詞:非特殊字符組成的連續(xù)字符(字符串)都稱為單詞;
            分組及引用
                \(\):將一個(gè)或多個(gè)字符捆綁在一起棕诵,當(dāng)作一個(gè)整體進(jìn)行處理 反斜線表示轉(zhuǎn)義
                    \(xy\)*ab
                

                Note:
                    分組括號(hào)中的模式匹配到的內(nèi)容會(huì)被正則表達(dá)式引擎自動(dòng)記錄于內(nèi)部的變量中裁良,這些變量為:
                    \1:模式從左側(cè)起,第一個(gè)左括號(hào)以及與之匹配的右括號(hào)之間的模式所匹配到的字符校套;
                    \2:模式從左側(cè)起趴久,第二個(gè)左括號(hào)以及與之匹配的右括號(hào)之間的模式所匹配到的字符;
                    \3
                    ...

grep命令: Global search REgular expression and Print out the line

作用:文本搜索工具搔确,根據(jù)用戶指定的“模式(過(guò)濾條件)”對(duì)目標(biāo)文本逐行進(jìn)行匹配檢查彼棍;打印匹配到的行灭忠;

模式:由正則表達(dá)式的元字符及文本字符所編寫出的過(guò)濾條件;

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

        OPTIONS:
            --color=auto:對(duì)匹配到的文本著色后高亮顯示座硕;
            -i: ignorecase 忽略字符大小寫
            -o: 僅顯示匹配到的字符串本身
            -v: invert-match 反向匹配 顯示未被匹配到的行
            -E:支持使用擴(kuò)展的正則表達(dá)式元字符弛作;
            -q: --quiet, --silent:靜默模式,即不輸出任何信息华匾;

            -A #:after, 后#行
            -B #:before映琳,前#行
            -C #:context,前后各#行

egrep命令:

支持?jǐn)U展的正則表達(dá)式實(shí)現(xiàn)類似于grep文本過(guò)濾功能蜘拉;grep -E

egrep [OPTIONS] PATTERN [FILE...]
        選項(xiàng):
            -i, -o, -v, -q, -A, -B, -C
            -G:支持基本正則表達(dá)式 

擴(kuò)展正則表達(dá)式的元字符:

            字符匹配
                .: 任意單個(gè)字符
                []:指定范圍內(nèi)的任意單個(gè)字符
                [^]:指定范圍外的任意單個(gè)字符

            次數(shù)匹配
                *:任意次 0,1,多次
                ?:0次或1次 
                +:其前字符至少1次
                {m}:其前字符m次
                {m,n}:其前字符至少m次至多n次
                    {0,n}
                    {m,}
            位置錨定
                ^ 行首錨定 
                $ 行尾錨定
                \< \b 詞首錨定
                \> \b 詞尾錨定
            分組及引用
                (): 分組 括號(hào)內(nèi)的模式匹配到的字符會(huì)被記錄于正則表達(dá)式引擎的內(nèi)部變量中 
                后向引用:\1, \2, ...
            或
                a|b:a或者b萨西;
                    C|cat:C或cat
                    (c|C)at:cat或Cat

練習(xí)

1、復(fù)制/etc/skel目錄為/home/tuser1旭旭,要求/home/tuser1及其內(nèi)部文件的屬組和其它用戶均沒有任何訪問(wèn)權(quán)限谎脯。

cp /etc/skel /home/tuser1 
chmod -R go=--- /home/tuser1

2、編輯/etc/group文件持寄,添加組hadoop源梭。

echo "hadoop:x:2017:" >> /etc/group

3、手動(dòng)編輯/etc/passwd文件新增一行稍味,添加用戶hadoop废麻,其基本組ID為hadoop組的id號(hào);其家目錄為/home/hadoop模庐。

echo "hadoop:x:1008:2017::/home/hadoop:/bin/bash" >> /etc/passwd

4烛愧、復(fù)制/etc/skel目錄為/home/hadoop,要求修改hadoop目錄的屬組和其它用戶沒有任何訪問(wèn)權(quán)限掂碱。

cp -r  /etc/skel /home/hadoop 
chmod go=--- /home/hadoop

5怜姿、修改/home/hadoop目錄及其內(nèi)部所有文件的屬主為hadoop,屬組為hadoop顶吮。

chown  -R  hadoop:hadoop  /home/hadoop 

6社牲、顯示/proc/meminfo文件中以大寫或小寫S開頭的行粪薛;用兩種方式悴了;

grep "^[sS]" /proc/meminfo
grep -i "^s" /pro/meminfo 

7、顯示/etc/passwd文件中其默認(rèn)shell為非/sbin/nologin的用戶违寿;

grep -v "/sbin/nologin$" /etc/passwd | cut -d: -f1 

8湃交、顯示/etc/passwd文件中其默認(rèn)shell為/bin/bash的用戶;

grep "/bin/bash" | cut -d: -f1 

9藤巢、找出/etc/passwd文件中的一位數(shù)或兩位數(shù)搞莺;

grep -o  "\<[0-9]\{1,2\}\>" /etc/passwd

10、顯示/boot/grub/grub.conf中以至少一個(gè)空白字符開頭的行掂咒;

grep "^[[:space:]]\+" /boot/grub2/grub.cfg 

11才沧、顯示/etc/rc.d/rc.sysinit文件中以#開頭迈喉,后面跟至少一個(gè)空白字符,而后又有至少一個(gè)非空白字符的行温圆;

grep "^#[[:space:]]\+[^[:space:]]\+" /boot/grub2/grub.cfg

12挨摸、打出netstat -tan命令執(zhí)行結(jié)果中以‘LISTEN’,后跟空白字符結(jié)尾的行岁歉;

netstat -tan | grep 'LISTEN[[:space:]]\+$' 

13得运、添加用戶bash, testbash, basher, nologin (此一個(gè)用戶的shell為/sbin/nologin),而后找出當(dāng)前系統(tǒng)上其用戶名和默認(rèn)shell相同的用戶的信息锅移;

grep -E "^([^:]+).*\1$" /etc/passwd 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末熔掺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子非剃,更是在濱河造成了極大的恐慌置逻,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件努潘,死亡現(xiàn)場(chǎng)離奇詭異诽偷,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)疯坤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門报慕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人压怠,你說(shuō)我怎么就攤上這事眠冈。” “怎么了菌瘫?”我有些...
    開封第一講書人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蜗顽,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我雨让,道長(zhǎng)雇盖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任栖忠,我火速辦了婚禮崔挖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庵寞。我一直安慰自己狸相,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開白布捐川。 她就那樣靜靜地躺著脓鹃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪古沥。 梳的紋絲不亂的頭發(fā)上瘸右,一...
    開封第一講書人閱讀 49,837評(píng)論 1 290
  • 那天娇跟,我揣著相機(jī)與錄音,去河邊找鬼太颤。 笑死逞频,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的栋齿。 我是一名探鬼主播苗胀,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼瓦堵!你這毒婦竟也來(lái)了基协?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤菇用,失蹤者是張志新(化名)和其女友劉穎澜驮,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體惋鸥,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杂穷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卦绣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耐量。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滤港,靈堂內(nèi)的尸體忽然破棺而出廊蜒,到底是詐尸還是另有隱情,我是刑警寧澤溅漾,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布山叮,位于F島的核電站,受9級(jí)特大地震影響添履,放射性物質(zhì)發(fā)生泄漏屁倔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一暮胧、第九天 我趴在偏房一處隱蔽的房頂上張望锐借。 院中可真熱鬧,春花似錦叔壤、人聲如沸瞎饲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至妄田,卻和暖如春俺亮,著一層夾襖步出監(jiān)牢的瞬間驮捍,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人膝但。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓吞瞪,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親镊折。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容