Linux 萬用字元與特殊符號的使用

Linux 萬用字元與特殊符號的使用

#	註解符號:這個最常被使用在 script 當中,視為說明!在後的資料均不執行
\	跳脫符號:將『特殊字元或萬用字元』還原成一般字元
|	管線 (pipe):分隔兩個管線命令的界定
;	連續指令下達分隔符號:連續性命令的界定 (注意!與管線命令並不相同)
~	使用者的家目錄
$	取用變數前置字元:亦即是變數之前需要加的變數取代值
&	工作控制 (job control):將指令變成背景下工作
!	邏輯運算意義上的『非』 not 的意思!
/	目錄符號:路徑分隔的符號
>, >>	資料流重導向:輸出導向,分別是『取代』與『累加』
<, <<	資料流重導向:輸入導向 (這兩個留待下節介紹)
' '	單引號,不具有變數置換的功能 ($ 變為純文字)
" "	具有變數置換的功能! ($ 可保留相關功能)
` `	兩個『 ` 』中間為可以先執行的指令,亦可使用 $( )
( )	在中間為子 shell 的起始與結束
{ }	在中間為命令區塊的組合!
!!      重複執行最後一條命令
!$      顯示系統最近的一條參數
*	代表『 0 個到無窮多個』任意字元
?	代表『一定有一個』任意字元
[ ]	同樣代表『一定有一個在括號內』的字元(非任意字元)。例如 [abcd] 代表『一定有一個字元, 可能是 a, b, c, d 這四個任何一個』
[ - ]	若有減號在中括號內時,代表『在編碼順序內的所有字元』。例如 [0-9] 代表 0 到 9 之間的所有數字,因為數字的語系編碼是連續的!
[^ ]	若中括號內的第一個字元為指數符號 (^) ,那表示『反向選擇』,例如 [^abc] 代表 一定有一個字元,只要是非 a, b, c 的其他字元就接受的意思。

特殊符號 ; && ||
 
cmd ; cmd (不考慮指令相關性的連續指令下達)
在某些時候,我們希望可以一次執行多個指令,例如在關機的時候我希望可以先執行兩次 sync 同步化寫入磁碟後才 shutdown 電腦,那麼可以怎麼作呢?這樣做呀:
 

sync; sync; shutdown -h now

 
那麼我們怎麼透過這個回傳值來判斷後續的指令是否要執行呢?這就得要藉由『 && 』及『 || 』
 
指令下達情況

cmd1 && cmd2	1. 若 cmd1 執行完畢且正確執行($?=0),則開始執行 cmd2。
                2. 若 cmd1 執行完畢且為錯誤 ($?≠0),則 cmd2 不執行。
 
cmd1 || cmd2	1. 若 cmd1 執行完畢且正確執行($?=0),則 cmd2 不執行。
                2. 若 cmd1 執行完畢且為錯誤 ($?≠0),則開始執行 cmd2。

| 管線命令 (pipe)
管線命令與『連續下達命令』是不一樣的
其實這個管線命令『 | 』僅能處理經由前面一個指令傳來的正確資訊
管線『 | 』用來隔開兩個命令,管線左邊命令的輸出會作為管線右邊命令的輸入
 
tee
tee 用來向多個目標發送輸出內容。它可以將輸出複製一份到一個文件,並複製另外一份到屏幕上(或一些其它程序)
 

~$ ll /etc | nl | tee /tmp/ll.out

在以上例子中,從ll輸出可以到 /tmp/ll.out 文件中,並且同樣在屏幕上顯示了出來。
R0012436

上一篇 Linux terminal 常用快速鍵(熱鍵)
下一篇 Linux 查詢用指令