正規表示法基本上是一種『表示法』, 只要工具程式支援這種表示法,那麼該工具程式就可以用來作為正規表示法的字串處理之用。 例如 vi, grep, awk ,sed 等等工具,因為她們有支援正規表示法, 所以,這些工具就可以使用正規表示法的特殊字元來進行字串的處理。但例如 cp, ls 等指令並未支援正規表示法, 所以就只能使用 bash 自己本身的萬用字元而已。
[dmtsai@study ~]$ LANG=C <==由於與編碼有關,先設定語系一下
範例一:找出 /etc/ 底下以 cron 為開頭的檔名
[dmtsai@study ~]$ ll -d /etc/cron* <==加上 -d 是為了僅顯示目錄而已
範例二:找出 /etc/ 底下檔名『剛好是五個字母』的檔名
[dmtsai@study ~]$ ll -d /etc/????? <==由於 ? 一定有一個,所以五個 ? 就對了
範例三:找出 /etc/ 底下檔名含有數字的檔名
[dmtsai@study ~]$ ll -d /etc/*[0-9]* <==記得中括號左右兩邊均需 *
範例四:找出 /etc/ 底下,檔名開頭非為小寫字母的檔名:
[dmtsai@study ~]$ ll -d /etc/[^a-z]* <==注意中括號左邊沒有 *
範例五:將範例四找到的檔案複製到 /tmp/upper 中
[dmtsai@study ~]$ mkdir /tmp/upper; cp -a /etc/[^a-z]* /tmp/upper
使用正規表示法時,需要特別留意當時環境的語系為何, 否則可能會發現與別人不相同的擷取結果喔!
grep工具
sed工具用于修改标准输入
awk 也是一個非常棒的資料處理工具!相較於 sed 常常作用於一整個行的處理, awk 則比較傾向於一行當中分成數個『欄位』來處理。因此,awk 相當的適合處理小型的數據資料處理呢!awk 通常運作的模式是這樣的:
diff用于比较两个文件的不同。
若要完整的切換到新使用者的環境,必須要使用『 su - username 』或『 su -l username 』, 才會連同 PATH/USER/MAIL 等變數都轉成新使用者的環境;
如果僅想要執行一次 root 的指令,可以利用『 su - -c “指令串” 』的方式來處理;
使用 root 切換成為任何使用者時,並不需要輸入新使用者的密碼;
以『 su - 』直接將身份變成 root 即可,但是這個指令卻需要 root 的密碼,也就是說,如果你要以 su 變成 root 的話,你的一般使用者就必須要有 root 的密碼才行;
以『 sudo 指令 』執行 root 的指令串,由於 sudo 需要事先設定妥當,且 sudo 需要輸入使用者自己的密碼, 因此多人共管同一部主機時, sudo 要比 su 來的好喔!至少 root 密碼不會流出去!