<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 11.1 開始之前:什么是正則表達式 約略了解了 Linux 的基本指令 ([BASH](../Text/index.html)) 并且熟悉了 [vim](../Text/index.html) 之后,相信你對于敲擊鍵盤的打字與指令下達比較不陌生了吧? 接下來,下面要開始介紹一個很重要的觀念,那就是所謂的“正則表達式 (Regular Expression)”啰! * 什么是正則表達式 任何一個有經驗的系統管理員,都會告訴你:“正則表達式真是挺重要的!” 為什么很重要呢?因為日常生活就使用的到啊!舉個例子來說, 在你日常使用 [vim](../Text/index.html) 作文書處理或程序撰寫時使用到的“搜尋/取代”等等的功能, 這些舉動要作的漂亮,就得要配合正則表達式來處理啰! 簡單的說,正則表達式就是處理字串的方法,他是以行為單位來進行字串的處理行為, 正則表達式通過一些特殊符號的輔助,可以讓使用者輕易的達到“搜尋/刪除/取代”某特定字串的處理程序! 舉例來說,我只想找到 VBird(前面兩個大寫字符) 或 Vbird(僅有一個大寫字符) 這個字樣,但是不要其他的字串 (例如 VBIRD, vbird 等不需要),該如何辦理?如果在沒有正則表達式的環境中(例如 MS word),你或許就得要使用忽略大小寫的辦法, 或者是分別以 VBird 及 Vbird 搜尋兩遍。但是,忽略大小寫可能會搜尋到 VBIRD/vbird/VbIrD 等等的不需要的字串而造成困擾。 再舉個系統常見的例子好了,假設你發現系統在開機的時候,老是會出現一個關于 mail 程序的錯誤, 而開機過程的相關程序都是在 /lib/systemd/system/ 下面,也就是說,在該目錄下面的某個文件內具有 mail 這個關鍵字,你想要將該文件捉出來進行查詢修改的動作。此時你怎么找出來含有這個關鍵字的文件? 你當然可以一個文件一個文件的打開,然后去搜尋 mail 這個關鍵字,只是.....該目錄下面的文件可能不止 100 個說~ 如果了解正則表達式的相關技巧,那么只要一行指令就找出來啦:“grep 'mail' /lib/systemd/system/*” 那個 grep 就是支持正則表達式的工具程序之一!如何~很簡單吧! 談到這里就得要進一步說明了,正則表達式基本上是一種“表達式”, 只要工具程序支持這種表達式,那么該工具程序就可以用來作為正則表達式的字串處理之用。 例如 vi, grep, awk ,sed 等等工具,因為她們有支持正則表達式, 所以,這些工具就可以使用正則表達式的特殊字符來進行字串的處理。但例如 cp, ls 等指令并未支持正則表達式, 所以就只能使用 [bash 自己本身的萬用字符](../Text/index.html#settings_wildcard)而已。 * 正則表達式對于系統管理員的用途 那么為何我需要學習正則表達式呢?對于一般使用者來說,由于使用到正則表達式的機會可能不怎么多, 因此感受不到他的魅力,不過,對于身為系統管理員的你來說,正則表達式則是一個“不可不學的好東西!” 怎么說呢?由于系統如果在繁忙的情況之下,每天產生的訊息信息會多到你無法想像的地步, 而我們也都知道,系統的“[錯誤訊息登錄文件 (第十八章)](../Text/index.html)” 的內容記載了系統產生的所有訊息,當然,這包含你的系統是否被“入侵”的記錄數據。 但是系統的數據量太大了,要身為系統管理員的你每天去看這么多的訊息數據, 從千百行的數據里面找出一行有問題的訊息,呵呵~光是用肉眼去看,想不瘋掉都很難! 這個時候,我們就可以通過“正則表達式”的功能,將這些登錄的信息進行處理, 僅取出“有問題”的信息來進行分析,哈哈!如此一來,你的系統管理工作將會 “快樂得不得了”啊!當然,正則表達式的優點還不止于此,等你有一定程度的了解之后,你會愛上他喔! * 正則表達式的廣泛用途 正則表達式除了可以讓系統管理員管理主機更為便利之外,事實上,由于正則表達式強大的字串處理能力, 目前一堆軟件都支持正則表達式呢!最常見的就是“郵件服務器”啦! 如果你留意網際網絡上的消息,那么應該不難發現,目前造成網絡大塞車的主因之一就是“垃圾/廣告信件”了, 而如果我們可以在服務器端,就將這些問題郵件剔除的話,用戶端就會減少很多不必要的帶寬耗損了。 那么如何剔除廣告信件呢?由于廣告信件幾乎都有一定的標題或者是內容,因此, 只要每次有來信時,都先將來信的標題與內容進行特殊字串的比對,發現有不良信件就予以剔除! 嘿!這個工作怎么達到啊?就使用正則表達式啊!目前兩大郵件服務器軟件 sendmail 與 postfix 以及支持郵件服務器的相關分析軟件,都支持正則表達式的比對功能! 當然還不止于此啦,很多的服務器軟件都支持正則表達式呢!當然, 雖然各家軟件都支持他,不過,這些“字串”的比對還是需要系統管理員來加入比對規則的, 所以啦!身為系統管理員的你,為了自身的工作以及用戶端的需求, 正則表達式實在是很需要也很值得學習的一項工具呢! * 正則表達式與 Shell 在 Linux 當中的角色定位 說實在的,我們在學數學的時候,一個很重要、但是粉難的東西是一定要“背”的, 那就是九九乘法表,背成功了之后,未來在數學應用的路途上,真是一帆風順啊! 這個九九乘法表我們在小學的時候幾乎背了一整年才背下來,并不是這么好背的呢! 但他卻是基礎當中的基礎!你現在一定受惠相當的多呢 ^_^! 而我們談到的這個正則表達式,與前一章的 [BASH](../Text/index.html) 就有點像是數學的九九乘法表一樣,是 Linux 基礎當中的基礎,雖然也是最難的部分, 不過,如果學成了之后,一定是“大大的有幫助”的!這就好像是金庸小說里面的學武難關:任督二脈! 打通任督二脈之后,武功立刻成倍成長!所以啦, 不論是對于系統的認識與系統的管理部分,他都有很棒的輔助啊!請好好的學習這個基礎吧! ^_^ * 延伸的正則表達式 唔!正則表達式還有分喔?沒錯喔!正則表達式的字串表示方式依照不同的嚴謹度而分為: 基礎正則表達式與延伸正則表達式。延伸型正則表達式除了簡單的一組字串處理之外,還可以作群組的字串處理, 例如進行搜尋 VBird 或 netman 或 lman 的搜尋,注意,是“或(or)”而不是“和(and)”的處理, 此時就需要延伸正則表達式的幫助啦!借由特殊的“ ( ”與“ | ”等字符的協助, 就能夠達到這樣的目的!不過,我們在這里主力僅是介紹最基礎的基礎正則表達式而已啦!好啦!清清腦門,咱們用功去啰! ![鳥哥的圖示](https://box.kancloud.cn/2016-05-13_5735736501917.gif "鳥哥的圖示") **Tips** 有一點要向大家報告的,那就是:“**正則表達式與萬用字符是完全不一樣的東西!**” 這很重要喔!因為“萬用字符 (wildcard) 代表的是 bash 操作接口的一個功能”,但正則表達式則是一種字串處理的表示方式! 這兩者要分的很清楚才行喔!所以,學習本章,請將前一章 bash 的萬用字符意義先忘掉吧! 老實說,鳥哥以前剛接觸正則表達式時,老想著要將這兩者歸納在一起,結果就是...錯誤認知一大堆~ 所以才會建議您學習本章先忘記萬用字符再來學習吧!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看