Linux Shell特殊字符和控制字符大全
# 注釋
表示注釋 #注釋 在引號(hào)中間和\#等表示#本身 echo ${PATH#*:} # 參數(shù)替換,不是一個(gè)注釋 echo $(( 2#101011 )) # 數(shù)制轉(zhuǎn)換,不是一個(gè)注釋; 分隔
命令分隔,在一行中寫(xiě)多個(gè)命令 echo "aa" ; echo "bb" 在條件中的if和then如果放在同一行,也用;分隔;; case條件的結(jié)束
. 命令
相當(dāng)于source命令
命令:source 文件名的前綴,隱藏文件 目錄:.當(dāng)前目錄,..父目錄 正則表達(dá)式:匹配任意單個(gè)字符“”
部分引用 支持通配符擴(kuò)展
’ ‘
全引用,不進(jìn)行通配符擴(kuò)展
\
轉(zhuǎn)義
/
目錄分隔符
,
多個(gè)命令都被執(zhí)行,但返回最后一個(gè)
`
后置引用
: 操作符
- 空操作
- 死循環(huán): while :
- 在if/then中表示什么都不做,引出分支
- 設(shè)置默認(rèn)參數(shù): : ${username=whoami}
- 變量替換: : HOSTNAME?{USER?} ${MAIL?}
- 在和 > (重定向操作符)結(jié)合使用時(shí),把一個(gè)文件截?cái)嗟? 長(zhǎng)度,沒(méi)有修改它的權(quán)限;如果文件在之前并不存在,那么就創(chuàng)建它.如:
: > data.xxx #文件”data.xxx”現(xiàn)在被清空了. 與 cat /dev/null >data.xxx 的作用相同 然而,這不會(huì)產(chǎn)生一個(gè)新的進(jìn)程,因?yàn)椤?”是一個(gè)內(nèi)建命令.
-在和>>重定向操作符結(jié)合使用時(shí),將不會(huì)對(duì)想要附加的文件產(chǎn)生任何影響.
如果文件不存在,將創(chuàng)建.
*
- 匹配0個(gè)或多個(gè)字符;
- 數(shù)學(xué)乘法;
- **冪運(yùn)算
? 匹配任意一個(gè)字符;但在((a>b?a:b))表示c語(yǔ)言中的三目運(yùn)算
$
取變量的值 echo $PATH 正則表達(dá)式中表示行的結(jié)尾 ${} 參數(shù)替換 ${PAHT} $* 所有參數(shù) $# 參數(shù)個(gè)數(shù) $$ 進(jìn)程的ID $? 進(jìn)程的返回狀態(tài)( )
命令組,在一個(gè)子Shell中運(yùn)行 (a=3;echo $a) 其中定義的變量在后面不可用 數(shù)組初始化: array=(a,b,c){ } 代碼塊,即一個(gè)匿名函數(shù),但其中定義的變量在后面依然可用
{ } \; 用在find的-exec中 $find -name *.txt -exec cat {} \;
[ ]
- 測(cè)試 [-z $1]
- 數(shù)組元素 a[1]=’test’
- [[]]表示測(cè)試 使用[[ … ]]條件判斷結(jié)構(gòu), 而不是[ … ], 能夠防止腳本中的許多邏輯錯(cuò)誤. 比如, &&, ||, <, 和> 操作符能夠正常存在于[[ ]]條件判斷結(jié)構(gòu)中, 但是如果出現(xiàn)在[ ]結(jié)構(gòu)中的話(huà), 會(huì)報(bào)錯(cuò).
- (( ))數(shù)學(xué)運(yùn)算
- 在正則表達(dá)式中表示范圍 [a-z]
< << > 重定向和進(jìn)程替換 ls -al > a.txt
< 還用在ASCII比較 if [[ “veg1"<"veg2” ]]
\<,> 正則表達(dá)式中的單詞邊界.如:bash$grep ‘\
| 管道
| 強(qiáng)制重定向(即使設(shè)置了noclobber 選項(xiàng)–就是-C 選項(xiàng)).這將強(qiáng)制的覆蓋一個(gè)現(xiàn)存文件.
|| 邏輯或操作 ;用在兩個(gè)命令之間的時(shí)候,表示在前一個(gè)命令結(jié)束時(shí),若返回值為 false,繼續(xù)執(zhí)行下一個(gè)命令
&& 邏輯與;用在兩個(gè)命令之間的時(shí)候,表示在前一個(gè)命令結(jié)束時(shí),若返回值為 true,繼續(xù)執(zhí)行下一個(gè)命令
& 后臺(tái)運(yùn)行
-
- 參數(shù)選項(xiàng)
- 減號(hào)
- 重定向stdin和stdout:cd /source/directory && tar cf - . ) | (cd /dest/directory && tar xpvf -)
先前的工作目錄 cd -
注:使用-開(kāi)頭的文件名和變量名可能會(huì)出現(xiàn)一些問(wèn)題
+ 一個(gè)命令或者過(guò)濾器的選項(xiàng)標(biāo)記.
~ home目錄
~+ 當(dāng)前工作目錄
~- 先前工作目錄
^ 正則表達(dá)式中表示行首
$IFS 用來(lái)做一些輸入命令的分隔符, 默認(rèn)情況下是空白.
超強(qiáng)干貨來(lái)襲 云風(fēng)專(zhuān)訪(fǎng):近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的Linux Shell特殊字符和控制字符大全的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Shell文件的排序、合并和分割
- 下一篇: 在linux下创建自定义service服