一、命令的運行順序shell
二、經過 type -a ls 也能夠查詢的命令的運行順序。bash
三、source :讀入環境配置文件的命令。ui
利用 source 或小數點 (.) 均可以將配置文件的內容讀進來目前的 shell 環境中。編碼
四、Ctrl + U 在提示字符下,將整列命令刪除。spa
五、在 bash 的操做環境中還有一個很是有用的功能,那就是通配符 (wildcard) blog
符號 | 意義 |
* | 表明『 0 個到無窮多個』任意字符 |
? | 表明『必定有一個』任意字符 |
[ ] | 一樣表明『必定有一個在括號內』的字符(非任意字符)。例如 [abcd] 表明『必定有一個字符, 多是 a, b, c, d 這四個任何一個』 |
[ - ] | 如有減號在中括號內時,表明『在編碼順序內的全部字符』。例如 [0-9] 表明 0 到 9 之間的全部數字,由於數字的語系編碼是連續的! |
[^ ] | 若中括號內的第一個字符爲指數符號 (^) ,那表示『反向選擇』,例如 [^abc] 表明 必定有一個字符,只要是非 a, b, c 的其餘字符就接受的意思。 |
六、排序
符號 | 內容 |
# | 批註符號:這個最常被使用在 script 當中,視爲說明!在後的數據均不運行 |
\ | 跳脫符號:將『特殊字符或通配符』還原成通常字符 |
| | 管線 (pipe):分隔兩個管線命令的界定(後兩節介紹); |
; | 連續命令下達分隔符:連續性命令的界定 (注意!與管線命令並不相同) |
~ | 用戶的家目錄 |
$ | 取用變量前導符:亦便是變量以前須要加的變量取代值 |
& | 工做控制 (job control):將命令變成背景下工做 |
! | 邏輯運算意義上的『非』 not 的意思! |
/ | 目錄符號:路徑分隔的符號 |
>, >> | 數據流重導向:輸出導向,分別是『取代』與『累加』 |
<, << | 數據流重導向:輸入導向 (這兩個留待下節介紹) |
' ' | 單引號,不具備變量置換的功能 |
" " | 具備變量置換的功能! |
` ` | 兩個『 ` 』中間爲能夠先運行的命令,亦可以使用 $( ) |
( ) | 在中間爲子 shell 的起始與結束 |
{ } | 在中間爲命令區塊的組合! |
七、數據流重導向ip
數據流重導向能夠將 standard output (簡稱 stdout) 與 standard error output (簡稱 stderr) 分別傳送到其餘的文件或裝置去,而分別傳送所用的特殊字符則以下所示:ci
>或者2>將會清空文件中上次的寫入內容,>>和2>>將會追加內容到已存在的文件內。it
八、若是我知道錯誤信息會發生,因此要將錯誤信息忽略掉而不顯示或儲存呢? 這個時候黑洞裝置 /dev/null 就很重要了!這個 /dev/null 能夠吃掉任何導向這個裝置的信息。
九、若是我要將正確與錯誤數據統統寫入同一個文件去呢?這個時候就得要使用特殊的寫法
[dmtsai@www ~]$ find /home -name .bashrc > list 2> list <==錯誤 [dmtsai@www ~]$ find /home -name .bashrc > list 2>&1 <==正確 [dmtsai@www ~]$ find /home -name .bashrc &> list <==正確
十、< 與 <<:將本來須要由鍵盤輸入的數據,改由文件內容來取代。
十一、『我要用 cat 直接將輸入的信息輸出到 catfile 中, 且當由鍵盤輸入 eof 時,該次輸入就結束』,那我能夠這樣作:cat > catfile << "eof"。
十二、在命令與命令中間利用分號 (;) 來隔開,這樣一來,分號前的命令運行完後就會馬上接着運行後面的命令了。(不考慮命令相關性的連續命令下達)
1三、|| 和 && 相似於js中的短路運算符,不過Linux 底下的命令都是由左往右運行。
1四、若前一個命令運行的結果爲正確,在 Linux 底下會回傳一個 $? = 0 的值。
1五、管線命令『 | 』僅能處理經由前面一個命令傳來的正確信息,也就是 standard output 的信息,對於 stdandard error 並無直接處理的能力。
1六、cut:能夠將一段信息的某一段給他『切』出來~ 處理的信息是以『行』爲單位。
1七、sort:排序命令
1八、uniq:重複的數據只顯示一行
1九、wc:輸出文件總體信息,行、字、字符。
20、tee: 會同時將數據流分送到文件去與屏幕 (screen);而輸出到屏幕的,其實就是 stdout ,可讓下個命令繼續處理。
2一、xargs:產生某個命令的參數。
2二、split:分割命令