Linux学习资料-万用字符与特殊符号
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
萬用字符與特殊符號(hào)?
由于在 bash 當(dāng)中常會(huì)使用到一些萬用字符,與搭配特殊符號(hào)來將指令做更好的利用(例如最常提到的正規(guī)表示法 Regulare Express )!底下我們列出一些常用的萬用字符與特殊符號(hào):?
? 符號(hào) 內(nèi)容?
* 萬用字符,代表一個(gè)或多個(gè)字符(或數(shù)字)?
? 萬用字符,代表一個(gè)字母?
# 批注,這個(gè)最常被使用在 script 當(dāng)中,視為說明!?
\ 跳脫符號(hào),將『特殊字符或萬用字符』還原成一般字符?
| 分隔兩個(gè)管線命令的界定;?
; 連續(xù)性命令的界定(注意!與管線命令并不相同)?
~ 使用者的家目錄?
$ 亦即是變量之前需要加的變量取代值?
& 將指令變成背景下工作?
! 邏輯運(yùn)算意義上的『非』 not 的意思!?
/ 路徑分隔的符號(hào)?
>, >> 輸出導(dǎo)向,分別是『取代』與『累加』?
' 單引號(hào),不具有變量置換的功能?
" 具有變量置換的功能!?
` ` 兩個(gè)『 ` 』中間為可以先執(zhí)行的指令!?
( ? ) 在中間為子 shell 的起始與結(jié)束?
[ ?] 在中間為字符的組合?
{ ? } 在中間為命令區(qū)塊的組合!?
組合按鍵 執(zhí)行結(jié)果?
Ctrl + C 終止目前的命令?
Ctrl + D 輸入結(jié)束(EOF),例如郵件結(jié)束的時(shí)候;?
Ctrl + M 就是 Enter 啦!?
Ctrl + S 暫停屏幕的輸出?
Ctrl + Q 恢復(fù)屏幕的輸出?
Ctrl + U 在提示字符下,將整列命令刪除?
Ctrl + Z 『暫停』目前的命令?
上面的萬用字符當(dāng)中,最常用的就屬 *, ?, [] 及 ` 了!我們提幾個(gè)簡(jiǎn)單的例子:?
? [test @test ?test]# ls test* ?<==那個(gè) * 代表后面不論接幾個(gè)字符都予以接受(沒有字符也接受!)?
[test @test ?test]# ls test? ?<==那個(gè) ? 代表后面『一定』要接『一個(gè)』字符?
[test @test ?test]# ls test??? ?<==那個(gè) ??? 代表『一定要接三個(gè)』字符!?
[test @test ?test]# cp test[1-5] /tmp ?<==將 test1, test2, test3, test4, test5 若存在的話,就拷貝到 /tmp 下?
[test @test ?test]# cd /lib/modules/`uname -r`/kernel/drivers ?<==被 ` ` 括起來的內(nèi)容『會(huì)先執(zhí)行』!?
上面幾個(gè)例子相當(dāng)?shù)挠腥?#xff01;尤其是最后面兩個(gè)!需要注意的是, [] 里面『代表只有一個(gè)字符』但是范圍可以由 1-5 ,這樣來說的話,那么我們?nèi)绻试S『只要檔名里面含有至少一個(gè)大寫字符』時(shí),就可以將檔案 copy 出來的話,可以這樣做:?
?
cp *[A-Z]* /tmp
?
很有趣吧?! ^_^?
此外,那個(gè) `` 里面的『指令』會(huì)先被執(zhí)行,也就是說:?
?
系統(tǒng)先執(zhí)行 uname -r 找出輸出的結(jié)果;?
將結(jié)果累加在目錄上面,來執(zhí)行 cd 的功能!?
?
很棒吧!!這些基本的功能需要特別來了解一下才行呦!
--------------------------------------------------------------------------------
連續(xù)指令的下達(dá)方式:?
這里需要再提幾個(gè)重要的信息,我們剛剛上面提過說,兩個(gè)指令先后寫在一起,可以這樣寫:?
?
command1; command2
?
利用分號(hào)『 ; 』來分隔,這個(gè)分號(hào)的意思,代表不論 command1 執(zhí)行結(jié)果為何,command2 都會(huì)被執(zhí)行!那么如果我是兩個(gè)相關(guān)的指令,第一個(gè) command1 如果執(zhí)行結(jié)果有錯(cuò)誤,第二個(gè)就不被執(zhí)行,可以這樣做嗎?當(dāng)然可以,就使用下面兩個(gè)連結(jié)的咚咚:?
?
command1 && command2?
command1 || command2
?
還記得我們之前的變量?jī)?nèi)容中,那個(gè) ? 代表什么嗎?沒錯(cuò),就是代表前一個(gè)執(zhí)行的指令內(nèi)容有沒有錯(cuò)誤,如果有錯(cuò)誤就回傳為 1 ,沒有錯(cuò)誤就回傳為 0 ,你可以經(jīng)由 echo $? 來查詢得知!那么 && 就是代表,當(dāng) command1 執(zhí)行結(jié)果傳回值為 0 的時(shí)候,也就是沒有錯(cuò)誤訊息時(shí),則 command2 才會(huì)開始執(zhí)行,而 || 恰恰相反,當(dāng) command1 有錯(cuò)誤訊息時(shí), command2 才會(huì)執(zhí)行!舉個(gè)例子來說,我的系統(tǒng)中并沒有 /vbird 這個(gè)目錄,所以執(zhí)行 ls /vbird 應(yīng)該會(huì)有錯(cuò)誤訊息才對(duì),所以,底下三個(gè)指令串會(huì)顯示什么呢??
? [root @test root]# ls /vbird ?; ls /?
[root @test root]# ls /vbird && ls /?
[root @test root]# ls /vbird || ls /?
試看看呦!
轉(zhuǎn)載于:https://my.oschina.net/ysh3940/blog/374416
總結(jié)
以上是生活随笔為你收集整理的Linux学习资料-万用字符与特殊符号的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Material Des
- 下一篇: 串口编程实验报告