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