SHELL學習筆錄

來源:互聯網
上載者:User


SHELL學習筆錄 前段時間學了學shell,做了些筆記,希望對好學者有所協助,如下: 1.echo "hello"    輸出hello,自動列印分行符號   echo "hello \c" 然echo不列印分行符號   echo *     顯示所有檔案,不包括隱藏檔案   echo .*    顯示隱藏檔案 2.printf format-string[arguments] 幾乎實現了C中printf的功能,它不像echo自動換行 3.重新導向     <  改變標準輸入   program < file 將program的標準輸入改為file       >  改變標準輸出   program > file 將program的標準輸出改為file                 目標檔案file不存在時,會建立file,若存在則會覆蓋                 program >> file  不覆蓋已有file,而是把內容追加在file結尾處 4.參數使用:  www.2cto.com      $n  第n個參數(和C中的宏類似,$n只是簡單的替代,  $n$m可組合為一個參數:)     變數賦值"="左右不能有空格 5.萬用字元:     *         匹配多個字元     ?        匹配一個字元     [charset]    匹配charset中的字元,如[0123456789]匹配一個數字0123456789,還可寫成[0-9]     [!charset]    取charset的補集作為匹配集合 6.變數替換:         ${parameter:-word}    若parameter為空白或未設定,則用word代替parameter進行替換,parameter值不變         ${parameter:=word}    若parameter為空白或未設定,則parameter設為值word         ${parameter:?message}    若parameter為空白或未設定,則把message作為標準錯誤輸出         ${parameter:+word}    若parameter設定了,則用word代替parameter進行替換,parameter值不變 7.引用:     關閉一個字元的特殊意義     \     ''     "" 8.    if list1    ————————————>list1結束代碼為0時為真         then list2     elif list3         then list4     else         then list5     fi  test expression = [expression] expression為test可理解的運算式 test可理解的運算式:         -檔案測試:檢查檔案是否滿足某種特殊規則             test option file     option如 vcHRpb24=" src="http://www.bkjia.com/uploads/allimg/131213/051R53018-0.gif" />         -字串比較:             -z string  長度為0為真             -n string  長度不為0為真             string1 = string2             string1 != sting2         -數字比較:整數比較             int1 option int2    option————>-eq,  -ne,  -lt,  -le,  -gt,  -ge                                 =     !=     <     <=    >     >=         -複合運算式:             ! 非             -a  與st  if [ expression1 -a expression2 ]             -o  或 9.     case word in         pattern1)             list1;;         pattern2)             list2;;         ...   www.2cto.com      esac  10.     while command    ——————> 為0時為真     do         list     done 11.        until command     do         list     done 12.數組     下標使用數字,自增應該如此:index=$(expr $index + 1),expr不可少,“+”兩邊要空格     要應用數組中元素值是,應如此:${array[$index]},花括弧不可少     列出數組中所有元素:echo ${arrar[*]} 13.字元處理     截取:     expr substr “$var” 1 2  從第一個字元開始截取變數var的2個字元     var2=·expr substr “$var” 1 2· 把截取的字元賦值給變數       www.2cto.com  ======================================AWK==================================================== 1.awk程式:模式+操作     pattern {action}     pattern         {action}     pattern預設:action應用在每條輸入記錄     action預設 :列印匹配記錄到標準輸出         2中特殊pattern:         BEGIN:與之關聯的操作只執行一次,執行在任何命令列檔案或一般命令列賦值被處理之前,任何開頭的-v選項指定完成之後;多用於初始化         END  :與之關聯的操作只執行一次,執行在所有輸入資料處理完之後;多由於產生摘要報告或做清理工作 2.常用的內建變數:     ARGC        參數計數     ARGV        參數向量,或參數值     FILENAME    當前輸入檔案的名稱     FNR        當前輸入檔案的記錄數     FS        欄位分隔字元(Regex,預設為" ")     NF        目前記錄的欄位數     NR        在工作(job)中的記錄數     OFS        輸出欄位的分隔字元,預設為" "     ORS        輸出記錄的分隔字元,預設為"\n" 3.陣列變數:     下標可以是任一數字或字串運算式,不一定要整數 4.命令列參數: 5.記錄:     空行也可以是一條記錄     =====================================SED===================================================== 1.sed調用     sed [option] sed命令 輸入檔案     sed [option] -f sed指令檔 輸入檔案     sed指令檔 [option] 輸入檔案         option:   www.2cto.com                          -n    不列印編輯行                         -p     列印                            -c    下一命令是編輯命令                            -f    執行sed指令碼時使用 2.定位文本(address)     sed瀏覽輸入檔案時,預設是從第一行開始,如下可以定位文本:     1).使用行號:             n            第n行             n,m        第n行-第m行(包括行m)             n,m!    行號部位n和m的行             1,$    第一行-最後一行     2).使用Regex:             /pattern/                包含模式的行             /pattern1/pattern2/        包含兩個模式的行                         pattern/,n                指定行上包含模式的行             n,/pattern/                ?? 3.sed編輯命令:         p        列印匹配行         =        顯示行號         a\        在定位行號後附加資訊         i\        在定位行號後插入資訊         d        刪除定位行         c\        替換         s        模式比對替換         r        從另一檔案中讀取文本         w        寫文本到檔案         q        退出         l        顯示控制字元         {}         n         g        全域         y         n         ^        行首開始                 執行個體:sed '/sdd/=' test.txt                             列印test.txt的所有內容,並顯示匹配'sdd'行的行號               sed -n -e '/sdd/p' -e '/sdd/=' test.txt            僅列印匹配模式的行,並顯示行號,兩個e都不能少   www.2cto.com  4.插入文本  5.修改文本         格式:[address[,address]] c\    text                    功能:將定位行替換為text                 格式:[address[,address]] i\    text                    功能:在定位行前插入行text          格式:[address[,address]] a\    text                    功能:在定位行後追加行text         6.刪除文本         格式:[address[,address]]d         功能:刪除定位行  7.替換文本         格式:[address[,address]] s/pattern_to_find/replacement_pattern/[g p w n]         功能:                      g: 預設下是替換第一次模式比對的,用g可用於全域的模式比對                      p: 預設下列印所有替換行,用p可以使-n選項無效                      w: 寫入指定檔案                      n:                      &: 代表原模式         執行個體:                      sed -n 's/aaa/ccc &/p' test.txt                        模式aaa前追加ccc                     sed -n 's/aaa/& ccc/p' test.txt                        模式aaa後追加ccc 8.讀寫檔案   www.2cto.com          格式:[address[,address]]w filename         功能:將定位行寫入檔案filename                 格式:address r filename         功能:將檔案filename的內容追加在定位行後                執行個體:             sed '/^$/d' filename                     刪除空行             sed 's/^[0-9]//g' filename        去除行首數字   作者 Wowo(大我小我)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.