1. 程式人生 > >0404 第十次課:shell基礎(下)

0404 第十次課:shell基礎(下)

開發十年,就只剩下這套架構體系了! >>>   

一、shell特殊符號

  • shell中的一些特殊符號:

    *:表示任意個任意字元

    ?:表示任意單個字元

    #:表示註釋字元

    \ :表示脫義字元

    |:表示管道符

二、cut命令

  • cut命令是用來分割

    用法: cut -d 指定分隔符 -f 指定段號 -c 指定第幾個字元

  • 示例:

    1、 以":"分割,擷取passwd檔案的第一段

    cat /etc/passwd |cut -d ":" -f 1

    2、擷取pass檔案第一行

三、sort命令

  • sort命令是用來進行排序

    用法:sort -n 以數字進行排序 -r 反序 ,-t 分隔符(一般不使用)

  • 注意點:

    sort預設的排序是按ascii碼進行排序

    sort一般和uniq結合起來使用

    如何按照數字排序那麼特殊符號和字母大小預設認為是0

  • 示例:

    1、不加引數,預設是ascii碼進行排序

    2、以數字進行排序,字母和特殊符號會被認為是0,所以字母和特殊符號都在數字之上

    3、反序

四、wc命令

  • wc命令是用來統計

    用法:wc -l 統計行數 -m統計字元數 -w 統計詞數

    示例:

    1、統計行數

    2、統計字元數

    3、統計詞數

五、uniq命令

  • uniq命令是用來去重的,一般都是結合sort來進行使用。

    用法:uniq -c 統計重複行數

  • 示例:

    1、去重

    2、統計重複行數

六、tee_tr_split命令

  • tee命令

    tee命令和輸出重定向(>)類似,不同的是tee會把重定向的內容列印到螢幕。tee也支援追加,加個-a引數即可。

    示例:

  • tr命令

    tr命令用於替換字元

    示例:

    1、替換字母

    2、替換所有的字母

  • split命令

    split命令用於切割,可以把一個大檔案切割為小檔案。

    用法:split -b 按照大小進行切割,預設單位為位元組。 -l 指定行數進行切割

  • 示例

    首先生成一個大一點的檔案

    find /etc -name "*.cnf" -exec cat {} >> 01.txt \;

    1、按照100k 大小進行分割,如果不指定名稱系統會預設生成檔名。

    split -b 100k 01.txt

    2、指定檔名

    split -b 100k 01.txt wxy

    3、指定行數分割

    split -l 10000 01.txt

七、shell特殊符號下

  • $:變數字首

  • !$:正則中表示行尾

  • ; :多條命令寫到一行 用";"分割

    如下:同時執行ll和統計命令

  • ~:使用者家目錄,正則中表示匹配符

  • &:放在命令後門表示後臺執行

  • ">":正確重定向

  • ">>":追加重定向

  • 2> :錯誤重定向

  • 2>> :錯誤追加重定向

  • &> : 正確錯誤同時重定向

  • []:指定字元中的一個,如[0-9],[a-zA-z]

  • || && 用在命令之間。||表示如果前面命令執行成功則不會執行後面的,&&表示前面的命令執行成功才會執行後面的命令

    示例:

    || 前面ll命令執行成功後,後面wc命令則不會執行

    判斷一個目錄是否存在,如果不存在則建立

    [ -d wxy ] || mkdir wxy

    -d 是判斷一個目錄是否存在

    改為&&就會報目錄已存在

八、擴充套件內容