標籤:
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指令碼語言基本文法學習