這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何在Shell中使用特殊字符,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)公司不只是一家網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司;我們對(duì)營(yíng)銷(xiāo)、技術(shù)、服務(wù)都有自己獨(dú)特見(jiàn)解,公司采取“創(chuàng)意+綜合+營(yíng)銷(xiāo)”一體化的方式為您提供更專(zhuān)業(yè)的服務(wù)!我們經(jīng)歷的每一步也許不一定是最完美的,但每一步都有值得深思的意義。我們珍視每一份信任,關(guān)注我們的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)質(zhì)量和服務(wù)品質(zhì),在得到用戶(hù)滿(mǎn)意的同時(shí),也能得到同行業(yè)的專(zhuān)業(yè)認(rèn)可,能夠?yàn)樾袠I(yè)創(chuàng)新發(fā)展助力。未來(lái)將繼續(xù)專(zhuān)注于技術(shù)創(chuàng)新,服務(wù)升級(jí),滿(mǎn)足企業(yè)一站式網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣需求,讓再小的高端網(wǎng)站設(shè)計(jì)也能產(chǎn)生價(jià)值!1、;分號(hào)
連續(xù)運(yùn)行命令
# ifdown eth0;ifup eth0
2、| 管道
正則表達(dá)式中表示或者
# echo "ooooee" |egrep '(oo|ee)'{2} 表示匹配 oooo 或者 eeee 的字符
前面命令的標(biāo)準(zhǔn)輸出作為后面命令的標(biāo)準(zhǔn)輸入
# ifconfig|grep eth0 表示ifconfig查出來(lái)的信息然后過(guò)濾出eth0的這一行
3、&
將命令放到后臺(tái)執(zhí)行
# mysqld_safe --user=mysql & 將MySQL放到后臺(tái)啟動(dòng)
表示標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯(cuò)誤輸出
# ifconfig &>/dev/null 將ifconfig執(zhí)行得到的結(jié)果輸出到/dev/null里面
4、&&
前面命令返回值為0才執(zhí)行后面的命令
# ls && echo "ok"
5、||
前面命令返回值為非0才執(zhí)行后面的命令
# lls || echo "ok"
6、# 井號(hào)
# 表示注釋
$# 表示位置參數(shù)的個(gè)數(shù)
# echo $# 0
${#變量名} 表示變量的長(zhǎng)度
# a='hello' # echo ${#a} 5
${#變量名[@]} 表示數(shù)組的個(gè)數(shù)
# a=(1 2 3) # echo ${#a[@]} 3
7、!驚嘆號(hào)
將命令或者條件表達(dá)式的返回值取反
# if ! [ 1<2 ]; then echo 'ok'; else echo 'no'; fi ok
執(zhí)行歷史命令
# history 1 ls 2 tail test1.txt 3 mysql -uroot -p123 4 ls /tmp/ 5 cd /tmp/ [root@localhost ~]# !994 ls /tmp/ account.sql data.sql mysql.sock t1.txt t2.txt
vi或者ftp中執(zhí)行外部shell命令
例如:在vim中,想要執(zhí)行一條命令,就在末行模式,輸入!感嘆號(hào)后面加上要執(zhí)行的命令
間接應(yīng)用變量
例如:${!a}
---- 間接取b 的值
8、$ 美元符號(hào)
取變量的值
# a=10 # echo $a 10
正則表達(dá)式表示行尾
egrep ':$' /etc/inittab egrep ‘^hello$' file
9、> 大于號(hào)
輸出重定向
echo '123' >test.txt 表示將123 輸入到文件test.txt中 條件測(cè)試中的大于號(hào)
11、< 小于號(hào)
輸入重定向
條件測(cè)試中的小于號(hào)
= 等號(hào)
變量賦值 - 例如:設(shè)置變量a=10
條件測(cè)試中的等號(hào) - 例如:[ a=b ] 判斷變量a是否等于b
數(shù)值比較 == - 例如:(( a==20 )) 判斷變量a是否等于20
12、+ 加號(hào)
算術(shù)運(yùn)算中的加號(hào) - 例如:1+3
正則表達(dá)式中1個(gè)或多個(gè)前面的字符 - 例如:ab+c 表示匹配ab和c之間有1個(gè)或者多個(gè) 字符
13、>>
輸出重定向追加 - 例如:echo "123" >> test.txt
將123追加到文件test.txt中
14、<<
here document
例如:
# passwd <123 > 123 > end
更改用戶(hù) root 的密碼 。
15、- 減號(hào)
算術(shù)運(yùn)算中的減號(hào) - 例如:10-2
命令的選項(xiàng) - 例如:ls -l
上一次工作目錄 - 例如:cd -
通配符和正則表達(dá)式中表示范圍 - 例如:[a-z]
tar -cvf - /home | tar -xvf -
表示輸出流或輸入流
將前面的輸出 ,通過(guò)管道交給后面的命令,前面的壓縮,后面的解壓
16、'' 單引號(hào)
解決變量賦值空格的問(wèn)題
例如:a='1 2'
阻止shell替換
17、"" 雙引號(hào)
解決變量賦值空格的問(wèn)題
例如:a="1 2"
阻止shell部分字符替換,對(duì)$、!等無(wú)效
18、`` 反引號(hào) 相當(dāng)于 $()
命令行替換
例如:可以設(shè)變量a=`ls`
19、% 百分號(hào)
算術(shù)運(yùn)算中的模運(yùn)算
例如:echo $((100%10))
就是100除以10的余數(shù)為0
vi中替換操作中表示所有行 (末行模式下,替換所有前面加 %)
例如:在末行模式下輸入 :% s/D/d 表示將文本中的所有的D替換為d
20、() 單圓括號(hào)
子shell中執(zhí)行命令,會(huì)繼承父shell的變量
括起數(shù)組元素
例如:定義一個(gè)數(shù)組 a=(1 2 3 4)
21、(()) 雙圓括號(hào)
算術(shù)運(yùn)算
例如:echo $((10/2))
結(jié)果就是5
整數(shù)比較測(cè)試
例如:(( 10>2 ))
判斷10是否大于2
22、[] 單方括號(hào)
通配符和正則中表示匹配括號(hào)中的任意一個(gè)字符
例如: [abc]
表示匹配abc中的任意一個(gè)字符
條件測(cè)試表達(dá)式
例如:[ -f /etc/passwd ]
// 測(cè)試是不是文件
數(shù)組中下標(biāo)括號(hào)
例如:echo ${a[0]}
表示取數(shù)組中下標(biāo)為0的值
23、[[]] 雙方括號(hào)
字符串比較測(cè)試
例如:[[a=b]]
用來(lái)字符串的比較
24、. 英文句點(diǎn)號(hào)
正則中表示任意1個(gè)字符
例如:a...b
表示 匹配 a和b之間夾三個(gè)字符的字符串
當(dāng)前shell執(zhí)行腳本命令
例如:./test.sh
執(zhí)行當(dāng)前路徑下的shell腳本test.sh
表示當(dāng)前目錄
例如:cd ./bgk
進(jìn)入當(dāng)前目錄下的bgk目錄下
25、{} 大括號(hào)
通配符擴(kuò)展 abc{1,2,3}
正則表達(dá)式中表示范圍
例如:a{3} 匹配3個(gè) a
for i in {1...10}
循環(huán)指定范圍
匿名函數(shù){ cmd1;cmd2;cmd3;} &> /dev/null
{ } 里面的命令,是在當(dāng)前shell執(zhí)行
注意: { } 第一條命令前面要有空格,后面的命令要有分號(hào)
括起變量名${abc}a
26、/ 正斜杠
算術(shù)運(yùn)算中的除法
例如:echo $((10/2))
結(jié)果就是5
根目錄或路徑分割符
例如:cd /usr/local/
表示路徑
27、^
在通配符中表示取反
例如:[^abc] 表示匹配除了abc外的任意一個(gè)字符
在正則表達(dá)式中表示以什么開(kāi)頭
例如:
egrep ‘^hello$' file
上述就是小編為大家分享的如何在Shell中使用特殊字符了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。