Linux Bash具體應(yīng)用講解
bash的使用
Shell有多種版本,在Red Hat Linux 9.0中默認(rèn)的版本是bash。用戶(hù)成功地登錄系統(tǒng)以后,shell為用戶(hù)與系統(tǒng)內(nèi)核進(jìn)行交互,直至用戶(hù)退出系統(tǒng)。系統(tǒng)上的所有用戶(hù)都有一個(gè)缺省的shell。每個(gè)用戶(hù)的缺省shell在系統(tǒng)里的/etc/passwd文件里被指定。
4.1.1 bash的內(nèi)部命令與外部命令
linux的命令可以分為內(nèi)部命令和外部命令。內(nèi)部命令在系統(tǒng)啟動(dòng)時(shí)就調(diào)入內(nèi)存,是常駐內(nèi)存的。而外部命令是系統(tǒng)的軟件功能,用戶(hù)需要時(shí)才從硬盤(pán)中讀入內(nèi)存。例如下面的命令就是幾個(gè)常用的內(nèi)部命令。
exit:終止當(dāng)前shell的執(zhí)行。
export:設(shè)置一個(gè)環(huán)境變量,當(dāng)前shell的所有子進(jìn)程都可以訪問(wèn)這一個(gè)環(huán)境變量。
kill:終止某個(gè)進(jìn)程的執(zhí)行。帶有進(jìn)程PID參數(shù)時(shí),可以中止對(duì)應(yīng)進(jìn)程的執(zhí)行。
4.1.2 命令補(bǔ)齊功能
命令補(bǔ)齊指的是bash可以自動(dòng)補(bǔ)齊沒(méi)有輸入完整的命令。當(dāng)用戶(hù)不能拼寫(xiě)出整個(gè)命令時(shí),只需要輸入開(kāi)頭的幾個(gè)字符,然后按“Tab”鍵。如果前面幾個(gè)字符輸入沒(méi)有錯(cuò)誤,系統(tǒng)會(huì)自動(dòng)補(bǔ)齊整個(gè)命令。除了對(duì)命令輸入進(jìn)行提示以外,這個(gè)功能可以加快輸入命令的速度。例如下面的操作使用了bash的命令補(bǔ)齊功能。
單擊“主菜單”|“系統(tǒng)工具”|“終端”命令,打開(kāi)系統(tǒng)終端。
在終端中輸入“ifco”,然后按“Tab”鍵,這時(shí)會(huì)自動(dòng)補(bǔ)齊為“ifconfig”命令。
在終端中輸入“ch”,然后按兩次“Tab”鍵,這時(shí)會(huì)列出所有以ch開(kāi)頭的命令,這些命令如下所示。這時(shí)可以使用這些提示書(shū)寫(xiě)相關(guān)命令。
chacl cheatmake chinput chmoddic chroot |
4.1.3 命令通配符
所謂通配符,就是指可以在命令中用一個(gè)字符來(lái)代替一系列字符或字符串。bash中有三種通配符,其中?和[]代表單個(gè)字符。*可以代表一個(gè)或多個(gè)字符,也可以是空字符串。
*:匹配任何字符和字符串,包括空字符串。
?:匹配任意一個(gè)字符。例如,?abc,可以匹配任何以abc結(jié)束,任意字符開(kāi)頭的四個(gè)字符的字符串。
[...]:匹配括號(hào)里列出的任何單字符。比如abc[def],可以匹配以abc開(kāi)頭,以def中任意一個(gè)字符結(jié)尾的字符串。
例如下面的例子就是在命令中使用通配符。
從主菜單中打開(kāi)一個(gè)終端。
查看主目錄下所有的c程序文件。c程序文件的擴(kuò)展名都是.c。所以輸入以下的命令。
ls *.c 注意:用*匹配一個(gè)任意字符串。 |
01.c 02.c 03.c aa.c h.c hello.c |
列出用戶(hù)主目錄中以0開(kāi)頭的c程序文件,輸入的命令如下所示。
ls 0*.c 注意:用*匹配一個(gè)任意字符串。 |
01.c 02.c 03.c |
ls ??.c 注意:用?匹配一個(gè)單一字符。 |
01.c 02.c 03.c aa.c |
4.1.4 使用命令的歷史記錄
在終端中,如果需要再次使用已經(jīng)輸入過(guò)的命令,按向上方向鍵可以依次顯示以前的命令。查找到需要的命令以后,按“Enter”鍵執(zhí)行這一個(gè)命令。
history命令可以顯示出命令的記錄列表,命令的用法如下所示。
history [n] |
history 5 |
152 ls ??.c |
4.1.5 命令的別名
命令別名指的是自定義一個(gè)命令代替其他命令,可以作為其他命令的縮寫(xiě),用來(lái)減少鍵盤(pán)輸入。別名的定義alias命令如下所示。
alias list=’ls -l’ 注釋?zhuān)憾x一個(gè)文件列表的別名。 |
注意:定義別名時(shí),等號(hào)的兩邊不能有空格。
如果想取消別名,可以使用unalias命令。例如下面的命令可取消上面代碼定義的lsc別名。
unalias lsc |
【編輯推薦】