Linux學習資料-萬用字符與特殊符號

萬用字符與特殊符號 shell

因爲在 bash 當中常會使用到一些萬用字符,與搭配特殊符號來將指令作更好的利用(例如最常提到的正規表示法 Regulare Express )!底下咱們列出一些經常使用的萬用字符與特殊符號: bash

  符號 內容 .net

* 萬用字符,表明一個或多個字符(或數字) ip

? 萬用字符,表明一個字母 get

# 批註,這個最常被使用在 script 當中,視爲說明! test

\ 跳脫符號,將『特殊字符或萬用字符』還原成通常字符 變量

| 分隔兩個管線命令的界定; module

; 連續性命令的界定(注意!與管線命令並不相同) bug

~ 使用者的家目錄 command

$ 亦便是變量以前須要加的變量取代值 

& 將指令變成背景下工做 

! 邏輯運算意義上的『非』 not 的意思! 

/ 路徑分隔的符號 

>, >> 輸出導向,分別是『取代』與『累加』 

' 單引號,不具備變量置換的功能 

" 具備變量置換的功能! 

` ` 兩個『 ` 』中間爲能夠先執行的指令! 

(   ) 在中間爲子 shell 的起始與結束 

[  ] 在中間爲字符的組合 

{   } 在中間爲命令區塊的組合! 

組合按鍵 執行結果 

Ctrl + C 終止目前的命令 

Ctrl + D 輸入結束(EOF),例如郵件結束的時候; 

Ctrl + M 就是 Enter 啦! 

Ctrl + S 暫停屏幕的輸出 

Ctrl + Q 恢復屏幕的輸出 

Ctrl + U 在提示字符下,將整列命令刪除 

Ctrl + Z 『暫停』目前的命令 


上面的萬用字符當中,最經常使用的就屬 *, ?, [] 及 ` 了!咱們提幾個簡單的例子: 

  [test @test  test]# ls test*  <==那個 * 表明後面不論接幾個字符都予以接受(沒有字符也接受!) 

[test @test  test]# ls test?  <==那個 ? 表明後面『必定』要接『一個』字符 

[test @test  test]# ls test???  <==那個 ??? 表明『必定要接三個』字符! 

[test @test  test]# cp test[1-5] /tmp  <==將 test1, test2, test3, test4, test5 若存在的話,就拷貝到 /tmp 下 

[test @test  test]# cd /lib/modules/`uname -r`/kernel/drivers  <==被 ` ` 括起來的內容『會先執行』! 

上面幾個例子至關的有趣!尤爲是最後面兩個!須要注意的是, [] 裏面『表明只有一個字符』可是範圍能夠由 1-5 ,這樣來講的話,那麼咱們若是容許『只要檔名裏面含有至少一個大寫字符』時,就能夠將檔案 copy 出來的話,能夠這樣作: 

  


cp *[A-Z]* /tmp

  

頗有趣吧?! ^_^ 

此外,那個 `` 裏面的『指令』會先被執行,也就是說: 

  

系統先執行 uname -r 找出輸出的結果; 

將結果累加在目錄上面,來執行 cd 的功能! 

  

很棒吧!!這些基本的功能須要特別來了解一下才行呦!


--------------------------------------------------------------------------------


連續指令的下達方式: 

這裏須要再提幾個重要的信息,咱們剛剛上面提過說,兩個指令前後寫在一塊兒,能夠這樣寫: 

  

command1; command2

  

利用分號『 ; 』來分隔,這個分號的意思,表明不論 command1 執行結果爲什麼,command2 都會被執行!那麼若是我是兩個相關的指令,第一個 command1 若是執行結果有錯誤,第二個就不被執行,能夠這樣作嗎?固然能夠,就使用下面兩個連結的咚咚: 

  

command1 && command2 

command1 || command2

  

還記得咱們以前的變量內容中,那個 ? 表明什麼嗎?沒錯,就是表明前一個執行的指令內容有沒有錯誤,若是有錯誤就回傳爲 1 ,沒有錯誤就回傳爲 0 ,你能夠經由 echo $? 來查詢得知!那麼 && 就是表明,當 command1 執行結果傳回值爲 0 的時候,也就是沒有錯誤訊息時,則 command2 纔會開始執行,而 || 偏偏相反,當 command1 有錯誤訊息時, command2 纔會執行!舉個例子來講,個人系統中並無 /vbird 這個目錄,因此執行 ls /vbird 應該會有錯誤訊息纔對,因此,底下三個指令串會顯示什麼呢? 

  [root @test root]# ls /vbird  ; ls / 

[root @test root]# ls /vbird && ls / 

[root @test root]# ls /vbird || ls / 


試看看呦!

相關文章
相關標籤/搜索