免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

shellcheatsheet(備忘錄)-創新互聯

老亞瑟比較喜歡用cheat sheet(備忘錄)的方式學習一些編程里零散但又經常會用到的知識點。相比于冗長詳盡的博客,這種方式既簡單輕量,同時每次查看的時候可以通過大腦對知識進行自動補全,能不斷提升對應知識點的記憶。但是缺點也很明顯,就是講述不夠細致全面。所以,如果讀者對相關cheat sheet的知識儲備太少的話,建議先系統學習。
下面是我學習和使用Linux shell時的cheat sheet。

成都創新互聯公司作為成都網站建設公司,專注網站建設公司、網站設計,有關企業網站制作方案、改版、費用等問題,行業涉及加固等多個領域,已為上千家企業服務,得到了客戶的尊重與認可。測試操作符
test = [ ]  這兩個是shell 程序
[[ ]]       這個是shell 關鍵字
引號
" " 雙引號中可以使用$對變量取值
' ' 單引號中所有字符均表示字面值,無法用$取值
字符串比較
[[ "$s1" != "$s2" ]] [ "$s1" != "$s2" ]
[[ "$s1" == "$s2" ]] [ "$s1" == "$s2" ]
[[ "$s1" = "$s2" ]] [ "$s1" = "$s2" ]
[[ "$s1">"$s2" ]] [ "$s1" \>"$s2" ]
[[ "$s1"< "$s2" ]] [ "$s1" \< "$s2" ]
數字比較(對[ ] [[ ]] 均有效)
-eq -ne
-gt -ge
-lt -le
字符串測試(對[ ] [[ ]] 均有效)
-z True for zero
-n True for non-zero
文件測試(對[ ] [[ ]] 均有效)
-e True for file exist
-f True for normal file exist
-d True for dir exist
-c True for char file exist
-b True for block file exist
-p True for pipe file exist
-S True for socket file exist
-L/-h True for symbol link exist
-r/w/x True for readable/writable/executable file exist
邏輯運算符
[[ cond-a && cond-b ]] [ cond-a -a cond-b ]
[[ cond-a || cond-b ]] [ cond-a -o cond-b ]
[[ ! cond ]] [ ! cond ]
正則匹配
[[ "$ss" =~ regex ]] && echo ${BASH_REMATCH[1]}
if 判斷
if TEST-COMMANDS; then
	CONSEQUENT-COMMANDS
elif TEST-COMMANDS; then
	CONSEQUENT-COMMANDS
else
	CONSEQUENT-COMMANDS
fi
for 循環
for i in “file1” “file2” “file3”
for i in /boot/*
for i in /etc/*.conf
for i in $(seq -w 10)
for i in {1..10}
for i in $(ls)
for i in $(< file)
for i in "$@"
for ((i=0; i<5; i++))
do
	commands
done
while/until 循環
while read -r line
do
	commands
done< "path/to/file"

while getopts :xy: opt
do
	case "$opt" in
	x)
		;;
	y)
		Y=$OPTARG
		;;
	:)
		echo "require args"
		;;
	?)
		echo "invalid args"
		;;
	esac
done

while true
while :
until condition  至少執行一次,和while 條件相反
done 2>error.log  在所有循環體的done 后面可以做標準輸出/錯誤的重定向,while/until循環體的done可后面以做標準輸入重定向
select/case 循環
select VAR in LIST
do
	case EXPR in
	PATTERN1)
		CONSEQUENT-COMMANDS
		;;
	PATTERN2 | PATTERN3)
		CONSEQUENT-COMMANDS
		;;
	esac
done
# case 語句可以單獨使用
循環控制
break      用于for/while/until/select
continue   用于for/while/until
特殊字符
$@ argv    
$# argc   
$* argv to string
$0 script name   
$? Last cmd exit code
$$ process ID
變量
$PARAMETER = ${PARAMETER}
${!PARAMETER}  間接參數擴展
${!PREFIX*} = ${!PREFIX@}  變量名擴展
字符串操作
${PARAMETER#PATTERN}    從前向后找,刪除最短匹配串
${PARAMETER##PATTERN}   從前向后找,刪除最長匹配串
${PARAMETER%PATTERN}    從后向前找,刪除最短匹配串
${PARAMETER%%PATTERN}   從后向前找,刪除最長匹配串
${PARAMETER/PATTERN/STRING}  查找并替換一處匹配
${PARAMETER//PATTERN/STRING} 查找并替換所有匹配
${PARAMETER/PATTERN}         查找并刪除一處匹配
${PARAMETER//PATTERN}        查找并刪除所有匹配
${#PARAMETER}                計算字符串長度
${PARAMETER:OFFSET:LENGTH}   獲取子串,LENGTH可忽略
數組
myarrary=(value1 value2 valueN)  數組初始化
${myarrary[3]}="new one"         插入數組元素
unset myarrary[3]                刪除數組元素
${myarrary[@]} = ${myarrary[*]}  遍歷數組元素
myarray=(${STRING})              將字符串按空格轉換成數組
數學運算
var=$(( EXPR ))  用算術擴展進行整數計算
let EXPR         用let進行算術運算,運算式中不能有空格
expr EXPR        用expr進行算術運算,運算符兩邊必須用空格,并且只能計算整數
函數
定義1 function func_name {commands }  
定義2 func_name() {commands }
函數入參 $1 .. $n
定義函數內部變量  local
函數返回碼  return N
函數返回值,函數內最后一條命令的結果
調用 func_name arg1 arg2
調用,接收返回值 ret=$(func_name arg1 arg2)
調用,轉入后臺 func_name args &
加載外部腳本文件
. /path/to/bash/script args
source /path/to/bash/script args
標準輸出、錯誤同時重定向
command &>filename
command >& filename
command >filename 2>&1
command 2>&1 >filename
管道過濾器
awk -F: '{print $1 $NF}' #顯示列
cut -d: -f1,6            #顯示列
cut -c 1                 #顯示第一個字符
grep "string"            #顯示包含string的行
grep "regex"             #顯示匹配正則表達式的行
grep -i "string"         #顯示包含string的行,忽略大小寫
grep -v "string"         #顯示不包含string的行
grep -E "str1|str2"      #顯示包含str1或者str2的行
head -n 5				 #顯示前5行
paste -d: file1 file2    #將文件內容橫向合并,分隔符為:
paste file1 - - -        #將文件內容顯示為3列
sed 's/xxx/yyy/g'        #將xxx替換為yyy
sed '/xxx/d'             #將xxx刪除
sed -e cmd1 -e cmd2      #執行多個sed 命令
sed -i cmd               #直接修改文件
sort -n                  #首列按字面數值排列
sort -u                  #排序后去重
strings                  #過濾出可打印字符串
tail -n 5                #顯示文件最后5行
tee                      #不影響顯示的情況下存儲輸出到文件
tr 'regex1' 'regex2'     #將regex1 轉換成regex2
tr -d 'regex'            #刪除regex匹配到的字符
uniq                     #刪除重復的行
uniq -c                  #計算重復行數
wc -l                    #計算行數
grep 正則字符集
^    	#錨定行的開始 
$    	#錨定行的結束
.    	#匹配一個非換行符的字符 
*    	#匹配零個或多個先前字符
.*   	#一起用代表任意字符
[]   	#匹配一個指定范圍內的字符。 
[^]  	#匹配一個不在指定范圍內的字符
/(/)   	#標記匹配字符
/< 		#錨定單詞的開始,
/>#錨定單詞的結束
/{m,n/} #重復字符m~n次,n可忽略
/w 		#[A-Za-z0-9]
/W 		#/w的反置形式
/b 		#單詞鎖定符
[[:alnum:]]		#[A-Za-z0-9]
[[:alpha:]]		#[A-Za-z]
[[:digit:]]		#[0-9]
[[:lower:]]		#[a-z]
[[:upper:]]		#[A-Z]
[[:blank:]]		#空字符: 空格鍵符 和 制表符
[[:space:]]		#空格字符: 制表符、換行符、垂直制表符、換頁符、回車符和空格鍵符
awk 語法
awk -F: 'PATTERN { ACTION }'
awk -F: 'BEGIN { ACTION } /pattern1/ { ACTION } /pattern2/ { ACTION } END { ACTION }'
推薦閱讀

《Linux Shell 命令行及腳本編程實例詳解》

原始博客連接: https://editor.csdn.net/md?articleId=127997233

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

當前題目:shellcheatsheet(備忘錄)-創新互聯
網頁鏈接:http://m.newbst.com/article44/egihe.html

成都網站建設公司_創新互聯,為您提供軟件開發企業網站制作移動網站建設網站建設營銷型網站建設做網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設