1. 重定向相關
1.1 echo指令
- 作用:會在終端中顯示參數指定的文字,通常會和重定向聯合使用。
- 格式:
echo 參數名
- 示例:
echo hello
1.2 重定向
将某些内容的輸出/輸入的目的地(裝置)改變,使其輸入/輸出到其他目的地(裝置),就是重定向。
1.2.1 輸出重定向相關
- 概念:将某些程式/指令的輸出結果儲存到其他地方而非螢幕上,這就是重定向。比如可以将結果重定向到檔案中,這樣就可以永久的儲存到檔案中。
- 正确重定向符号:
和>
這兩個的差別:>>
是寫入指定目标,而>
是追加到指定目标的末尾,也就是說>>
會清空目标中的内容,然後在将内容寫入,比如如果重定向到某個檔案中,會先清空該檔案的原有内容。>
- 執行個體:
其他指令(echo、輸入輸出重定向、管道、cat << end等)1. 重定向相關2. 管道——符号(|) 其他指令(echo、輸入輸出重定向、管道、cat << end等)1. 重定向相關2. 管道——符号(|) 其他指令(echo、輸入輸出重定向、管道、cat << end等)1. 重定向相關2. 管道——符号(|) - 錯誤重定向符号:
和2>
,可以将錯誤的結果重定向到檔案中,兩個符号的差別與>和>>相同。2>>
- 示例:
其他指令(echo、輸入輸出重定向、管道、cat << end等)1. 重定向相關2. 管道——符号(|) 其他指令(echo、輸入輸出重定向、管道、cat << end等)1. 重定向相關2. 管道——符号(|) - 正确和錯誤重定向符号:
和&>
,可以将正确和錯誤的結果全部重定向,兩個符号的差別與>和>>相同。&>>
- 示例: 附:
其他指令(echo、輸入輸出重定向、管道、cat << end等)1. 重定向相關2. 管道——符号(|)
是一個特殊的裝置,可以将任何不需要的資訊重定向到該裝置。/dev/null
1.2.2 輸入重定向相關
-
示例:
使用mail(安裝evolution用戶端後)發送郵件的格式如下:
可以使用如下的方法檢視和收郵件:mail -s 郵件标題 目标使用者名(敲完後回車) ......//輸入要發送的内容 (敲完後回車)
mail(按回車檢視郵件),然後按前面的編号即可檢視相應郵件内容
- 輸入重定向符号:
,例如上面的發送郵件的示例中,輸入完發送郵件的指令<
并按回車後,指令會進入和隻輸入cat類似的狀态來等待使用者的輸入,而此時使用者輸入的内容就被輸入重定向定向到mail指令中mail
- 輸入重定向的意義:就是可以将互動式指令轉為非互動式指令,所謂shell腳本就是一個Linux腳本的集合(序列),但是腳本中的内容要盡可能是非互動式指令,這樣才能讓腳本自己運作。
注: 需要注意的是
<<
并不是輸入重定向符号,這個符号一般和cat聯合使用,想要結束左邊指令的輸入必須以<<右邊的内容結束,示例如下:
2. 管道——符号(|)
2.1 管道的作用
Linux允許将一個指令的輸出通過管道作為另一個指令的輸入,可以将其了解成一個管子,左側塞(寫)東西,右側取(讀)東西,管道的通信是單向的。
2.2 管道符号
|
:管道符号,将左邊指令的輸出作為右邊指令的輸入
2.3 常用管道的指令
與管道指令經常搭配使用的指令有以下幾個:
-
:分屏顯示内容more
-
:在指令執行的結果的基礎上在指定檔案中查找指定内容。grep
- 常用參數:
-
:不區分大小寫-i
-
:反向抓取,即不含有“内容”的行-v
-
:after,使用方法,-A n,抓取有内容的行及其後n行-A
-
:before,使用方法,-B n,抓取有内容的行及其前n行-B
-
:顯示行号-n
-
:表示使用進階功能,如比對正規表達式時,就需要加此參數-E
-
- 正規表達式(存在的意義是為了比對檔案内容,而通配符是為了比對檔案名)
-
:比對以^....
開頭的,即以^後面的字元串開頭的内容^...
-
:比對以…結尾的,即以 前 面 的 字 符 串 結 尾 的 内 容 , 在 s h e l l 中 前面的字元串結尾的内容,在shell中 前面的字元串結尾的内容,在shell中後面加字字母表示變量。....$
-
:表示比對任意一個字元.
-
:表示比對任意非空字元串*
-
:表示可以複用前面的字元,比如 a?,表示比對aa或a?
-
- 常用參數:
注: 不管是head還是tail以及cat等都是将文本顯示出來的指令,而後面也不一定非要加一個檔案,如果什麼都不加,那麼其都會等待一個輸入。而且在檔案管理中,大部分指令都有接收輸入的能力。
重點指令:
xargs:該指令基本都是跟在管道符後的,例如“ls | xargs cat”,這裡xargs的作用是将ls的結果作為參數傳給cat,那麼就是将file的文本内容輸出出來,而非将ls的結果輸出出來