資源描述:
《十個(gè)有用的linux bash shell小技巧》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、十個(gè)有用的Linuxbashshell小技巧如果你曾經(jīng)在Linuxshell命令行提示符下輸入過(guò)命令,你可能已經(jīng)使用了bash。畢竟,它是多數(shù)現(xiàn)代的GNU/Linux版本的缺省命令行shell。bashshell是進(jìn)入Linux操作系統(tǒng)的首個(gè)界面。它接受,解釋并執(zhí)行你的命令,并且向你提供shell腳本和自動(dòng)任務(wù)執(zhí)行的編譯模塊。bash包含了一些功能強(qiáng)大的工具和方便之處。如果你是經(jīng)常要用到命令行的用戶,這些可以減少你相當(dāng)多的輸入。本文給出了十個(gè)最有用的工具:1.輕松調(diào)用先前的命令bash在一個(gè)歷史緩沖區(qū)中保留你執(zhí)行的命令,并且允許你通過(guò)上和下的光標(biāo)鍵在先前的命令間循環(huán)以再次調(diào)用它們。甚
2、至為了更快速的重新調(diào)用,可以通過(guò)輸入少量命令字符然后跟組合鍵Ctrl-R來(lái)“快速查找”先前執(zhí)行的命令;然后bash將掃描命令歷史以匹配命令并在控制臺(tái)顯示它們。重復(fù)按Ctrl-R可以在整個(gè)匹配的命令列表中進(jìn)行循環(huán)。2.使用命令別名如果你頻繁地使用參數(shù)相同的某個(gè)命令,你可以讓bash為它創(chuàng)建一個(gè)別名。這個(gè)別名將組合需要的參數(shù),所以你無(wú)需記住它們或每次手工輸入它們。例如,如果你經(jīng)常使用ls-l以獲得詳細(xì)的目錄列表,你可以使用這個(gè)命令:bash>aliasls='ls-l'這樣就創(chuàng)建了自動(dòng)包含-l選項(xiàng)的別名。一旦該別名被創(chuàng)建,在bash提示符下輸入ls將調(diào)用該別名就輸出ls-l。你可以通過(guò)調(diào)
3、用沒(méi)有任何參數(shù)的別名獲得可用別名的列表,你也可以用unalias命令刪除別名。3.使用文件名自動(dòng)補(bǔ)全bash在命令提示符下支持文件名自動(dòng)補(bǔ)全。要使用該特性,輸入文件名的前幾個(gè)字符,然后按Tab鍵。bash將掃描當(dāng)前的目錄以及搜索路徑中的所有其他目錄以匹配該文件名。如果只找到一個(gè)匹配,bash將為你自動(dòng)補(bǔ)全該文件名。如果找到多個(gè)匹配,將提示你選擇一個(gè)。4.使用快捷鍵以高效地編輯命令行bash為命令行的瀏覽和編輯支持許多快捷鍵??旖萱ICtrl-A將光標(biāo)移動(dòng)到命令行的開(kāi)始處,而快捷鍵Ctrl-E將光標(biāo)移動(dòng)到命令行的末尾??旖萱ICtrl-W直接刪除光標(biāo)前的字,而快捷鍵Ctrl-K直接刪除光標(biāo)
4、前的所有字符。你可以用Ctrl-Y撤銷(xiāo)一個(gè)刪除。5.獲得新郵件的自動(dòng)通知通過(guò)設(shè)置$MAILPATH變量指向你的本地郵件池,你可以配置bash自動(dòng)向你通知新郵件。例如,命令為:bash>MAILPATH='/var/spool/mail/john'?bash>exportMAILPATH?這時(shí),bash每次有新消息進(jìn)入john的郵件池時(shí)向john的控制臺(tái)輸出一個(gè)通知。在后臺(tái)運(yùn)行任務(wù)?6.在后臺(tái)運(yùn)行任務(wù)bash允許你在后面運(yùn)行一個(gè)或多個(gè)任務(wù),并且可選擇地掛起或重新開(kāi)始任何當(dāng)前任務(wù)。要在后臺(tái)運(yùn)行一個(gè)任務(wù),在其命令行后面添加一個(gè)&記號(hào)。例子如下:bash>tail-f/var/log/mes
5、sages&?[1]614??這種方式的每個(gè)后臺(tái)任務(wù)都被分配一個(gè)任務(wù)ID,并在控制臺(tái)輸出。任務(wù)可以用命令fgjobnumber從后臺(tái)調(diào)到前臺(tái),jobnumber是你想調(diào)到前臺(tái)的任務(wù)ID。舉例如下:bash>fg1任何時(shí)候在bash提示符下輸入jobs都可以獲得正在執(zhí)行的任務(wù)的列表。7.快速跳轉(zhuǎn)到經(jīng)常使用的目錄你可能已經(jīng)知道$PATH變量列出bash的“搜索路徑”,當(dāng)它在當(dāng)前目錄下無(wú)法找到請(qǐng)求的文件時(shí)將搜索的目錄。然而,bash也支持$CDPATH變量,它列出當(dāng)試圖改變目錄時(shí)cd命令可訪問(wèn)的目錄列表。要使用這個(gè)特性,分配一個(gè)目錄列表給$CDPATH變量,如下例所示:bash>CDPAT
6、H='.:~:/usr/local/apache/htdocs:/disk1/backups'bash>exportCDPATH現(xiàn)在,只要你使用cd命令,bash將檢查$CDPATH列表中的所有目錄以匹配該目錄名。8.執(zhí)行計(jì)算bash可以在命令行提示符下執(zhí)行簡(jiǎn)單的算術(shù)操作。要使用這個(gè)特性,只需簡(jiǎn)單地在命令行內(nèi)的雙括號(hào)中鍵入你想計(jì)算的算術(shù)表達(dá)式,如下所示。bash將嘗試執(zhí)行該計(jì)算并返回結(jié)果。bash>echo$((16/2))?89.定制shell提示符你可以定制bashshell提示符以顯示當(dāng)前用戶名和主機(jī)名、當(dāng)前時(shí)間、平均負(fù)載和/或當(dāng)前工作目錄。要實(shí)現(xiàn)這一點(diǎn),像下面這樣改變$PS1
7、變量:bash>PS1='u@h:w@>'?bash>exportPS1?root@medusa:/tmp03:01PM>這將在shell提示符下顯示當(dāng)前登錄用戶的名稱,主機(jī)名,當(dāng)前工作目錄和當(dāng)前時(shí)間。10.獲得指定上下文幫助bash可以給出所有內(nèi)建命令的幫助。要查看所有內(nèi)建命令的列表,請(qǐng)輸入help。要獲得某個(gè)特定命令的幫助,輸入helpcommand,此處的command是你想查看其幫助的命令。這里是一個(gè)例子:bash>helpalias?..