L25 shell基礎知識(三)

2021-08-09 22:24:41 字數 3442 閱讀 8905

主要內容:

1 shell特殊符號cut命令

2 sort_wc_uniq命令

3 tee_tr_split命令

4 shell特殊符號

特殊符號有:

*任意個任意字元

?任意乙個字元

#注釋字元

\ 脫意字元,將後面的特殊符號(例如"*" )還原為普通字元。

| 管道符,它的作用在於將符號前面命令的結果丟給符號後面的命令。這裡提到的後面的命令,並不是所有的命令都可以的,一般針對文件操作的命令比較常用,例如cat, less, head, tail, grep, cut, sort, wc, uniq, tee, tr, split, sed, awk等等,其中grep, sed, awk為正規表示式必須掌握的工具。

1 shell特殊符號cut命令

用來擷取某乙個字段

語法: cut -d '分隔字元' [-cf] n 這裡的n是數字

-d :後面跟分隔字元,分隔字元要用單引號括起來

-c :後面接的是第幾個字元

-f :後面接的是第幾個區塊

-d 後面跟分隔字元,這裡使用冒號作為分割字元,-f 1 就是擷取第一段,-f和1之間的空格可有可無。

2 sort_wc_uniq命令

命令 :sort 用做排序

語法: sort [-t 分隔符] [-kn1,n2] [-nru] 這裡的n1 < n2

-t 分隔符 :作用跟cut的-d乙個意思

-n :使用純數字排序

-r :反向排序

-u :去重複

-kn1,n2 :由n1區間排序到n2區間,可以只寫-kn1,即對n1欄位排序

如果sort不加任何選項,則從首字元向後,依次按ascii碼值進行比較,最後將他們按公升序輸出。

-t 後面跟分隔符,-k後面跟數字,表示對第幾個區域的字串排序,-n 則表示使用純數字排序

-k3,5 表示從第3到第5區域間的字串排序,-r表示反向排序

命令 : wc

用於統計文件的行數、字元數、詞數,常用的選項為:

-l :統計行數

-m :統計字元數

-w :統計詞數

wc 不跟任何選項,直接跟文件,則會把行數、詞數、字元數依次輸出。

命令 : uniq

去重複的行,最常用的選項只有乙個:-c :統計重複的行數,並把行數寫在前面。使用uniq 的前提是需要先給檔案排序,否則不管用。

命令 : tee

後跟檔名,類似與重定向 ">", 但是比重定向多了乙個功能,在把檔案寫入後面所跟的檔案中的同時,還顯示在螢幕上。

命令 : tr

替換字元,常用來處理文件中出現的特殊符號,如dos文件中出現的^m符號。常用的選項有兩個:

-d :刪除某個字元,-d 後面跟要刪除的字元

-s :把重複的字元去掉

最常用的就是把小寫變大寫: tr '[a-z]' '[a-z]'

不過替換、刪除以及去重複都是針對乙個字元來講的,有一定侷限性。如果是針對乙個字串就不再管用了,所以只需簡單了解這個tr即可,以後還會學到更多可以實現針對字串操作的工具。

命令 : split

切割文件,常用選項:

-b :依據大小來分割文件,單位為byte

如果split不指定目標檔名,則會以xaa xab...xba... 這樣的檔名來訪問切割後的檔案。可以指定目標檔名,

-l :依據行數來分割文件

4 shell特殊符號

'!$'表示上條命中中最後乙個變數(總之就是上條命令中最後出現的那個東西)

;分號。平時我們都是在一行中敲乙個命令,然後回車就執行了,那麼想在一行中執行兩個或兩個以上的命令如何呢?則需要在命令之間加乙個 ";" 了。

~ : 使用者的家目錄,如果是root則是 /root ,普通使用者則是 /home/username

& : 如果想把一條命令放到後台執行的話,則需要加上這個符號。通常用於命令執行時間非常長的情況。

>, >>, 2>, 2>>

重定向符號》 以及》 分別表示取代和追加的意思

然後還有兩個符號就是這裡的2> 和 2>> 分別表示錯誤重定向和錯誤追加重定向,當我們執行乙個命令報錯時,報錯資訊會輸出到當前的螢幕,如果想重定向到乙個文字裡,則要用2>或者2>>

[ ] 中括號,中間為字元組合,代表中間字元中的任意乙個。

使用 ";" 時,不管command1是否執行成功都會執行command2;

使用 "&&" 時,只有command1執行成功後,command2才會執行,否則command2不執行;

使用 "||" 時,command1執行成功後command2 不執行,否則去執行command2,總之command1和command2總有一條命令會執行。

Ubuntu基礎知識(三) Shell

簡介文字作業系統與外部最主要的介面就叫做 shell shell 是作業系統最外面的一層。shell 管理你與作業系統之間的互動 等待你輸入,向作業系統解釋你的輸入,並且處理各種各樣的作業系統的輸出結果。shell 提供了你與作業系統之間通訊的方式。這種通訊可以以互動方式 從鍵盤輸入,並且可以立即得...

shell基礎知識(高階三)

目錄 if條件語句 for條件迴圈語句 重要 while條件迴圈語句 case條件測試語句 計畫任務服務程式 重要 例題 判斷test檔案是否存在,如果不存在請建立此檔案。bin bash if e test then touch test fi例題 bin bash read p please e...

L23 shell基礎知識(一)

主要內容 1 shell介紹 2 命令歷史 3 命令補全和別名 4 萬用字元 5 輸入輸出重定向 1 shell介紹 shell簡單點理解,就是系統跟計算機硬體互動時使用的中間介質,它只是系統的乙個工具。實際上,在shell和計算機硬體之間還有一層東西那就是系統核心了。打個比方,如果把計算機硬體比作...