shell指令碼語言基本文法學習

來源:互聯網
上載者:User

標籤:

Qiniu 七牛問題解答

shell指令碼語言入門

問題解決方案Shell日常學習
Cd / 進入到根目錄Pwd 目前的目錄結構Tab 模糊尋找補全命令Ifconfg 查看當前網路的資訊*?[]  萬用字元 方便查詢星花* 匹配多個 ls *.tar ?匹配單個 ls m???[  ]  ls  m* [od] 列出以m開頭結尾為od 的目錄火檔案    Ls  x* [0-9]      Ls  g *[m-p]目錄操作命令:當前工作目錄:pwd進入主目錄:cd  ~列出檔案類型:ls -F列出隱藏檔案: ls  -a或者 ls -aF顯示檔案的各種屬性:  ls  -l顯示目錄下檔案的資訊: ls -aF /etc或者顯示目錄:dir或者顯示檔案的詳細屬性:vdir顯示檔案行號: cat -n  filenameCat 有缺陷。滾動顯示More +filename  下一頁,分屏顯示 按空格滾動     或者用管道: cat -n  filename |more查看檔案的前五行: head  -n 5 filename查看最後五行的內容: tail -n 5 filename更為強大的 less用方向鍵可以上下滾動,輸入 q 可退出尋找檔案的資訊: grep  內容 檔案名稱在目前的目錄中尋找檔案名稱中含有bash: find ./ -name *bash*查看檔案類型 type +檔案名稱尋找某個目錄下面名稱為init.d 檔案類型為目錄的:find /etc -name init.d -type  d -printType (c d f)C 為連結D 為目錄f為普通檔案指定時間在100天以內沒使用過的命令:  find  /usr/bin/ -type f -atime +100 -print指定最後修改時間為一天之內的普通檔案 : find ./ -type f -mtime -1 -print快速尋找: locate filename           Updatedb開啟Firefox瀏覽器:firefoxFirefox & 在後台運行Firefox www.baidu.com尋找程式檔案: whereis find尋找find 命令的位置,和文檔位置查看命令存在的目錄: which ls查看當前系統中有哪些使用者存在: who查看當前系統的版本資訊:uname - a協助命令: man find簡單協助命令: whatis lsRegex:Nl  + filename : 以行查看檔案,代替cat列出檔案中以a 開頭,以t結尾的文本:點代表任一字元,*代表任意次數,¥代表結  尾,…^代表開頭。Egrep “^a.*t$” filename查看剛才的輸出有多少個:加個| wc -w樣本:Egrep “.at” filename這個命令顯示出來的是at前面至少一個單詞可能不會滿足我們的需要,如果我們想要前面只有一個單詞那麼我們只能這樣Egrep “\<.at\>”filename字元集的概念:以abc 其中一個開頭的檔案名稱Egrep  “[abc]at” filename列出檔案中,所有以大寫字母開頭,小寫字母t結尾的:Egrep  “^[[:upper:]]t$” filename
Shell 編程

Vi helloword.sh

!/bin/bash這是一個執行個體檔案

Echo “helloword”

Chmod u+x helloword.sh

./helloword.sh

另一個樣本:

!/bin/bash

Log =”monday”
Echo “this is monday”
Echo logEcho$Echo“logis(log)”

單引號括起來,所有都不解釋
雙引號。除了$,等不解釋

!/bin/bash

Log=saturday

Echo “today is $log”

Echo ‘today is $log’

Echo “today is date

輸出結果

Shell執行命令和迴圈執行和控制語句

If判斷命令

Case:

if

有關迴圈重複的語句。

! /bin/bash

Sum=0
Number =1
While test number?le100DoSum=[ sum+number ]
Let nmber= number+1DoneEcho“thesummrryissum”

-le
-gt 大於

Cut命令

主要作用,從輸入的行中,提取指定的部分

源檔案:

Beijing 010
Shanghai 021
Tianjin 022
Hangzhou 0571

命令: cut -c 3-6 city

命令: cut -f1 city 提取輸入行的第一列

Sort 命令:

Sort city: 對第一列進行排序

Sort -r city: 對第一列進行反序排序

Sort -k 2 city : 對第二列進行排序

如果有重複的行:

首先要先排序一下,才能用uniq命令

Sort city |uniq
將幾個字元替換成小寫,輸入在city中
Tr “BHS” “bhs”

代碼實踐一
#!/bin/bashfunction  gotoLogFile(){case   $1  in"579" )   echo $2 , $3;   cd  ~/logs/$2/REQ/UP;   timePoint=`echo $3 |sed ‘s/.$/0/‘`;   echo "${timePoint}.log";   cat   "${timePoint}.log"    | awk  -F ‘\t‘  ‘{if($8  == 579){print substr($0, index($0, "uid") + 5, 10)}}‘ | sort  -rn  | uniq -c  |sort -rn | head -20   ;;"4xx" )   echo  "404";;"6xx" )    echo $2, $3    cd  ~/logs/$2/REQ/RS;     timePoint1=`echo $3 |sed ‘s/.$/0/‘`;    echo "${timePoint1}.log";         cat   "${timePoint1}.log"  | awk  -F ‘\t‘       cat   "${timePoint}.log"    | awk  -F ‘\t‘  ‘{if($8  == 579){print substr($0, index($0, "uid") + 5, 10)}}‘ | sort  -rn  | uniq -c  |sort    cat  16-40.log  |   awk -F ‘\t‘ ‘{ if($8  ~/^4/){print $8, substr($0, index($0, "uid") + 5, 10) }}‘  | awk ‘{if( $1 == 404){a[$2] +=1 } else if($1 == 200){b[$2 +=1]} else{} } END{for (i in a) print a[i] " ==>" i ; for (i in b) print b[i] " ==>" i}‘  ;;esac}if [ $# -ne 3 ]; thenecho "Usage : $0  <錯誤碼> <日期> <當天時間點>  for  example  $0  519   2014-12-28  11-29";exit  1;figotoLogFile $1  $2  $3
代碼實踐二
#! /bin/bashnumber=1filenumber=1length=200cd /home/liuhanlin/test/qiushi/totalfile=`ls -l |wc -l`echo "$totalfile"center=$totalfileflag=-1bound=$lengthwhile test $flag -le 0do           mkdir "qiubai$filenumber"           while test $number -le $bound               do                     mv "$number" "qiubai$filenumber"                     let number=$number+1               done           let center=$[ $center - $length ]           echo "$flag">config.txt           echo "$center">config.txt           let filenumber=$filenumber+1           echo "$filenumber">config.txt           let bound=$[ $length * $filenumber ]           echo "$bound">config.txt           if [ $center -le  $length ];           then              let flag=1           fidonemkdir "qiubai$filenumber"while test $number -le $totalfiledo                mv "$number" "qiubai$filenumber"              let number=$number+1done

shell指令碼語言基本文法學習

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.