Linux 提供了大量的命令,如文件管理操作、磁盤操作、網(wǎng)絡(luò)管理操作、進(jìn)程管理、文件屬性與權(quán)限設(shè)定等。
命令行的格式
Linux 命令組成:shell 內(nèi)部命令+shell 外部命令。shell 內(nèi)部命令:最簡(jiǎn)單、最常用的命令,在shell啟動(dòng)時(shí)進(jìn)入內(nèi)存。shell外部命令:獨(dú)立的可執(zhí)行程序,是一些實(shí)用工具程序。
命令行格式:命令名 [選項(xiàng)] [參數(shù)1] [參數(shù)2]......
例如:find / -name "mysql"
注意:命令在正常執(zhí)行后返回一個(gè)0值,表示執(zhí)行成功;如果命令執(zhí)行過程中出錯(cuò),沒有完成全部工作,則返回一個(gè)非0值,返回值的含義根據(jù)命令的不同而不同。在shell腳本中,可用命令返回值作為控制邏輯的一部分,命令執(zhí)行完成之后可以使用命令:echo $? 來查看返回值。
Linux 命令構(gòu)成
1.利用重定向
在 Linux 命令行模式中,如果命令所需的輸入不是來自鍵盤,而是來自指定的文件,這就是輸入重定向。同理,命令的輸出也可以不顯示在屏幕上,而是寫入到指定的文件中,這就是輸出重定向。
重定向的一般格式:
command [] < filename (標(biāo)準(zhǔn)輸入重定向)
command [] > filename (標(biāo)準(zhǔn)輸出重定向)
2.利用管道
利用 LInux 所提供的管道"|"將兩個(gè)命令隔開,管道符左邊命令的輸出就會(huì)作為管道符右邊命令的輸入。連續(xù)使用管道意味著第一個(gè)命令的輸出會(huì)作為第二個(gè)命令的輸入,第二個(gè)命令各的輸出又會(huì)作為第三個(gè)命令的輸入,依此類推。
管道應(yīng)用的一般格式為:
command_1 [args] | command_2 [args]
3.利用命令替換
在 Linux 命令行模式下,當(dāng)遇到一對(duì)""(上分割符)時(shí),將首先執(zhí)行"
"中間包含的命令,然后將其輸出結(jié)果作為參數(shù)代入命令行中,這就是命令替換了。
例如:echo today is date
輸出結(jié)果為:today is Mon Nov 5 16:58:33 CST 2012
在嵌套使用命令替換時(shí),里面的上分割符需要用轉(zhuǎn)義符鏡像轉(zhuǎn)義。
4.綜合應(yīng)用
在理解和熟悉了前面的幾個(gè)技巧后,將它們綜合運(yùn)用起來就是較高的技巧了。在構(gòu)造 LInux 命令中常常用到的一些基礎(chǔ)的、重要的命令有g(shù)rep、tr、sed、awk、find、cat和echo等。
示例1:同時(shí)運(yùn)用了輸出重定向和管道兩種技巧。
man man | col -b > manual_man
這條命令同時(shí)運(yùn)用了輸出重定向和管道兩種技巧,作用是將命令man的幫助文檔保存為文本文件manual_man,并通過選項(xiàng)-b過濾掉所有的控制字符。
示例2:使用了 grep、tr 和 awk 三個(gè)與字符操作相關(guān)的命令。
cat find poem
| grep is | tr a-z A-Z | awk '{print $2}' > word
首先通過 find 命令找到 poem 文件,通過 grep 命令查找該文件中包含字符串“is”所在的所在行,再通過第二個(gè)管道將這些行的所有字符轉(zhuǎn)換成大寫字母,之后通過第三個(gè)管道顯示經(jīng)大小寫轉(zhuǎn)換后的每行的第二個(gè)單詞,最后將 awk 命令的輸出重定向到文件 word,而不是將結(jié)果顯示到屏幕上。